Bất cứ ai có thể vui lòng giải thích với các ví dụ về sự khác biệt giữa hạt nhân nguyên khối và hạt vi mô? Ngoài ra các phân loại khác của hạt nhân?
Bất cứ ai có thể vui lòng giải thích với các ví dụ về sự khác biệt giữa hạt nhân nguyên khối và hạt vi mô? Ngoài ra các phân loại khác của hạt nhân?
Câu trả lời:
Nhân nguyên khối là một quá trình lớn chạy hoàn toàn trong một không gian địa chỉ duy nhất. Nó là một tệp nhị phân tĩnh duy nhất. Tất cả các dịch vụ nhân tồn tại và thực thi trong không gian địa chỉ nhân. Kernel có thể gọi các hàm trực tiếp. Ví dụ về hệ điều hành dựa trên nhân nguyên khối: Unix, Linux.
Trong các kênh vi mô, hạt nhân được chia thành các quá trình riêng biệt, được gọi là máy chủ. Một số máy chủ chạy trong không gian nhân và một số chạy trong không gian người dùng. Tất cả các máy chủ được giữ riêng biệt và chạy trong các không gian địa chỉ khác nhau. Các máy chủ gọi "dịch vụ" từ nhau bằng cách gửi tin nhắn qua IPC (Interprocess Communication). Sự tách biệt này có ưu điểm là nếu một máy chủ bị lỗi thì các máy chủ khác vẫn có thể hoạt động hiệu quả. Ví dụ về hệ điều hành dựa trên kênh vi mô: Mac OS X và Windows NT.
Thiết kế nhân nguyên khối lâu đời hơn nhiều so với ý tưởng microkernel, xuất hiện vào cuối những năm 1980.
Nhân Unix và Linux là nguyên khối, trong khi QNX, L4 và Hurd là các kênh vi mô. Mach ban đầu là một kênh vi mô (không phải Mac OS X), nhưng sau đó được chuyển đổi thành một hạt nhân lai. Minix (trước phiên bản 3) không phải là một kênh nhỏ thuần túy vì trình điều khiển thiết bị được biên dịch như một phần của hạt nhân.
Các hạt nhân nguyên khối thường nhanh hơn các hạt vi mô. Mach microkernel đầu tiên chậm hơn 50% so với hầu hết các nhân nguyên khối, trong khi các nhân sau này như L4 chỉ chậm hơn 2% hoặc 4% so với các thiết kế nguyên khối.
Các nhân nguyên khối có kích thước lớn, trong khi các microkernel có kích thước nhỏ - chúng thường vừa với bộ nhớ đệm L1 của bộ xử lý (các microkernel thế hệ đầu tiên).
Trong hạt nhân nguyên khối, trình điều khiển thiết bị nằm trong không gian hạt nhân trong khi trong kênh vi mô, trình điều khiển thiết bị là không gian người dùng.
Vì trình điều khiển thiết bị của các hạt nhân nguyên khối nằm trong không gian hạt nhân, các hạt nhân nguyên khối kém an toàn hơn các kênh vi mô và các lỗi (ngoại lệ) trong trình điều khiển có thể dẫn đến sự cố (hiển thị dưới dạng BSOD trong Windows). Các microkernel an toàn hơn các nhân nguyên khối, do đó thường được sử dụng trong các thiết bị quân sự.
Các hạt nhân nguyên khối sử dụng tín hiệu và ổ cắm để thực hiện giao tiếp giữa các quá trình (IPC), các kênh vi mô sử dụng hàng đợi tin nhắn. Các kênh vi mô thế hệ 1 không triển khai IPC tốt và chuyển mạch ngữ cảnh chậm - đó là nguyên nhân gây ra hiệu suất kém của chúng.
Thêm một tính năng mới vào một hệ thống nguyên khối có nghĩa là biên dịch lại toàn bộ hạt nhân hoặc mô-đun hạt nhân tương ứng (đối với hạt nhân nguyên khối mô-đun), trong khi với microkernel, bạn có thể thêm các tính năng hoặc bản vá mới mà không cần biên dịch lại.
Nhân nguyên khối
Tất cả các phần của hạt nhân như Bộ lập lịch, Hệ thống tệp, Quản lý bộ nhớ, Ngăn xếp mạng, Trình điều khiển thiết bị, v.v., được duy trì trong một đơn vị bên trong hạt nhân trong Hạt nhân nguyên khối
Ưu điểm
• Xử lý nhanh hơn
Nhược điểm
• Sự cố không an toàn • Cổng không linh hoạt • Kích thước hạt nhân nổ
Ví dụ • MS-DOS, Unix, Linux
Nhân vi mô
Chỉ những phần rất quan trọng như IPC (Giao tiếp giữa các tiến trình), bộ lập lịch cơ bản, xử lý bộ nhớ cơ bản, các nguyên thủy I / O cơ bản, v.v., mới được đưa vào hạt nhân. Giao tiếp xảy ra thông qua việc chuyển tin nhắn. Những người khác được duy trì dưới dạng quy trình máy chủ trong Không gian người dùng
Ưu điểm
• Chống va đập, di động, kích thước nhỏ hơn
Nhược điểm
• Xử lý chậm hơn do truyền tin nhắn bổ sung
Ví dụ • Windows NT
1. Nhân nguyên khối (Nguyên khối nguyên chất):all
Tất cả các dịch vụ nhân từ một thành phần duy nhất
(-) không thể thêm / bớt, ít hơn / Không linh hoạt
(+) Giao tiếp giữa các thành phần tốt hơn
ví dụ: - Unix truyền thống
2.Micro Kernel:few
một số dịch vụ (quản lý bộ nhớ, quản lý CPU, IPC, v.v.) từ nhân lõi, các dịch vụ khác (quản lý tệp, quản lý I / O, v.v.) từ các lớp / thành phần khác nhau
Phương pháp phân tách [Một số dịch vụ ở chế độ đặc quyền (nhân) và một số ở chế độ Bình thường (người dùng)]
(+) linh hoạt để thay đổi / nâng cấp
(-) chi phí giao tiếp
ví dụ: - QNX, v.v.
3.Modular kernel (Mô-đun nguyên khối):most
Sự kết hợp của nhân Micro và nhân nguyên khối
Bộ sưu tập các Mô-đun - mô-đun có thể là -> Tĩnh + Động
Trình điều khiển có dạng Mô-đun
ví dụ: - Hệ điều hành hiện đại Linux
Trong phổ thiết kế hạt nhân, hai điểm cực trị là hạt nhân nguyên khối và kênh vi mô.
Ví dụ, nhân Linux (cổ điển) là một nhân nguyên khối (và mọi hệ điều hành thương mại cho đến nay cũng vậy - mặc dù họ có thể tuyên bố khác);
Trong đó mã của nó là một tệp C duy nhất tạo ra một quy trình duy nhất thực hiện tất cả các dịch vụ trên.
Để làm ví dụ về tính đóng gói của nhân Linux, chúng tôi nhận xét rằng nhân Linux thậm chí không có quyền truy cập vào bất kỳ thư viện C chuẩn nào. Thật vậy, nhân Linux không thể sử dụng các hàm thư viện C thô sơ như printf. Thay vào đó, nó thực hiện chức năng in của riêng mình (được gọi là bản in).
Tuy nhiên, đây là nhược điểm chính của nhân nguyên khối: việc giới thiệu bất kỳ phần cứng mới không được hỗ trợ nào đều yêu cầu viết lại nhân (trong các phần liên quan), biên dịch lại và cài đặt lại toàn bộ hệ điều hành.
Sự tách biệt của nhân Linux và sự tự chứa này cung cấp cho nhân Linux lợi thế chính của nó: nhân nằm trong một không gian địa chỉ duy nhất1 cho phép tất cả các tính năng giao tiếp theo cách nhanh nhất có thể mà không cần đến bất kỳ loại thông báo nào. Đặc biệt, một nhân nguyên khối thực hiện tất cả các trình điều khiển thiết bị của hệ thống.
Quan trọng hơn, nếu có bất kỳ trình điều khiển thiết bị nào bị lỗi thì toàn bộ hạt nhân sẽ bị ảnh hưởng. Cách tiếp cận không mô-đun này đối với việc bổ sung phần cứng và sự cố phần cứng là lý lẽ chính để hỗ trợ cách tiếp cận thiết kế cực đoan khác cho hạt nhân. Theo một nghĩa nào đó, microkernel là một hạt nhân tối giản chỉ chứa những dịch vụ cơ bản của hệ điều hành (như quản lý quy trình và quản lý hệ thống tệp). Trong một kênh vi mô, trình điều khiển thiết bị nằm bên ngoài hạt nhân cho phép bổ sung và xóa trình điều khiển thiết bị trong khi HĐH đang chạy và không yêu cầu thay thế hạt nhân.
Nhân nguyên khối có tất cả các dịch vụ nhân cùng với phần nhân của nhân, do đó nặng và có tác động tiêu cực đến tốc độ và hiệu suất. Mặt khác, hạt nhân vi mô nhẹ nên tăng hiệu suất và tốc độ.
Tôi đã trả lời câu hỏi tương tự tại trang web wordpress. Để biết sự khác biệt giữa nguyên khối, microkernel và exokernel ở dạng bảng, bạn có thể truy cập tại đây