Chi tiết bài học Giới thiệu về Linux kernel

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 bắt đầu người đọc nên biết về hệ quản lý và điều hành Linux. Bài học cũng sẽ lý giải những đặc thù khiến Linux độc lạ và nổi trội hơn những hệ quản lý Unix nổi tiếng khác .

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

Rất nhiều người khởi đầ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ầu hai khái niệm này luôn luôn song song 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 những hệ quản lý và điều hành tăng trưởng dựa trên nền tảng Unix. Linux được tăng trưởng bởi Linus Torvalds vào năm 1991, và hướng tới dòng máy tính cá thể ( personal computer ) thay vì dòng máy tính chuyên được dùng ( workstations ). Và điểm điển hình nổi bật của Linux, nó không phải là một phiên bản hệ điều hành quản lý thương mại – có nghĩa, Linux là trọn vẹn không lấy 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ệ quản lý và điều hành

Kernel là thành phần cốt lõi của một hệ quản lý và điều hành. Kernel thực chất là một chương trình máy tính, được khởi chạy trong quy trình khởi động của mạng lưới hệ thống ( sau bootloader ). Nó quản trị bộ nhớ, những thiết bị ngoại vi như bàn phím, chuột … và có quyền trấn áp mọi thứ trong mạng lưới hệ thống .
Chính vì là thành phần vô cùng quan trọng của một hệ quản lý và đ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ừ những chương trình ứng dụng và từ những phần khác của hệ quản lý .

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 spaceuser 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à những 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ệ quản lý dựa trên nên tảng Unix, và nó sinh ra cũng khá muộn ( 1991 ). Vậy Linux có gì để cạnh tranh đối đầu với những hệ quản lý và điều hành Unix nổi tiếng và có lịch sử dân tộc truyền kiếp khác ? Đó là Linux sinh ra sau nhưng vẫn thừa kế những tính năng, những phong cách thiết kế điển hình nổi bật của một hệ quản lý 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 thù tuyệt vời khi đem so sánh với những hệ quản lý và điều hành thương mại khác .

  • Linux là trọn vẹn không tính tiền khi sử dụng : Bạn sẽ không mất một ngân sách nào khác ( ngoài phần cứng ) khi sử dụng một thiết bị chạy Linux .

  • Linux được cho phép bạn toàn quyền xem, sửa đổi mã nguồn toàn bộ thành phần của kernel .

  • Linux hoàn toàn có thể chạy trên cả những phần cứng chậm và rẻ tiền : Bạn hoàn toàn có thể thiết kế 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 quản lý rất can đảm và mạnh mẽ : Hệ thống Linux rất nhanh vì nó khai thác được hàng loạt những thành phần phần cứng. Hầu hết những thiết bị mạng, những server lúc bấy giờ chạy Linux .

  • Linux thích hợp với rất nhiều hệ quản lý và điều hành phổ cập khác : Một ví dụ khi cài song song 2 hệ điều hành quản lý Linux và Window, bạn vẫn hoàn toàn có thể sử dụng những phân vùng của Window trên Linux nhưng không hề làm được điều ngược lại .

  • Linux được tương hỗ rất tốt : Rất thuận tiện để có những bản update, những bản vá lỗi của Linux hơn những hệ quản lý và điều hành khác .

Kết luận

Kết thúc bài học kinh nghiệm, những bạn đã có một cái nhìn chung về Linux – Linux Kernel cũng như những đặc thù điển hình nổi bật của Linux, điều khiến Linux tăng trưởng vô cùng nhanh gọn và thoáng rộng .

Bài học tiếp theo sẽ nói tới kiến trúc của Linux Kernel, diễn đạt những thành phần, công dụng của những thành phần trong Linux Kernel .