NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
02/05/2024
Lượt xem

Linux Kernel là gì? Cách hoạt động và chức năng của hạt nhân Linux

02/05/2024
11 phút đọc
Lượt xem

Đánh giá

5/5 - (158 bình chọn)

Linux Kernel là linh hồn và là bộ não của hệ điều hành Linux được tạo ra bởi Linus Torvalds cùng các lập trình viên khác để thử nghiệmk và xây dựng nên hệ điều hành Linux. Để hiểu hơn Linux Kernel là gì? Và hoạt động như thế nào? Cùng Vietnix tìm hiểu ngay trong bài viết dưới đây nhé

Linux Kernel là gì?

Linux Kernel (nhân Linux) là phần mềm mã nguồn mở, miễn phí. Linux Kernel chính là cốt lõi của hệ điều hành Linux và có thể hiểu Linux Kernel là một cầu nối giữa phần cứng và phần mềm, quản lý tài nguyên hệ thống và đảm bảo mọi thứ hoạt động trơn tru. Được phát triển từ năm 1991 và đã trở thành một ví dụ thành công nhất về sự hợp tác của cộng đồng mã nguồn mở toàn cầu.

Linux Kernel là bộ não cốt lõi của hệ điều hành Linux
Linux Kernel là bộ não cốt lõi của hệ điều hành Linux

Cách thức hoạt động của Linux Kernel

Linux Kernel hoạt động dựa trên cấu trúc nguyên khối (monolithic), có nghĩa là toàn bộ hệ điều hành, bao gồm các chức năng cốt lõi, đều nằm trong không gian kernel. Điều này khác biệt với kiến trúc microkernel, nơi chỉ có các chức năng cơ bản nhất nằm trong kernel, còn các chức năng khác chạy ở chế độ user. Bạn xem hình ảnh dưới đây để hình dung dễ hơn:

Kernel hoạt động dựa trên cấu trúc nguyên khối (monolithic)
Kernel hoạt động dựa trên cấu trúc nguyên khối (monolithic)

Ở hình trên, có thể thấy rằng kernel kiểu nguyên khối quản lý toàn bộ giao tiếp giữa các ứng dụng với phần cứng.

Linux Kernel nằm ở đâu trong hệ thống?

Linux Kernel, thành phần cốt lõi của hệ điều hành, được lưu trữ trong một phân vùng khởi động riêng biệt để đảm bảo tính an toàn và ổn định. Khi hệ thống khởi động (reboot), kernel sẽ được tự động tải vào bộ nhớ và bắt đầu quản lý các tài nguyên hệ thống.

Vị trí lưu trữ Linux Kernel:

  • Thường nằm trong thư mục /boot trên các hệ thống Debian/Ubuntu.
  • Có thể nằm ở phân vùng khởi động riêng biệt trên các hệ thống khác.

Để truy cập được vào Linux Kernel, bạn cần biết được phiên bản Linux Kernel hiện tại đang sử dụng. Xem cách kiểm tra phiên bản Linux Kernet nhanh bằng cách sử dụng lệnh:

uname -r
Kết quả: Macbook: ~ uname -r 5.3.0-28 

Trong đó:

  • 5 – Phiên bản kernel chính, đánh dấu những thay đổi lớn về tính năng và kiến trúc
  • 3 – Bản sửa đổi chính, bao gồm các tính năng mơips và những cải tiến đáng kể. Trước đây, là số chẵn (2,4,6…) thường là chỉ phiên bản ổn định còn số lẽ (3,5,7…) là phiên bản phát triển.
  • 0 – Bản sửa đổi phụ, tập trung vào việc sửa lỗi vá các lỗ hổng bảo mật.

Vậy phiên bản của hạt nhân Linux (Linux Kernel) là 5.3.0

Chức năng và ứng dụng của Linux Kernel

Linux Kernel là một thành phần không thể thiếu của hệ điều hành, do đó nó cũng thực hiện rất nhiều tác vụ: Từ cung cấp tài nguyên cho ứng dụng, đến việc lên lịch các tiến trình,…Trong phần này, hãy cùng Vietnix tìm hiểu những nhiệm vụ cơ bản nhất của Linux kernel.

Quản lý bộ nhớ

Quản lý bộ nhớ là một trong những chức năng quan trọng nhất của Linux Kernel, đảm bảo hiệu suất, ổn định và bảo mật hệ thống. Kernel có nhiệm vụ cấp phát và giải phóng bộ nhớ vật lý, đồng thời quản lý bộ nhớ ảo cho các tiến trình.

