Product SiteDocumentation Site

B.4. Một số nhiệm vụ được xử lý bởi hạt nhân

B.4.1. Điều khiển phần cứng

Hạt nhân được giao nhiệm vụ kiểm soát các bộ phận phần cứng, phát hiện chúng, chuyển đổi chúng khi máy tính được bật lên, v.v... Nó cũng làm cho chúng sẵn sàng cho phần mềm ở cấp cao hơn với một giao diện lập trình đơn giản, do đó các ứng dụng có thể tận dụng các thiết bị mà không phải lo lắng về các chi tiết như khe cắm mở rộng nào mà bảng tùy chọn được cắm vào. Giao diện lập trình cũng cung cấp một lớp trừu tượng; Điều này cho phép ví dụ phần mềm hội nghị truyền hình sử dụng webcam độc lập của nó. Phần mềm này chỉ có thể sử dụng giao diệnVideo for Linux(V4L), và hạt nhân biên dịch các cuộc gọi chức năng của giao diện này sang các lệnh phần cứng thực tế cần thiết bởi webcam cụ thể đang được sử dụng.
The kernel exports many details about detected hardware through the /proc/ and /sys/ virtual filesystems. Several tools summarize those details. Among them, lspci (in the pciutils package) lists PCI devices, lsusb (in the usbutils package) lists USB devices, and lspcmcia (in the pcmciautils package) lists PCMCIA cards. These tools are very useful for identifying the exact model of a device. This identification also allows more precise searches on the web, which in turn, lead to more relevant documents.

Ví dụ B.1. Ví dụ về thông tin được cung cấp bởilspcilsusb

