Kernel Là Gì Và Có Những Loại Kernel Cơ Bản Nào? - Bizfly Cloud

  • Techblog
  • Kiến thức cơ bản
Kernel là gì và có những loại Kernel cơ bản nào?Bizfly Cloud175012-06-2021
Kernel là gì và có những loại Kernel cơ bản nào?

Nhắc đến hệ điều hành máy tính, có lẽ rất nhiều người dùng phổ thông đều đã biết đến những cái tên nổi tiếng như Windows, Mac, Linux… Hệ điều hành là phần mềm dùng để điều hành, quản lý cả phần cứng và phần mềm của máy tính. Kernel là chương trình cốt lõi của hệ điều hành và đóng vai trò như trái tim của hệ điều hành. Nếu có những vấn đề đang băn khoăn về Kernel và có những loại Kernel cơ bản nào thì hãy cùng Bizfly Cloud tìm hiểu trong bài viết này nhé.

Kernel là gì?

Kernel hay còn gọi là nhân hệ điều hành bản chất là một chương trình máy tính trung tâm và không thể thiếu trong mỗi hệ điều hành, có nhiệm vụ kiểm soát hoàn toàn mọi thứ của hệ thống máy tính. Kernel là phần của mã hệ điều hành luôn thường trú trong bộ nhớ có nhiệm vụ liên lạc giữa phần cứng và phần mềm của máy tính.

Kernel luôn là chương trình đầu tiên được nạp sau quá trình khởi động máy tính (sau bootloader) ở hầu hết các hệ điều hành máy tính khác nhau. Sau đó nó sẽ xử lý những phần còn lại của việc khởi động và các yêu cầu vào/ra từ phần mềm để chuyển chúng thành hướng dẫn xử lý dữ liệu cho CPU.

Kernel còn có thể quản lý bộ nhớ và các thiết bị ngoại vi như: màn hình, bàn phím, loa hay máy in. Các tiện ích xử lý cho các tiến trình của các phần mềm ứng dụng được Kernel cung cấp thông qua các cơ chế liên lạc giữa các tiến trình (inter-process communication) cũng như các lời gọi hệ thống (system call).

Đến đây bạn có lẽ đã phần nào hiểu được Kernel là gì rồi phải không nào. Trong phần tiếp theo cùng chúng tôi tìm hiểu vài trò của Kernel là gì trong hệ điều hành nhé.

Vai trò của Kernel trong hệ điều hành

1. Truy cập tài nguyên máy tính: Hầu hết các tài nguyên máy tính khác nhau như CPU, thiết bị I/O, các tài nguyên khác…đều có thể được Kernel truy cập và có vai trò làm cầu nối giữa người dùng và tài nguyên hệ thống.

2. Quản lý tài nguyên: Kernel quản lý tài nguyên và chia sẻ tài nguyên giữa các process khác nhau.

3. Quản lý thiết bị: Hầu như tất cả các thiết bị ngoại vi (màn hình, bàn phím, loa, máy in) đều kết nối với hệ thống thông qua các process. Vì vậy, Kernel còn có vai trò quản lý phân bổ các thiết bị đó.

4. Bảo vệ và bảo mật

Một trong những vai trò quan trọng của Kernel là khả năng bảo mật và bảo vệ phần cứng khỏi lỗi và các tác nhân độc hại. Kernel phân quyền truy cập vào phần cứng, bảo vệ và kiểm soát cách các tài nguyên giới hạn như thời gian chạy trên CPU và các memory page vật lý được các quy trình trên hệ thống sử dụng. Kernel cũng kiểm soát và quản lý tất cả các tác vụ chính của hệ điều hành cũng như quản lý quyền truy cập và sử dụng các thiết bị ngoại vi khác nhau được kết nối với máy tính.

Nếu không có Kernel bảo vệ, các tác vụ trên máy tính có thể được thực hiện một cách lộn xộn và không có trật tự, làm cho máy tính và dữ liệu của bạn bị lỗi, hỏng. Một minh chứng cụ thể cho bảo vệ cấp độ phần cứng là Secure Boot và Trusted Boot ở hệ điều hành Windows:

  • Secure Boot (Khởi động an toàn):

Secure Boot tạo một đường dẫn an toàn và đáng tin cậy từ UEFI (Unified Extensible Firmware Interface) thông qua trình tự Kernel Trusted Boot của Windows. Các cuộc tấn công phần mềm độc hại vào trình tự khởi động của Windows sẽ bị chặn bởi sự kết hợp signature-enforcement (thực thi chữ ký) giữa môi trường UEFI, bootloader, Kernel và ứng dụng trong suốt trình tự khởi động.

Khi PC bắt đầu quá trình khởi động, trước tiên nó sẽ xác minh Firmware có chữ ký số hay không. Sau đó Secure Boot sẽ kiểm tra tất cả mã code chạy trước hệ điều hành và kiểm tra chữ ký số của bootloader hệ điều hành để đảm bảo rằng nó tin cậy bởi chính sách Secure Boot và không bị giả mạo.

  • Trusted Boot (Khởi động đáng tin cậy):

Windows bootloader xác minh chữ ký số của Kernel trước khi tải nó. Sau đó Kernel xác minh mọi thành phần khác của quá trình khởi động Windows, bao gồm boot drivers, startup files và ELAM driver (early-launch antimalware). Nếu bất kỳ tệp nào trong số này bị giả mạo, bootloader sẽ phát hiện ra sự cố và từ chối tải các thành phần bị hỏng.

Kernel Mode và User Mode