Cơ chế quản lý bộ nhớ của Linux Kernel:

  • Bảng page: Lưu trữ ánh xạ giữa địa chỉ ảo và địa chỉ vật lý, cho phép kernel quản lý bộ nhớ hiệu quả.
  • Phân bổ (paging): Chia bộ nhớ thành các page (trang) có kích thước cố định (thường là 4096 byte) để dễ dàng quản lý và phân bổ.
  • Phân mảnh bộ nhớ: Xảy ra khi bộ nhớ được chia nhỏ thành nhiều phần không liền kề, ảnh hưởng đến hiệu suất hệ thống. Kernel sử dụng các thuật toán để giảm thiểu phân mảnh và tối ưu hóa việc sử dụng bộ nhớ.
  • Bộ nhớ ảo: Cho phép các process sử dụng nhiều bộ nhớ hơn bộ nhớ vật lý thực tế, tạo ra không gian địa chỉ riêng biệt và bảo vệ hệ thống khỏi các truy cập trái phép.

Hầu hết các tác vụ trong kernel đều hoạt động thông qua system call. Chẳng hạn bạn có một system call để truy xuất kích thước page trong bộ nhớ như sau:

#include<unistd.h> #include<stdio.h> int main(){     // Thực hiện system call     int size = getpagesize();     // In kích thước page     printf("%d\n", size);     return 1; }

Chức năng quản lý bộ nhớ có nhiệm vụ paging (phân bổ bộ nhớ) và swapping (hoán đổi page) trong bộ nhớ ảo. Bộ nhớ ảo được phân bổ cho process được tách biệt hoàn toàn, từ đó tạo thêm một lớp bảo vệ hệ điều hành khỏi các chương trình độc hại.

Các lệnh Linux như htopatop có thể được dùng để giám sát các thông tin liên quan đến bộ nhớ cho từng process đang chạy.

Output của lệnh atop để theo dõi thông tin và quản lý bộ nhớ
Output của lệnh atop để theo dõi thông tin và quản lý bộ nhớ

Quản lý Process

Mọi chương trình đang chạy trong hệ thống đều được xem là một tiến trình (process). Kernel trong Linux quản lý việc tạo, chạy và xoá những process này. Các system call như fork() hoặc exec() là những công cụ rất hữu ích trong môi trường đa tiến trình (multi-processing).

Mọi process trong hệ thống đều cần có CPU để thực thi, và công cụ lên lịch cho tiến trình (Process Scheduler) là một phần không thể thiếu để quản lý process. Các công cụ này thường hỗ trợ nhiều loại thuật toán khác nhau để sắp xếp lịch cho process.

Bên cạnh đó, các Linux Kernel còn có một vai trò quan trọng là IPC (Inter-Process Communication – Giao tiếp giữa các tiến trình). Các cơ chế như pipe hay semaphore được điều phối bởi kernel với mục đích duy trì giao tiếp giữa các tiến trình với nhau.

Để xem nhanh các process đang chạy, bạn có thể sử dụng lệnh htop trong Terminal. Ngoài ra lệnh này còn trả về những thông tin khác như thứ tự ưu tiên trong lịch và tỉ lệ CPU đang sử dụng.

Sử dụng lệnh htop để theo dõi các process đang chạy
Sử dụng lệnh htop để theo dõi các process đang chạy

Hướng dẫn cài đặt Linux Kernel

Một điều đặc biệt của Linux Kernel là người dùng có thể thay đổi sang những phiên bản kernel khác. Tuy nhiên việc này tương đối phức tạp nên Vietnix sẽ chỉ đề cập ngắn gọn những bước cơ bản nhất để cài đặt một phiên bản cụ thể của Linux Kernel:

  • Bước 1: Bạn cần download file kernel cần cài đặt từ website chính thức tại đây. Sau đó, giải nén và cấu hình file thông qua lệnh make.
  • Bước 2: Chạy lệnh make menuconfig, khi đó một cửa sổ mới sẽ hiện ra để người dùng chọn module và tính năng cho kernel mới. Có một cách nhanh hơn là copy file cấu hình hiện tại của kernel đang chạy vào directory vừa giải nén:
cp /boot/config-$(uname -r) .config

