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.
Hạt nhân xuất ra nhiều thông tin chi tiết về các phần cứng đã được phát hiện thông qua các tệp tin ảo trong/proc//sys/. Một số công cụ tóm tắt những chi tiết đó. Trong đó, góilspci(trongpciutilspackage) liệt kê các thiết bị PCI,lsusb(trongusbutilspackage) liệt kê các thiết bị USB vàlspcmcia(trongpcmciautilspackage) liệt kê các thẻ PCMCIA. Những công cụ này rất hữu ích để xác định chính xác model của thiết bị. Việc nhận dạng này cũng cho phép tìm kiếm chính xác hơn trên web, để dẫn đến các tài liệu liên quan dễ dàng hơn.

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

$ lspci
[...]
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
[...]
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01)
02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
$ lsusb
Bus 005 Device 004: ID 413c:a005 Dell Computer Corp.
Bus 005 Device 008: ID 413c:9001 Dell Computer Corp.
Bus 005 Device 007: ID 045e:00dd Microsoft Corp.
Bus 005 Device 006: ID 046d:c03d Logitech, Inc.
[...]
Bus 002 Device 004: ID 413c:8103 Dell Computer Corp. Wireless 350 Bluetooth
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 (nhưng thông thường không cần thiết). Cuối cùng, gói tin lsdev(trong góiprocinfo) liệt kê các tài nguyên truyền thông đượ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 vật lý. Nổi tiếng nhất làext2,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 định dạng trên đĩa trước khi nó có thể được gắn kết và hoạt động này được gọi là“định dạng“. Các lệnh nhưmkfs.ext3(nơimkfslà viết tắt củaMaKe FileSystem) xử lý định dạng. Các lệnh này yêu cầu, như một tham số, một tệp tin thiết bị đại diện cho phân vùng được định dạng (ví dụ:/dev/sda1). Thao tác này mang tính định dạng và chỉ nên chạy một lần, ngoại trừ 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 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à truy xuất chúng theo yêu cầu. Hệ thống tập tin trừu tượng che giấu người dùng khỏi các quan tâm không cần thiết: các tập tin vẫn có thể truy cập theo cách phân cấp thông thường của họ.

B.4.3. Chức năng 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”).