$ lspci
[...]
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation 6th-9th Gen Core Processor PCIe Controller (x16) (rev 05)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)
[...]
02:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
03:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0bda:5621 Realtek Semiconductor Corp. HD WebCam
Bus 001 Device 002: ID 04ca:3016 Lite-On Technology Corp. 
Bus 001 Device 018: ID 145f:01bc Trust GXT 155 Gaming Mouse
Bus 001 Device 004: ID 04f3:0c03 Elan Microelectronics Corp. ELAN:Fingerprint
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Các chương trình này có tùy chọn -v liệt kê các thông tin chi tiết hơn nhiều (nhưng thông thường không cần thiết). Cuối cùng, lệnh lsdev(trong góiprocinfo) liệt kê các tài nguyên giao tiếp được sử dụng bởi các thiết bị.
Các ứng dụng thường truy cập các thiết bị thông qua các tệp tin đặc biệt được tạo trong/dev/(xem thanh bênBACK TO BASICS Device access permissions). Đây là các tệp đặc biệt đại diện cho các ổ đĩa (ví dụ:/dev/hda/dev/sdc), các phân vùng (/Dev/hda1hoặc/dev/sdc3), chuột (/dev/input/mouse0), bàn phím (/dev/input/event0), soundcards (/dev/snd/*), serial ports (/dev/ttyS*), v.v...

B.4.2. Hệ thống tập tin

Hệ thống tập tin là một trong những khía cạnh nổi bật nhất của hạt nhân. Hệ thống Unix kết hợp tất cả các tập tin lưu trữ vào một hệ thống phân cấp duy nhất, cho phép người dùng (và các ứng dụng) truy cập dữ liệu chỉ đơn giản bằng cách biết vị trí của nó trong hệ thống phân cấp đó.
Điểm khởi đầu của cây phân cấp này được gọi là gốc,/. Thư mục này có thể chứa tên thư mục con. Ví dụ: thư mục con home của /được gọi là /home/. Thư mục con này có thể lần lượt chứa các thư mục con khác, vân vân. Mỗi thư mục cũng có thể chứa các tệp tin, nơi dữ liệu thực tế sẽ được lưu trữ. Do đó, tên /home/rmas/Desktop/hello.txt đề cập đến một tệp có tên hello.txt được lưu trữ trong thư mục Desktop thư mục con của thư mục con rmas của thư mục home xuất hiện trong thư mục gốc. Hạt nhân dịch giữa hệ thống đặt tên này và thực tế lưu trữ vật lý trên đĩa.
Không giống các hệ thống khác, chỉ có một phân cấp như vậy, và nó có thể tích hợp dữ liệu từ nhiều đĩa. Một trong những đĩa này được sử dụng làm gốc, và những cái khác được“gắn kết“trên các thư mục trong hệ thống phân cấp (lệnh Unix được gọi làmount); Những đĩa này sau đó có sẵn dưới những điểm gắn kết này. Điều này cho phép lưu trữ các thư mục chính của người dùng lưu trữ (được lưu giữ theo truyền thống trong/home/) trên đĩa cứng thứ hai, sẽ chứarhertzogrmasthư mục. Một khi đĩa đã được cài đặt vào thư mục/home/, các thư mục này có thể truy cập được tại các vị trí thông thường của chúng và các đường dẫn như/home/rmas/Desktop/hello.txt.
Có rất nhiều định dạng hệ thống tập tin, tương ứng với nhiều cách để lưu trữ dữ liệu trên đĩa một cách vật lý. Được biết đến rộng rãi nhất là ext3ext4, và còn nhiều loại nữa. Ví dụ,vfatlà hệ thống được sử dụng trong quá khứ bởi các hệ điều hành DOS và Windows, cho phép sử dụng các đĩa cứng dưới Debian cũng như dưới Windows. Trong bất kỳ trường hợp nào, một hệ thống tập tin phải được chuẩn bị trên đĩa trước khi nó có thể được gắn kết và hoạt động này được gọi là “format“. Các lệnh nhưmkfs.ext3(mkfslà viết tắt củaMaKe FileSystem) xử lý việc format. Các lệnh này yêu cầu một tệp tin thiết bị đại diện cho phân vùng sẽ được format, dưới dạng tham số (ví dụ:/dev/sda1). Thao tác này mang tính phá huỷ và chỉ nên chạy một lần, trừ khi nếu một người cố ý muốn xóa sạch một hệ thống tập tin và bắt đầu lại.
Ngoài ra còn có các hệ thống tập tin mạng, chẳng hạn nhưNFS, nơi dữ liệu không được lưu trữ trên đĩa cục bộ. Thay vào đó, dữ liệu được truyền qua mạng đến một máy chủ lưu trữ và lấy lại chúng theo yêu cầu. Hệ thống tập tin trừu tượng bảo vệ người dùng khỏi việc phải quan tâm: các tập tin vẫn có thể được truy cập theo cách phân cấp thông thường của chúng.

B.4.3. Các chức năng được chia sẻ

Bởi vì một số chức năng tương tự được sử dụng bởi tất cả các phần mềm, sẽ hữu ích nếu tập trung chúng lại trong hạt nhân. Ví dụ, xử lý tập tin hệ thống chia sẻ cho phép bất kỳ ứng dụng chỉ cần mở một tập tin theo tên, mà không cần lo lắng nơi tập tin được lưu trữ vật lý. Các tập tin có thể được lưu trữ trong một số phần khác nhau trên một đĩa cứng, hoặc chia qua nhiều đĩa cứng, hoặc thậm chí được lưu trữ trên một máy chủ tập tin từ xa. Các chức năng truyền thông được chia sẻ được sử dụng bởi các ứng dụng để trao đổi dữ liệu độc lập với cách dữ liệu được vận chuyển. Ví dụ, vận chuyển có thể là qua bất kỳ sự kết hợp của mạng nội bộ hoặc mạng không dây, hoặc qua điện thoại cố định.

B.4.4. Quản lý tiến trình

Một tiến trình là một thể hiện đang chạy của một chương trình. Điều này đòi hỏi bộ nhớ để lưu trữ cả bản thân chương trình và dữ liệu hoạt động của nó. Hạt nhân chịu trách nhiệm tạo và theo dõi chúng. Khi một chương trình chạy, hạt nhân đầu tiên dành một số bộ nhớ, sau đó tải mã thực thi từ hệ thống tập tin vào nó, và sau đó bắt đầu chạy mã. Nó giữ thông tin về tiến trình này, trong đó có thể nhìn thấy rõ nhất là một số nhận dạng được gọi làpid(process identifier).
Unix giống như hạt nhân (bao gồm cả Linux), giống như hầu hết các hệ điều hành hiện đại khác, có khả năng“đa tác vụ“. Nói cách khác, chúng cho phép chạy nhiều tiến trình “cùng một lúc“. Hiện tại chỉ có một tiến trình đang chạy, nhưng hạt nhân đã cắt giảm thời gian thành các lát nhỏ và chạy từng tiến trình một lần. Vì những lát thời gian này rất ngắn (trong khoảng mili giây), chúng tạo ra ảo giác về các tiến trình chạy song song, mặc dù chúng thực sự chỉ hoạt động trong một khoảng thời gian và không hoạt động trong phần còn lại của thời gian. Nhiệm vụ của hạt nhân là điều chỉnh các cơ chế lên kế hoạch để giữ được ảo tưởng đó, đồng thời tối đa hoá hiệu năng hệ thống toàn cầu. Nếu lát thời gian quá dài, ứng dụng có thể không xuất hiện như đáp ứng như mong muốn. Quá ngắn, và hệ thống mất thời gian chuyển đổi nhiệm vụ quá thường xuyên. Những quyết định này có thể được tinh chỉnh với các ưu tiên quá trình. Các tiến trình ưu tiên cao sẽ chạy lâu hơn và với các lát thời gian thường xuyên hơn các tiến trình ưu tiên thấp.
Tất nhiên, hạt nhân cho phép chạy một số tiến trình độc lập của cùng một chương trình. Nhưng mỗi tiến trình chỉ có thể truy cập lát thời gian riêng của nó và bộ nhớ. Dữ liệu của chúng do đó vẫn độc lập.

B.4.5. Quản lý Quyền

Các hệ thống giống Unix cũng là đa người dùng. Nó cung cấp một hệ thống quản lý quyền hỗ trợ người dùng và nhóm riêng; Nó cũng cho phép kiểm soát các hành động dựa trên các điều khoản. Hạt nhân quản lý dữ liệu cho mỗi tiến trình , cho phép nó kiểm soát quyền truy cập. Hầu hết thời gian, một tiến trình được xác định bởi người dùng đã thực thi nó. tiến trình này chỉ được thực hiện những hành động đó cho chủ sở hữu của nó. Ví dụ,hành động mở một tệp tin yêu cầu hạt nhân kiểm tra tiến trình nhận dạng đối với quyền truy cập (để biết thêm chi tiết về ví dụ cụ thể này, hãy xemPhần 9.3, “Managing Rights”).