Kernel space là gì

Nhược điểm: – Phần cứng đôi khi “khó hiểu” hơn thông qua hệ thống driver – Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở trong chế độ user mode – Các tiến trình phải chờ đợi để được nhận thông tin

– Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi

Monolithic Kernel:

Monolithic  chúng có chức năng bao quát rộng hơn so với microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn can thiệp vào trình điều khiển driver, tính năng điều phối file hệ thống, các giao tiếp qua lại giữa server

Kernel space là gì

Monolithic tốt hơn khi truy cập tới phần cứng và đa tác vụ, bởi vì nếu 1 chương trình muốn thu thập thông tin từ bộ nhớ và các tiến trình khác, chúng cần có quyền truy cập trực tiếp và không phải chờ đợi các tác vụ khác kết thúc.

Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất ổn vì nhiều chương trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ cũng khiến cho cả hệ thống mất ổn định.

Ưu điểm: – Truy cập trực tiếp đến các phần cứng – Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau – Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài đặt thêm driver cũng như phần mềm khác

– Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi

Nhược điểm: – Tiêu tốn nhiều footprint cài đặt và lưu trữ

– Tính bảo mật kém hơn vì tất cả đều hoạt động trong chế độ giám sát – supervisor mode

Hybrid Kernel: 

Hybrid có khả năng chọn lựa và quyết định những ứng dụng nào được phép chạy trong chế độ user hoặc supervisor.

Kernel space là gì

Thông thường, những thứ như driver và file hệ thống I/O sẽ hoạt động trong chế độ user mode trong khi IPC và các gói tín hiệu từ server được giữ lại trong chế độ supervisor.

Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của hệ thống, phân phối và điều chỉnh công việc phù hợp, dễ quản lý.

Ưu điểm: – Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy trong chế độ thích hợp – Sử dụng ít footprint hơn so với monolithic kernel

– Có tính linh hoạt và cơ động cao nhất

Nhược điểm: – Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với microkernel

– Các trình điều khiển thiết bị phải được quản lý bởi người dùng

Phiên bản Kernel

Đôi khi trong quá trình sử dụng, quản trị một máy chủ Linux chúng ta cần phải biết được hệ điều hành đang sử dụng là gì, Kernel phiên bản bao nhiêu, nền tảng 32Bit hay 64Bit, …

Để xem phiên bản Kernel hiện tại bạn sẽ cần phải sử dụng các câu lệnh bên dưới, bạn không cần phải chạy với quyền root và sẽ chỉ mất của bạn 1 phút để kiểm tra mà thôi.

uname – Hiển thị thông tin Kernel và thông tin hệ thống.

lsb_release – Hiển thị nhà cung cấp hệ điều hành (CentOS, Ubuntu, Redhat, ….)

/proc/version file – Hiển thị thông tin Kernel đang chạy (số chẳn là phiên bản Kernel ổn định, số lẻ là phiên bản thử nghiệm).

  • Tech Knowledge
  • Tech News
  • Solutions
  • Tips
  • Video

Provide the management technology and services required to optimize the ongoing operational costs of the solution

CONVERGED INFRASTRUCTURE SOLUTIONS

Grow your virtualized environment into a hyper-converged infrastructure

Copyright © 2016 OCTAPUS. All Rights Reserved. Powered by BizMaC

Mọi hệ điều hành – cho dù đó là Windows, Mac, Linux hay Android, đều có một chương trình cốt lõi gọi là Kernel, hoạt động như một “ông trùm”, đối với toàn bộ hệ thống. Vậy nó hoạt động như thế nào? Để giải đáp điều này thì hãy xem ngay bài viết dưới đây của SEMTEK nhé!

Tìm hiểu Kernel và vai trò của nó trong hệ điều hành

1. 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ì nó 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.

Kernel space là gì

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.

2. Chức năng

Một số chức năng chính:

  • Truy cập tài nguyên máy tính: 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.

3. 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.

Kernel space là gì

  • 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.

4. 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

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.

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

1. Monolithic Kernels

Đây 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.

Kernel space là gì

Ư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.

Kernel space là gì

Ư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

Đây là loại 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à 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 chương trình – tương tự như cách driver được tải khi Windows bắt đầu quá trình khởi động.

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

Đây 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 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.

Lời kết

Tất cả các hệ điều hành đa nhiệm đều có một Kernel dưới dạng này hay dạng khác. Nó là một chức năng cốt lõi để quản lý các tài nguyên của hệ thống, bao gồm bộ nhớ, các tiến trình và các trình điều khiển khác nhau. Phần còn lại của hệ điều hành, có thể là Windows, OS X, iOS, Android hay bất cứ thứ gì đều được đặt ở phía bên trên của kernel.

Có rất nhiều thứ để nói về khái niệm này, hơn cả những gì được đề cập ở đây. Khi bạn tìm hiểu sâu hơn, định nghĩa của khái niệm này 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.

Tìm kiếm lên quan

  • Corn kernel là gì
  • What is kernel

Nội dung liên quan