Kernel là gì?
Kernel là một chương trình máy tính điều khiển mọi thứ khác, nó là hạt nhân – trái tim của hệ điều hành! Bất cứ điều gì xảy ra trên máy tính đều đi qua nó. Đó là chương trình cốt lõi trong hệ điều hành, cũng là chương trình đầu tiên tải sau bộ nạp khởi động. Sau đó, nó thực hiện tất cả các cuộc nói chuyện giữa phần cứng và phần mềm hoặc ứng dụng. Vì vậy, nếu bạn khởi chạy một chương trình, giao diện người dùng sẽ gửi yêu cầu tới Kernel. Kernel sau đó gửi yêu cầu tới CPU, Bộ nhớ để gán sức mạnh xử lý, bộ nhớ và những thứ khác để ứng dụng có thể chạy trơn tru ở giao diện người dùng.
Một Sơ đồ khối mô tả Kernel trong cấu trúc hệ điều hành
Vai trò của Kernel trong hệ điều hành
Bạn có thể tưởng tượng Kernel là một dịch giả (translator). Nó chuyển đổi các yêu cầu đầu vào / đầu ra từ phần mềm thành một tập lệnh cho CPU và GPU. Nói một cách đơn giản, đó là một lớp ở giữa phần mềm và phần cứng giúp mọi thứ đều có thể hoạt động. Kernel quản lý:
- CPU / GPU.
- Bộ nhớ Memory.
- Thiết bị đầu vào / đầu ra hoặc IO.
- Quản lý nguồn tài nguyên.
- Quản lý thiết bị.
- Hệ thống gọi.
Người dùng chỉ có thể truy cập không gian kernel thông qua việc sử dụng các cuộc gọi hệ thống (system call). Nếu một chương trình cố gắng truy cập trực tiếp, nó sẽ dẫn đến lỗi.
Bảo mật và Bảo vệ
Kernel cũng bảo vệ phần cứng. Nếu không có bảo vệ, bất kỳ chương trình nào cũng có thể thực hiện bất kỳ tác vụ nào trên máy tính, dẫn tới làm hỏng máy tính của bạn, làm hỏng dữ liệu… Trong các máy tính hiện đại, bảo mật được thực hiện ở cấp độ phần cứng. Ví dụ: Windows sẽ không tải driver từ nguồn không đáng tin cậy và được chứng nhận bằng chữ ký. Secure Boot và Trusted Boot là những ví dụ cổ điển.
- Khởi động an toàn (Secure Boot): Đây là một tiêu chuẩn bảo mật được phát triển bởi các thành viên của ngành công nghiệp máy tính PC. Nó giúp bạn bảo vệ hệ thống của mình khỏi các chương trình độc hại, bằng cách không cho phép bất kỳ ứng dụng trái phép nào chạy trong quá trình khởi động hệ thống. Tính năng này đảm bảo rằng máy tính của bạn khởi động chỉ sử dụng phần mềm được nhà sản xuất máy tính tin cậy. Vì vậy, bất cứ khi nào máy tính của bạn khởi động, firmware sẽ kiểm tra chữ ký của từng phần mềm khởi động, bao gồm firmware driver (ROM tùy chọn) và hệ điều hành. Nếu các chữ ký được xác minh, máy tính sẽ khởi động và firmware sẽ kiểm soát hệ điều hành.
- Khởi động đáng tin cậy (Trusted Boot): Nó sử dụng Mô-đun nền tảng tin cậy ảo (VTPM) để xác minh chữ ký số của Kernel Windows 10 trước khi tải. Đổi lại, nó xác nhận mọi thành phần khác của quy trình khởi động Windows, bao gồm driver khởi động, tập tin khởi động và ELAM. Nếu một tập tin đã bị thay đổi hoặc thay đổi ở bất kỳ mức độ nào, bộ nạp khởi động sẽ phát hiện ra nó và từ chối tải nó, bằng cách nhận ra nó là thành phần bị hỏng. Nói tóm lại, nó cung cấp một chuỗi tin cậy cho tất cả các yếu tố trong khi khởi động.
Các loại Kernel
Kernel cũng có thể nói chuyện với phần cứng trên một đường dây an toàn. Vì vậy, các công ty đã phát triển Kernel có thể nói chuyện với phần cứng của họ thông qua một bộ nút. Lấy máy giặt làm ví dụ. Tùy thuộc vào các nút bạn di chuyển và thời gian bạn đặt – một mức Kernel cơ bản là đủ. Điều đó để nói rằng, Kernel tự phát triển phức tạp theo thời gian, dẫn đến các loại Kernel khác nhau.
Kernel nguyên khối (Monolithic Kernel)
Ở đây, cả OS và Kernel đều chạy trong cùng một không gian bộ nhớ và phù hợp trong đó bảo mật không phải là vấn đề đáng lo ngại. Nó dẫn đến truy cập nhanh hơn, nhưng nếu có lỗi trong trình điều khiển thiết bị, toàn bộ hệ thống sẽ gặp sự cố.
Sơ đồ khối của một Monolithic Kernel
Kernel vi mô (Micro Kernel)
Đây là phiên bản rút gọn của Kernel Monolithic, trong đó Kernel có thể thực hiện hầu hết các công việc được thực hiện và không cần thêm GUI. Chúng nên được sử dụng khi bảo mật và hệ thống sự cố không xảy ra.
Sơ đồ khối của một Micro Kernel
Kernel lai (Hybrid Kernel)
Kernel này chúng ta thấy nhiều nhất – Microsoft Windows, Apple MacOS. Chúng là sự pha trộn giữa Kernel nguyên khối và Kernel vi mô. Nó di chuyển trình điều khiển nhưng giữ các dịch vụ hệ thống bên trong Kernel – tương tự như cách driver được tải khi Windows bắt đầu quá trình khởi động.
Sơ đồ khối của một Hybrid Kernel
Kernel Nano
Nếu bạn cần phải có Kernel, nhưng phần lớn chức năng của nó được thiết lập bên ngoài, thì xem hình ví dụ bên trên.
Kernel Exo
Kernel này chỉ cung cấp bảo vệ quá trình và xử lý tài nguyên. Tuy nhiên, nó chủ yếu được sử dụng khi bạn đang thử nghiệm một dự án đường phố và bạn nâng cấp lên loại Kernel tốt hơn.
Có rất nhiều thứ để nói về Kernel hơn những gì được đề cập ở đây. Khi bạn tìm hiểu sâu hơn, định nghĩa của Kernel sẽ rộng hơn và sâu sắc hơn. Chúng tôi hy vọng bài viết dễ hiểu và giúp bạn vượt qua những điều cơ bản.Nguồn ảnh: Internet.