Giới thiệu về Linux kernel

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Giới thiệu về Linux kernel

Nội dung của bài này là những khái niệm, những tiếp cận ban đầu người đọc nên biết về hệ
điều hành Linux. Bài học cũng sẽ giải thích những đặc điểm khiến Linux khác biệt và nổi trội
hơn những hệ điều hành Unix nổi tiếng khác.

UNIX là gì? Linux là gì?

Rất nhiều người bắt đầu tiếp cận với Linux không phân biệt được thế nào là Unix, thế nào là
Linux, mặc dù hai khái niệm này luôn luôn đi đôi với nhau.

Unix là một trong những hệ điều hành đầu tiên được viết bằng ngôn ngữ bậc cao (C) trên thế
giới. Unix được phát triển bởi phòng nghiên cứu Bell từ những năm đầu những năm 1969-1970,
và rất nhanh trở nên phổ biến đặc biệt là đối với các máy tính chuyên dụng (workstations).

Có rất nhiều phiên bản hệ điều hành thương mại khác nhau, của các hãng khác nhau, ví dụ
như: Solaris của Sun, HP-UX của Hewlett-Packard, AIX của IBM hay Mac OS X nổi tiếng của
APPLE. Tất cả những hệ điều hành này đều có nền tảng là Unix, và thêm vào những tính
năng, những thành phần được phát triển của riêng các hãng.

Linux cũng là một thành viên trong đại gia đình các hệ điều hành phát triển dựa trên nền tảng
Unix. Linux được phát triển bởi Linus Torvalds vào năm 1991, và hướng tới dòng máy tính cá
nhân (personal computer) thay vì dòng máy tính chuyên dụng (workstations). Và điểm nổi bật
của Linux, nó không phải là một phiên bản hệ điều hành thương mại – có nghĩa, Linux là hoàn
toàn miễn phí.

Bởi vì tính lịch sử cũng như kế thừa như vậy, Linux và Unix thực chất là có chung một
nền tảng phát triển (có thể coi Linux là “con” của Unix).

Kernel trong một hệ điều hành


Kernel là thành phần cốt lõi của một hệ điều hành. Kernel bản chất là một chương trình máy
tính, được khởi chạy trong quá trình khởi động của hệ thống (sau bootloader). Nó quản lý bộ
nhớ, các thiết bị ngoại vi như bàn phím, chuột … và có quyền kiểm soát mọi thứ trong hệ thống.

Chính vì là thành phần vô cùng quan trọng của một hệ điều hành, kernel thường được nạp vào
một vùng nhớ riêng và được bảo vệ khỏi sự can thiệp từ các chương trình ứng dụng và từ các
phần khác của hệ điều hành.

Sự tách biệt giữa kernel và phần còn lại của hệ điều hành, dẫn tới việc chúng ta có 2 khái niệm
quen thuộc khác khi học về Linux: kernel space và user space. Tất cả mọi hoạt động của
kernel, ví dụ như khởi tạo các tiến trình, xử lý các ngắt (interupts), quản lý phần cứng … đều
được hoạt động ở kernel space. Ngược lại, các thao tác của người dùng như chạy một chương
trình, viết một đoạn văn trên trình soạn thảo văn bản được thực hiện ở user space. Việc tách
biệt không gian hoạt động này tránh xung đột dữ liệu của kernel và dữ liệu của user, bảo vệ
kernel khỏi sự tác động từ phía user space.
Linux kernel và các kernel nền tảng Unix khác

Như đã đề cập ở phần đầu, Linux bản thân cũng là một hệ điều hành dựa trên nên tảng Unix, và
nó ra đời cũng khá muộn (1991). Vậy Linux có gì để cạnh tranh với những hệ điều hành Unix nổi
tiếng và có lịch sử lâu đời khác? Đó là Linux ra đời sau nhưng vẫn kế thừa những tính năng,
những thiết kế nổi bật của một hệ điều hành Unix:

Monolithic Kernel – Kernel nguyên khối: Cũng giống như nhiều kernel Unix khác, Linux
Kernel có kiến trúc nguyên khối, bao gồm tất cả các chức năng cốt lõi của hệ điều hành và
các drivers của thiết bị.
Nạp hoặc dỡ bỏ các kernel modules một cách linh hoạt: Linux kernel cho phép nạp
hoặc dỡ bỏ các kernel modules (tiêu biểu là các device drivers) một cách tự động và linh
hoạt, tùy theo nhu cầu. Trong các hệ điều hành Unix thương mại khác, chỉ có SVR4.2 và
Solaris có tính năng này.
Đa luồng (Multi-thread) trong kernel và trong các ứng dụng.
Preemptive Kernel – Kernel định thời: Linux hỗ trợ bật hoặc tắt chức năng định thời
trong kernel. Cụ thể về tính năng này sẽ được giải thích ở phần sau của khóa học.
Linux Kernel hỗ trợ hệ thống đa xử lý nhiều CPU – multiprocessors.
Linux Kernel hỗ trợ nhiều loại filesystems: Ext2, Ext3, ReiserFS …

Bên cạnh những tính năng cơ bản, tính năng nền tảng, Linux còn có những đặc điểm tuyệt vời
khi đem so sánh với các hệ điều hành thương mại khác.

Linux là hoàn toàn miễn phí khi sử dụng: Bạn sẽ không mất một chi phí nào khác (ngoài
phần cứng) khi sử dụng một thiết bị chạy Linux.
Linux cho phép bạn toàn quyền xem, sửa đổi mã nguồn tất cả thành phần của kernel.
Linux có thể chạy trên cả những phần cứng chậm và rẻ tiền: Bạn có thể xây dựng một
network server với CPU Intel 80386 và 4MB RAM.
Linux là một hệ điều hành rất mạnh mẽ: Hệ thống Linux rất nhanh vì nó khai thác được
toàn bộ các thành phần phần cứng. Hầu hết các thiết bị mạng, các server hiện nay chạy
Linux.
Linux tương thích với rất nhiều hệ điều hành phổ biến khác: Một ví dụ khi cài song song 2
hệ điều hành Linux và Window, bạn vẫn có thể sử dụng các phân vùng của Window trên
Linux nhưng không thể làm được điều ngược lại.
Linux được hỗ trợ rất tốt: Rất dễ dàng để có các bản cập nhật, các bản vá lỗi của Linux
hơn các hệ điều hành khác.
Kết luận
Kết thúc bài học, các bạn đã có một cái nhìn chung về Linux – Linux Kernel cũng như những
đặc điểm nổi bật của Linux, điều khiến Linux phát triển vô cùng nhanh chóng và rộng rãi.

Bài học tiếp theo sẽ nói tới kiến trúc của Linux Kernel, mô tả các thành phần, chức năng của các
thành phần trong Linux Kernel.

You might also like