Lưu ý: Một số lệnh có thể không chạy được với quyền ở cấp user. Vì vậy bạn cần đảm bảo rằng quyền chạy lệnh là root (sử dụng lệnh sudo -s hoặc sudo su).

Lệnh ở trên có nhiệm vụ copy file config có trong directory boot của kernel hiện tại, rồi lưu lại dưới dạng một file config mới với tên .config.

  • Bước 3: Tiếp theo, bạn cần cài đặt một số công cụ và compiler để biên dịch file kernel. Nếu bạn dùng Debian/Ubuntu có thể sử dụng lệnh dưới đây:
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev

Kernel image được biên dịch bằng lệnh make bên trong directory chứa file kernel mới. Quá trình biên dịch có thể mất khá nhiều thời gian, nên bạn bạn chờ thêm một chút nhé!

  • Bước 4: Sau khi quá trình biên dịch hoàn tất, bạn cần cài đặt các module và kernel image bằng lệnh sau:
make install_modules && make install

Trong đó, phần lệnh đầu tiên cài đặt module của kernel, phần lệnh sau có nhiệm vụ cài đặt kernel hoàn chỉnh cùng với các hình ảnh và file quan trọng bên trong thư mục /boot.

  • Bước 5: Bây giờ ta có thể chuyển sang phiên bản kernel mới vừa cài đặt:
sudo update-initramfs -c -k <PHIEN_BAN_KERNEL_MOI>

Trong đó, PHIEN_BAN_KERNEL_MOI phải khớp với tên của file image vừa mới cài đặt.

  • Bước 6: Ở bước cuối cùng, bạn chỉ cần restart lại hệ thống bằng lệnh reboot để áp dụng các thay đổi.

Cài đặt Linux Kernel trên Ubuntu

Ubuntu hỗ trợ Kernel PPA để người dùng download các gói kernel từ phiên bản 2.6 đến 5.19 (Mới nhất).

  • Bước 1: Bạn có thể download package .deb cho một phiên bản kernel tại đây.

Bên cạnh bản 64-bit (amd64) thì PPA cũng hỗ trợ các kiến trúc CPU khác như arm64/armhf, ppc64els390x.

  • Bước 2: Sau khi download package xong, bạn có thể cài đặt bằng lệnh apt trong Terminal như sau:
sudo apt install ~/Downloads/linux-*.deb
Sử dụng Terminal để thực hiện lệnh cài đặt Linux Kernel trên Ubuntu
Sử dụng Terminal để thực hiện lệnh cài đặt Linux Kernel trên Ubuntu
  • Bước 3: Cuối cùng là restart lại máy rồi kiểm tra phiên bản Linux Kernel hiện tại bằng lệnh:
uname -a.

Cài đặt Linux Kernel trong Fedora

Tương tự như Ubuntu thì Fedora cũng có Kernel Vanilla Repositories để lưu trữ các gói Kernel Linux mới nhất.

Các dòng cho kiến trúc CPU amd64arm64:

  • kernel-vanilla-mainline – Bản kernel mới nhất trong giai đoạn tiền phát hành (còn gọi là rc kernel).
  • kernel-vanilla-mainline-wo-mergew – Tương tự ở trên nhưng bỏ kernel khỏi cửa sổ merge.
  • kernel-vanilla-stable – Bản kernel ổn định mới nhất, theo kernel.org.
  • kernel-vanilla-stable-rc – Tương tự ở trên, kèm theo kernel RC.
  • kernel-vanilla-fedora – Bản phát hành mới nhất của dòng kernel mặc định cho Fedora.
  • Bước 1: Trước tiên, mở Terminal rồi nhập lệnh sau để thiết lập repo:
curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo
  • Bước 2: Sau đó cài đặt bản Kernel mới nhất bằng lệnh:
sudo dnf --enablerepo=kernel-vanilla-stable update

Trong đó, thay kernel-vanilla-stable bằng các option bạn muốn theo ở trên.

  • Bước 3: Cuối cùng là restart lại máy tính để thử nghiệm bản Linux kernel mới cho Fedora.

Kết luận

Linux Kernel chính là bộ não của cả hệ điều hành Linux. Việc tìm hiểu về Linux Kernel giúp bạn hiểu rõ hơn về hệ điều hành này và cách sử dụng Linux Kernel. Hy vọng bài viết Vietnix chia sẻ ở đây cung cấp cho bạn những kiến thức cơ bản nhất về kernel. Chúc các bạn thành công!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG