Mở trình đơn chính

Các thay đổi

n
Replace using AWB
[[Tập tin:Kernel Layout.svg|nhỏ|200px|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ứng]] và [[phần mềm]]).<ref name="Wulf74">Wulf 74 pp.các trang 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 ví dụ như (''[[Hybrid kernel]]'') là nhân tự động phân luồng.
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''''',<ref name="Wulf74">Wulf 74 pp.các trang 337-345</ref><ref name="Deitel82">Deitel 82, p.65-66 cap. 3.9</ref><ref name="kernelnames">Lorin 81 pp.các trang 161-186, Schroeder 77, Shaw 75 pp.các trang 245-267</ref><ref name="Hansen70">Brinch Hansen 70 pp.các trang 238-241</ref> (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]],<ref name="supervisor">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.</ref> 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''.
* [[Hermann Härtig]], Michael Hohmuth, [[Jochen Liedtke]], Sebastian Schönberg, Jean Wolter ''[http://os.inf.tu-dresden.de/pubs/sosp97/#Karshmer:1991:OSA The performance of μ-kernel-based systems]'' [http://doi.acm.org/10.1145/268998.266660] ACM SIGOPS Operating Systems Review, v.31 n.5, p.&nbsp;66-77, Dec. 1997
 
* Houdek, M. E., Soltis, F. G., and Hoffman, R. L. 1981. ''[http://portal.acm.org/citation.cfm?id=800052.801885 IBM System/38 support for capability-based addressing]''. In Proceedings of the 8th ACM International Symposium on Computer Architecture. ACM/IEEE, pp.các trang&nbsp;341–348.
 
* [[Intel|Intel Corporation]] (2002) ''[http://www.intel.com/design/pentium4/manuals/24547010.pdf The IA-32 Architecture Software Developer’s Manual, Volume 1: Basic Architecture]''