Khác biệt giữa bản sửa đổi của “Nhân hệ điều hành”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Sửa lỗi dịch thuật. Trình bày khoa học, rõ ràng
nKhông có tóm lược sửa đổi
Dòng 2: Dòng 2:
'''Nhân hệ điều hành''' ''(tiếng Anh: '''Kernel''')'' là thành phần trung tâm của hầu hết các [[hệ điều hành]] máy tính. Nó có nhiệm vụ quản lý các tài nguyên hệ thống (liên lạc giữa các thành phần [[phần cứng]] và [[phần mềm]]).<ref name="Wulf74">Wulf 74 pp.337-345</ref> Thông thường, với vai trò một thành phần cơ bản của một hệ điều hành, nhân có thể cung cấp các [[tầng trừu tượng]] mức thấp nhất cho các tài nguyên máy tính (đặc biệt là [[RAM|bộ nhớ]], [[CPU]], và các [[thiết bị vào ra]] mà phần mềm ứng dụng cần điều khiển để thực hiện các chức năng của mình. Nhân hệ điều hành thường cung cấp các tiện ích xử lý này cho các [[tiến trình (máy tính)|tiến trình]] của các phần mềm ứng dụng qua các cơ chế [[liên lạc giữa các tiến trình]] (''inter-process communication'') và các [[hàm hệ thống]] (''system call'').
'''Nhân hệ điều hành''' ''(tiếng Anh: '''Kernel''')'' là thành phần trung tâm của hầu hết các [[hệ điều hành]] máy tính. Nó có nhiệm vụ quản lý các tài nguyên hệ thống (liên lạc giữa các thành phần [[phần cứng]] và [[phần mềm]]).<ref name="Wulf74">Wulf 74 pp.337-345</ref> Thông thường, với vai trò một thành phần cơ bản của một hệ điều hành, nhân có thể cung cấp các [[tầng trừu tượng]] mức thấp nhất cho các tài nguyên máy tính (đặc biệt là [[RAM|bộ nhớ]], [[CPU]], và các [[thiết bị vào ra]] mà phần mềm ứng dụng cần điều khiển để thực hiện các chức năng của mình. Nhân hệ điều hành thường cung cấp các tiện ích xử lý này cho các [[tiến trình (máy tính)|tiến trình]] của các phần mềm ứng dụng qua các cơ chế [[liên lạc giữa các tiến trình]] (''inter-process communication'') và các [[hàm hệ thống]] (''system call'').


Các nhân khác nhau thực hiện các tác vụ của hệ điều hành theo các cách khác nhau, tùy theo thiết kế và cài đặt. Các nhân kiểu nguyên khối (''[[monolithic kernel]]'') thực hiện các nhiệm vụ của mình bằng cách thực thi toàn bộ mã hệ điều hành trong cùng một [[địa chỉ bộ nhớ]] để tăng hiệu năng hệ thống. Trong khi đó các nhân loại nhỏ (''[[microkernel]]'') chạy hầu hết các dịch vụ tại [[không gian người dùng]] (''user space'') với mục đích tăng khả năng bảo trì và tính mô đun của hệ điều hành.<ref name="mono-micro">Roch 2004</ref> Có nhiều thiết kế nằm ở giữa hai thái cực này.
Các nhân khác nhau thực hiện các tác vụ của hệ điều hành theo các cách khác nhau, tùy theo thiết kế và cài đặt. Các nhân kiểu nguyên khối (''[[monolithic kernel]]'') thực hiện các nhiệm vụ của mình bằng cách thực thi toàn bộ mã hệ điều hành trong cùng một [[địa chỉ bộ nhớ]] để tăng hiệu năng hệ thống. Trong khi đó các nhân loại nhỏ (''[[microkernel]]'') chạy hầu hết các dịch vụ tại [[không gian người dùng]] (''user space'') với mục đích tăng khả năng bảo trì và tính mô đun của hệ điều hành.<ref name="mono-micro">Roch 2004</ref> Có nhiều thiết kế nằm ở giữa hai thái cực này ví dụ như (''[[Hybrid]]'') là nhân tự động phân luồng.


== Khái quát chung ==
== Khái quát chung ==

Phiên bản lúc 03:58, ngày 3 tháng 6 năm 2015

Nhân hệ điều hành kết nối phần mềm ứng dụng với phần cứng máy tính.

Nhân hệ điều hành (tiếng Anh: Kernel) là thành phần trung tâm của hầu hết các hệ điều hành máy tính. Nó có nhiệm vụ quản lý các tài nguyên hệ thống (liên lạc giữa các thành phần phần cứngphần mềm).[1] Thông thường, với vai trò một thành phần cơ bản của một hệ điều hành, nhân có thể cung cấp các tầng trừu tượng mức thấp nhất cho các tài nguyên máy tính (đặc biệt là bộ nhớ, CPU, và các thiết bị vào ra mà phần mềm ứng dụng cần điều khiển để thực hiện các chức năng của mình. Nhân hệ điều hành thường cung cấp các tiện ích xử lý này cho các tiến trình của các phần mềm ứng dụng qua các cơ chế liên lạc giữa các tiến trình (inter-process communication) và các hàm hệ thống (system call).

Các nhân khác nhau thực hiện các tác vụ của hệ điều hành theo các cách khác nhau, tùy theo thiết kế và cài đặt. Các nhân kiểu nguyên khối (monolithic kernel) thực hiện các nhiệm vụ của mình bằng cách thực thi toàn bộ mã hệ điều hành trong cùng một địa chỉ bộ nhớ để tăng hiệu năng hệ thống. Trong khi đó các nhân loại nhỏ (microkernel) chạy hầu hết các dịch vụ tại không gian người dùng (user space) với mục đích tăng khả năng bảo trì và tính mô đun của hệ điều hành.[2] Có nhiều thiết kế nằm ở giữa hai thái cực này ví dụ như (Hybrid) là nhân tự động phân luồng.

Khái quát chung

Một cách nhìn điển hình của một kiến trúc máy tính dưới một chuỗi các tầng trừu tượng: phần cứng, những phần mềm cố định - firmware, trình biên dịch ngôn ngữ assembly, nhân hệ điều hành, hệ điều hànhcác ứng dụng (xem thêm tại Structured Computer Organization, by Andrew S. Tanenbaum.).

Trong một định nghĩa về 'nhân hệ điều hành' Jochen Liedtke đã tuyên bố rằng "sử dụng thường xuyên để biểu thị cho một phần của hệ điều hành có tính bắt buộc và chia sẻ với tất cả các phần mềm khác."[3]

Hầu hết các hệ điều hành đều dựa trên cơ sở là nhân. Sự tồn tại của nhân hệ điều hành là hệ quả tất yếu của việc thiết kế hệ thống máy tính thành một chuỗi các tầng trừu tượng để phù hợp trong các tiến trình xử lý công việc trên máy tính được đơn giản hóa (đối với con người) nhưng dần phức tạp hóa (đối với máy tính).[4] Ở mỗi tầng trừu tượng ở cấp phức tạp thấp hơn (đối với máy tính) lại dựa vào các chức năng của chính các tầng ngay trên chúng (các tầng phức tạp lớn hơn đối với máy tính) để xử lý. Nhân hệ điều hành dưới một khía cạnh nào đó là một cái tên đơn giản biếu thị cho tầng trừu tượng ở mức thấp nhất được xử lý trong các phần mềm trước khi đi qua trình biên dịch ngôn ngữ assembly sang ngôn ngữ máy và đưa đến phần cứng của máy tính để thi hành. Trong một số loại phần mềm nhằm tránh sự sử dụng nhân hệ điều hành hoặc bỏ qua nhân hệ điều hành để đưa trực tiếp đến thi hành phần cứng, người ta sẽ thiết kế toàn bộ phần mềm trong một hệ thống mà không sử dụng đến các tầng trừu tượng (có thể hiểu là tầng trừu tượng ở mức thấp tương đương với nhân nên bỏ qua nhân); điều này sẽ làm gia tăng sự phức tạp của việc thiết kế, lập trình ra phần mềm. Việc thiết kế phần mềm bỏ qua nhân này được ví như tạo ra một hệ thống đơn giản nhất (đối với máy tính) có tính khả thi cao và có thể thực thi các phần mềm.

Trong khi được biết đến với cái tên phổ biến nhân hệ điều hành, những cách gọi mới mẻ cho bộ phần tương tự của hệ thống máy tính được biết đến như hạt nhân - nucleus hay là lõi - core,[1][5][6][7] (Chú ý rằng, bất cứ khi nào từ core cũng được sử dụng có liên quan tới bộ nhớ chính của hệ thống máy tính, bởi vì các máy tính ra đời trước sử dụng một dạng của bộ nhớ được gọi là core memory), và được hình thành một cách sáng tạo như những vùng chỉ chứa những yếu tố cần thiết, cốt lõi của một hệ điều hành.

Trong hầu hết các trường hợp, boot loader bắt đầu thực thi nhân hệ điều hành trong supervisor mode,[8] Nhân hệ điều hành sau đó được nạp phần đầu của nó và thi hành tiến trình đầu tiên. Sau khi khởi động hoàn tất, nhân hệ điều hành không được thực thi ngay lập tức, nó chỉ nằm trong lời trả lời cho sự kiện bên ngoài(Ví dụ:, thông qua hàm hệ thống,các ứng dụng sẽ yêu cầu dịch vụ từ nhân hệ điều hành, hoặc thông qua ngắt được sử dụng bởi phần cứng để thông báo cho nhân hệ điều hành về các sự kiện xảy ra). Ngoài ra, nhân hệ điều hành còn đặc biệt cung cấp một vòng lặp được thực thi bất cứ lúc nào mà không có tiến trình nào được thực thi; nó thường được gọi là tiến trình nhàn rỗi.

Chú thích

Về các chú thích dẫn đến nguồn, xem danh sách tham khảo tại mục dưới.

  1. ^ a b Wulf 74 pp.337-345
  2. ^ Roch 2004
  3. ^ Liedtke 95
  4. ^ Tanenbaum 79, chapter 1
  5. ^ Deitel 82, p.65-66 cap. 3.9
  6. ^ Lorin 81 pp.161-186, Schroeder 77, Shaw 75 pp.245-267
  7. ^ Brinch Hansen 70 pp.238-241
  8. ^ The highest privilege level has various names throughout different architectures, such as supervisor mode, kernel mode, CPL0, DPL0, Ring 0, etc. See Ring (computer security) for more information.

Tham khảo

  • Roch, Benjamin (2004). “Monolithic kernel vs. Microkernel” (pdf). Truy cập ngày 12 tháng 10 năm 2006.
  • Levin, R. (1975). “Policy/mechanism separation in Hydra”. ACM Symposium on Operating Systems Principles / Proceedings of the fifth ACM symposium on Operating systems principles: 132–140. Đã bỏ qua tham số không rõ |coauthors= (gợi ý |author=) (trợ giúp)

Đọc thêm