Skip to content

Dashboard

Kernel là gì? Các chức năng của Kernel

Created by Admin

Kernel là gì? Các chức năng của Kernel

08/03/2021
0 Lượt xem

Kernel là một chương trình máy tính, trái tim và cốt lõi của Hệ điều hành. Do Hệ điều hành có quyền kiểm soát hệ thống nên Kernel cũng có quyền kiểm soát mọi thứ trong hệ thống. Đây là phần quan trọng nhất của Hệ điều hành.

Kernel là gì?

Bất cứ khi nào một hệ thống khởi động. Kernel là chương trình đầu tiên được tải sau boot loader vì Kernel phải xử lý phần còn lại của hệ thống cho Hệ điều hành. Kernel vẫn còn trong bộ nhớ cho đến khi Hệ điều hành bị tắt.

Kernel chịu trách nhiệm cho các tác vụ cấp thấp. Như quản lý đĩa, quản lý bộ nhớ, quản lý tác vụ, v.v. Nó cung cấp giao diện giữa người dùng và các thành phần phần cứng của hệ thống. Khi một tiến trình thực hiện một yêu cầu tới Kernel, thì nó được gọi là System Call.

Một Kernel Space được bảo vệ là một vùng bộ nhớ riêng biệt. Và khu vực này không thể truy cập được bởi các chương trình ứng dụng khác. Vì vậy, code của Kernel được tải vào Kernel Space được bảo vệ này. Ngoài ra, bộ nhớ được sử dụng bởi các ứng dụng khác được gọi là User Space. Vì đây là hai không gian khác nhau trong bộ nhớ, nên giao tiếp giữa chúng chậm hơn một chút.

Chức năng của Kernel là gì?

Sau đây là các chức năng của Kernel:

  • Truy cập tài nguyên máy tính: Kernel có thể truy cập các tài nguyên máy tính khác nhau. Như CPU, thiết bị I/O và các tài nguyên khác. Nó hoạt động như một cầu nối giữa người dùng và tài nguyên của hệ thống.
  • Quản lý tài nguyên: Nhiệm vụ của Kernel là chia sẻ tài nguyên giữa các process khác nhau.
  • Quản lý bộ nhớ: Mỗi process cần một số không gian bộ nhớ. Vì vậy, bộ nhớ phải được phân bổ và truy cập để hoạt động. Tất cả những tác vụ quản lý bộ nhớ này được thực hiện bởi Kernel.
  • Quản lý thiết bị: Các thiết bị ngoại vi được kết nối trong hệ thống được sử dụng bởi các process. Vì vậy, việc phân bổ các thiết bị này được quản lý bởi Kernel.

Kernel Mode và User Mode

Có một số lệnh nhất định chỉ nên thực thi bằng Kernel. Vì vậy, CPU chỉ thực hiện các lệnh này trong Kernel Mode. Ví dụ, quản lý bộ nhớ chỉ nên được thực hiện trong Kernel Mode. Khi ở Chế độ người dùng, CPU sẽ thực thi các process do người dùng đưa ra trong User space.

Các loại Kernel

Nói chung, có năm loại Kernel. Hãy cùng tìm hiểu xem các loại Kernel là gì và tính năng nổi bật của chúng.

1. Monolithic Kernels

Monolithic Kernels là những Kernel mà các user service và kernel service được triển khai trong cùng một không gian bộ nhớ, tức là bộ nhớ khác nhau cho các user service, và kernel service không được sử dụng trong trường hợp này. Bằng cách đó, kích thước của Kernel được tăng lên và điều này sẽ làm tăng kích thước của Hệ điều hành. Vì không có User space và Kernel space riêng biệt, nên việc thực thi process sẽ nhanh hơn trong Monolithic Kernels.

Ưu điểm:

  • Nó cung cấp CPU Scheduler, Memory Scheduler, File Management thông qua System Call.
  • Việc thực thi process diễn ra nhanh chóng vì không có không gian bộ nhớ riêng cho User và Kernel.

Nhược điểm:

  • Nếu bất kỳ dịch vụ nào thất bại, thì nó sẽ dẫn đến lỗi hệ thống.
  • Nếu các dịch vụ mới được thêm vào thì toàn bộ Hệ điều hành cần được sửa đổi.

2. Microkernel

Một Microkernel khác với kernel Monolithic vì trong Microkernel, các dịch vụ người dùng và dịch vụ kernel được triển khai vào các không gian khác nhau. Vì sử dụng riêng User space và Kernel space, do đó, nó làm giảm kích thước của Kernel và do đó, làm giảm kích thước của Hệ điều hành.

Vì chúng tôi đang sử dụng các không gian khác nhau cho các user service và kernel service, do đó việc liên lạc giữa ứng dụng và dịch vụ được thực hiện với sự trợ giúp của IPC và điều này sẽ làm giảm tốc độ thực hiện.

Ưu điểm:

  • Nếu các dịch vụ mới được thêm vào thì có thể dễ dàng thêm vào.

Nhược điểm:

  • Vì chúng ta đang sử dụng User space và Kernel space riêng biệt, do đó, giao tiếp giữa chúng có thể giảm thời gian thực hiện chung.

3. Hybrid Kernel

Hybrid Kernel là sự kết hợp của cả Microkernel và Monolithic Kernel. Nó sử dụng tốc độ của Monolithic Kernels và tính mô đun của Microkernel.

4. Nanokernel

Trong một Nanokrnel, như tên cho thấy, toàn bộ mã của kernel rất nhỏ, tức là mã thực thi trong chế độ đặc quyền của phần cứng là rất nhỏ.

5. Exokernel

Exokernel là một nhân hệ điều hành được phát triển bởi song song MIT và nhóm Hệ điều hành phân tán. Ở loại Kernel này, việc bảo vệ tài nguyên được tách ra khỏi quản lý và do đó, điều này dẫn đến việc cho phép chúng ta thực hiện các tùy chỉnh dành riêng cho ứng dụng.

Theo Đội AfterAcademy

Source: https://vietnix.vn/kernel-la-gi/