Sau khi tìm hiểu vai trò của Kernel là gì trong hệ điều hành máy tính, chúng ta cùng sơ lược điểm qua 2 khái niệm có liên quan đến Kernel là Kernel Mode và User Mode.

Trên thực tế khi vận hành hệ thống thì có một số lệnh chỉ nên được thực hiện bằng Kernel. Kernel mode là 1 trong 2 chế độ của CPU. Khi CPU ở chế độ Kernel Mode, các lệnh này sẽ được thực thi. Ví dụ như việc quản lý bộ nhớ chỉ nên được thực hiện trong Kernel Mode. Ngoài ra nếu CPU ở chế độ Kernel Mode thì nó còn có thể thực thi bất cứ chỉ thị nào và tham chiếu đến bất kỳ địa chỉ nhớ nào.

User mode là chế độ thứ 2 của CPU còn gọi là chế độ người dùng. Ở chế độ này thì CPU sẽ thực thi các process do người dùng đưa ra trong User space. Khi CPU ở chế độ user mode sẽ không thể truy cập được tới phần cứng hoặc tham chiếu đến bộ nhớ 1 cách trực tiếp được. Các đoạn mã trong User mode phải được chuyển đổi thành các hàm API hệ thống thì lúc đó mới có thể truy cập đến phần cứng và bộ nhớ máy tính được.

Có bao nhiêu loại Kernel

Cho đến thời điểm hiện tại thì Kernel được phân ra làm 5 loại khác nhau.

Monolithic Kernel

Đây là loại kernel mà khi sử dụng các dịch vụ người dùng và kernel sẽ được triển khai trong cùng một không gian bộ nhớ. Nhờ vậy mà kích thước của Kernel sẽ tăng lên và kéo kích thước của hệ điều hành tăng theo.

Việc thực thi process sẽ nhanh hơn trong Monolithic Kernel vì không có User space và Kernel space riêng biệt. Các CPU Scheduler, Memory Scheduler, File Management đều được cung cấp thông qua System Call. Điểm bất lợi lớn nhất khi sử dụng Monolithic Kernel là bất kỳ dịch vụ nào thất bại cũng sẽ dẫn đến lỗi hệ thống và nếu muốn thêm dịch vụ mới thì toàn bộ hệ điều hành cần phải được sửa đổi.

kernel là gì

Mô hình Monolithic Kernel

Micro Kernel

Với loại hình Kernel này, dịch vụ người dùng và dịch vụ Kernel sẽ được triển khai ở các không gian khác nhau. Kích thước của Kernel và kích thước của hệ điều hành sẽ giảm xuống đáng kể vì sử dụng riêng User space và Kernel space.

Việc liên lạc giữa ứng dụng và kernel thông qua cơ chế IPC do các user service và kernel service ở những không gian khác nhau. Và điều này sẽ làm giảm tốc độ thực hiện. Ưu điểm lớn nhất của Micro kernel là có thể dễ dàng thêm vào các dịch vụ mới mà không cần phải sửa đổi hệ điều hành. Tuy nhiên nhược điểm của nó là tốc độ thực hiện yêu cầu sẽ không nhanh bằng Monolithic Kernel.

kernel là gì

Mô hình Micro Kernel

Hybrid Kernel

Hybrid Kernel là sự pha trộn giữa Monolithic Kernel và Micro kernel. Trường hợp này có thể được bắt gặp rất nhiều ở Microsoft Windows và Apple MacOS. Sự lai tạo này sẽ giúp di chuyển trình điều khiển nhưng giữ lại các dịch vụ hệ thống bên trong Kernel. Điều này cũng giống như cách mà driver được tải khi Windows bắt đầu quá trình khởi động vậy.

kernel là gì

Mô hình Micro Kernel

Nano Kernel

Nano kernel là loại kernel có tổng khối lượng mã được thực thi ở chế độ đặc quyền của phần cứng là rất nhỏ.

Nano kernel được thiết kế để chạy nhiều phiên bản hệ điều hành trên một hệ thống phần cứng duy nhất. Ví dụ điển hình của Nano Kernel là KeyKOS nanokernel. KeyKOS nanokernel có khoảng 20.000 dòng mã C, bao gồm kiểm tra tài nguyên và hỗ trợ bộ nhớ ảo. Đặc biệt là nó có thể chạy trong 1 bộ nhớ chỉ có dung lượng trong khoảng 100 KB.

Exo Kernel

Exo Kernel là loại kernel được thiết kế ở hệ điều hành phát triển song song MIT và nhóm hệ điều hành phân tán. Việc bảo vệ tài nguyên được tách ra khỏi quản lý ở loại Kernel này. Do đó, nó giúp cho phép người dùng thực hiện các tùy chỉnh dành riêng cho ứng dụng.

Kernel có lẽ vẫn còn là đề tài vô tận cho các lập trình viên và các nhà cung cấp dịch vụ công nghệ thông tin. Nếu bạn là người dùng phổ thông thì chỉ cần xem qua bài viết này là có thể hiểu được kernel là gì và có những loại kernel cơ bản nào. Ngược lại, nếu bạn chuyên nghiệp và muốn tìm hiểu sâu hơn thì trên nền tảng kiến thức của bài viết này, hãy mở rộng và phát triển kiến thức về kernel là gì theo định hướng công việc mà mình mong muốn nhé.

Theo Bizfly Cloud

Bizfly Cloud - được vận hành bởi VCCorp - là một trong bốn doanh nghiệp đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật, an toàn thông tin của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử do Bộ TT&TT chứng nhận.

SHAREFacebookTwitter

Từ khóa » Phiên Bản Kernel Là Gì