You are on page 1of 4

Giới thiệu hệ điều hành Linux

Trước khi xắn tay áo để viết chương trình đầu tiên, chúng ta sẽ ngược dòng lịch sử một chút để
tìm hiểu về nguyên nhân ra đời và quá trình phát triển của hệ điều hành Linux. Bài viết này sẽ
tóm tắt ngắn gọn lịch sử phát triển của hệ điều hành Linux cũng như sự cần thiết của việc ra đời
của các tiêu chuẩn quan trọng giúp cho hệ điều hành Linux được đóng góp phát triển như ngày
nay.

Hệ điều hành Linux


Linux là một hệ điều hành máy tính mã nguồn mở (open source) và tự do (free) dạng Unix-like
(giống kiểu hệ điều hành Unix) được xây dựng trên nền của nhân Linux (Linux kernel).

Phiên bản Linux kernel đầu tiên được release vào năm 1991 bởi Linus Tovard khi ông còn là
một sinh viên đại học Helsinki ở Phần Lan. Ban đầu, Linux kernel chỉ được phát triển cho dòng
chip 80386 của Intel. Trải qua quá trình đóng góp của nhiều cá nhân đam mê và các tổ chức lớn
nhỏ, nó đã lớn mạnh để hỗ trợ được số lượng lớn các kiến trúc vi xử lý và được sử dụng cho rất
nhiều ứng dụng khác nhau từ máy tính cá nhân đến các siêu máy tính, các thiết bị nhúng,
server và cả các thiết bị di động. Có thể các bạn đã biết, hệ điều hành di động lớn nhất thế giới
hiện tại là Android cũng được chạy trên nền tảng nhân của Linux. Để hiểu rõ hơn về quá trình
phát triển và tinh thần phát triển của Linux, chúng ta sẽ điểm qua một chút về lịch sử của Linux,
bắt đầu từ dự án GNU.

Dự án GNU
Dự án GNU được bắt đầu vào năm 1984 bởi một lập trình viên tài năng đang làm việc tại MIT
là Richard Stallman với mong muốn tạo ra một hệ điều hành tự do (free software) thay cho hệ
điều hành độc quyền Unix thời đó. Có nhiều người hiểu nhầm về từ free trong ngữ cảnh này là
miễn phí, nhưng triết lý của từ free trong các hệ thống mã nguồn mở là freedom (tự do) chứ
không phải free of charge (không mất phí). Nội dung cơ bản về tự do này là: tự do sử dụng
source code, sửa chữa source code và build theo ý của người dùng và tự do phân phối lại nó
cho cá nhân hoặc tổ chức khác.

Trên tinh thần này, Stallman đã bắt đầu dự án GNU đồng thời kêu gọi cộng đồng tham gia phát
triển, và một trong những thành quả quan trọng là sự ra đời của Giấy phép công cộng chung
GNU (GNU General Public License - GPL), một giấy phép không thể thiếu để phân phối các
phần mềm tự do, bao gồm cả nhân Linux sau này. Bạn sẽ thấy được tầm quan trọng của giấy
phép GPL khi bạn bắt tay vào lập trình Linux. Thật vậy, khi tải source code của một công cụ mã
nguồn mở hoặc Linux kernel về máy, bạn sẽ thấy sự hiện diện về thông tin cũng như cảnh báo
của giấy phép GPL ở khắp nơi trong source code. Ví dụ như sau:

This program is free software; you can redistribute it and/or modify it


under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

Hoặc:

EXPORT_SYMBOL_GPL(pci_power_name); //export symbol


pci_power_name cho các module được cấp phép GPL khác
Dự án GNU tuy không thể tạo ra được một kernel chạy hoàn chỉnh, nhưng đã tạo ra được rất
nhiều chương trình, công cụ hữu ích chạy cho hệ điều hành Unix-like. Các công cụ nổi tiếng của
GNU mà được dùng phổ biến hiện nay như trình soạn thảo Emacs, công cụ biên dịch GNU
Compiler Collection (GCC), bash và thư viện glibc (GNU C library).

Nhân Linux (Linux kernel)


Nhân Linux được ra đời bởi Linus Tovard năm 1991 chính là mảnh ghép quan trọng còn thiếu
có thể kết hợp với dự án GNU để trở thành một hệ điều hành hoàn chỉnh và lớn mạnh như ngày
nay.

Tại thời điểm Linus Tovard nhen nhóm kế hoạch tạo ra Linux kernel, đã có một kernel hệ điều
hành tồn tại là Minix kernel. Tuy Minix kernel có source code đầy đủ, được build hoàn chỉnh và
chạy được trên kiến trúc 386 nhưng nó chỉ được tạo ra như một công cụ phục vụ giảng dạy. Do
đó, Minix kernel không có khả năng độc lập với các kiến trúc phần cứng khác cũng như phát huy
được đầy đủ khả năng của vi xử lý đó.

Kể từ khi ra mắt phiên bản đầu tiên, Linux kernel đã được phát triển không ngừng và cho ra mắt
phiên bản mới thường xuyên khiến cho nó ngày càng hoàn chỉnh. Ban đầu được viết cho dòng
chíp Intel I80386, nhưng đến nay Linux đã có thể port được sang nhiều kiến trúc phần cứng
khác như Arm, Mips, PowerPC … Và danh sách các kiến trúc có thể port được Linux sẽ ngày
còn không ngừng tăng lên.

Phân phối Linux


Nói một cách chính xác, tên gọi Linux chỉ là nhân (kernel) của một hệ điều hành được phát triển
bởi Linus Tovard cùng nhiều cá nhân và các tổ chức khác. Bản thân Linux kernel không tạo
thành một hệ điều hành hoàn chỉnh mà chúng ta đang sử dụng trên máy tính của mình. Tuy
nhiên, do tầm quan trọng của Linux kernel, mọi người đã thành thói quen khi nhắc đến Linux là
ám chỉ không chỉ Linux kernel mà còn cả các phần mềm (tool hoặc thư viện) khác kết hợp với
nhau tạo thành một hệ điều hành hoàn chỉnh.

Thật vậy, bạn thử kiểm tra tên hệ điều hành của môi trường bạn đang làm việc bằng câu lệnh
“unane -r” trên terminal của mình xem, nó sẽ có dạng như thế này:

minhlv@vimentor:~/wORK/linux_kernel/linux-4.9/kernel$ uname -o

GNU/Linux

Vậy đó, hệ điều hành của bạn là GNU/Linux, nghĩa là kết hợp bởi Linux kernel và các phần
mềm của GNU nữa, chứ không phải chỉ có Linux đâu nhé.

Trong những ngày đầu của Linux, người dùng phải tự tay lắp ráp các phần mềm này cài đặt với
Linux kernel để tạo ra hệ điều hành hoàn chỉnh cho máy tính của mình. Việc này khá bất tiện vì
mất thời gian và đòi hỏi người dùng phải có kiến thức cơ bản về phần mềm. Để giải quyết bài
toán này, các công ty và các tổ chức được gọi là nhà phân phối Linux (Linux distributors) đã tạo
ra các gói (distributions) để tự động hóa hầu hết quá trình cài đặt Linux kernel và các phần mềm
cần thiết. Việc này có hiệu quả to lớn trong việc phổ biến Linux đến tay người dùng như hiện
nay.
Những bản phân phối Linux nổi tiếng được sử dụng hiện nay kể đến như phân phối phi thương
mại Debian và RedHat. Hoặc một phân phối đang phát triển rất phổ biến hiện nay là Ubuntu.

Các tiêu chuẩn Unix và Linux


Quay trở lại với lịch sử phát triển của hệ điều hành Unix, tiền thân và cũng là nền tảng cho Linux
ra đời và phát triển. Sau 6 phiên bản release, hệ điều hành Unix đã phân nhánh từ phiên bản
release thứ 7 thành BSD và System V. Kể từ thời điểm này, các công ty và tổ chức đua nhau
phát triển các biến thể của hệ điều hành của mình dựa trên một trong hai, hoặc thậm chí kết
hợp cả hai biến thể Unix này để lại sinh ra các biến thể khác nhau. Việc mạnh ai nấy làm khiến
cho việc phần mềm viết trên biến thể này không thể chạy trên biến thể khác, hoặc người dùng
gặp rất nhiều khó khăn khi chuyển từ biến thể này sang biến thể kia. Do đó, việc sinh ra các tiêu
chuẩn cho hệ thống Unix để các ứng dụng có thể dễ dàng chuyển từ hệ thống này sang hệ
thông khác là nhu cầu tất yếu. Chúng ta sẽ tìm hiểu qua một số tiêu chuẩn quan trọng và phổ
biến là POSIX và SUS.

POSIX

POSIX (Portable Operating System Interface) là một bộ tiêu chuẩn được phát triển bởi tổ chức
IEEE (Institute of Electrical and Electronic Engineers) với mục đích tạo ra các sản phẩm tương
thích linh động (portable) giữa các hệ điều hành. Ngoài việc quy định về các quy chuẩn lập trình
hay các command line… POSIX còn cung cấp các API (ví dụ POSIX thread) cho người sử dụng.
Một hệ điều hành có thể tuân thủ hoàn toàn (Solaris, macOS, HP-UX…) hoặc chỉ tuân thủ một
phần (Android, BSD, Linux…) tiêu chuẩn POSIX.

Single UNIX Specification (SUS)

SUS (Single UNIX specification) là một tập hợp các tiêu chuẩn cho một hệ điều hành máy tính
nền tảng Unix. Nếu một hệ điều hành được thẩm định và chứng nhận tuân thủ tiêu chuẩn SUS
thì có thể được sử dụng thương hiệu UNIX. Thực tế bộ tiêu chuẩn SUS được xây dựng với lõi
là bộ tiêu chuẩn POSIX. Vì vậy, sau này các tổ chức sở hữu các tiêu chuẩn POSIX và SUS đã
nhóm họp với nhau để gộp lại và cho ra đời 1 bộ tiêu chuẩn mới là POSIX.1-2001 hay còn gọi là
SUSv3 (Single UNIX specification Version 3). Bộ tiêu chuẩn chung này sau đó còn phát triển
thêm một phiên bản nữa là POSIX.1-2008 /SUSv4 vào năm 2008.

Linux Standard Base (LSB)

Với các hệ điều hành thương mại UNIX, các công ty phát triển đồng thời cũng là nhà phân phối.
Trong khi với Linux thì khác, việc phát triển và phân phối được tách rời. Linux kernel được phát
triển mở bởi rất nhiều các cá nhân, tổ chức và công ty khác nhau, trong đó có cả các công ty
phân phối Linux cũng muốn bắt tay vào phát triển Linux kernel theo ý mình. Vì vậy, tiêu chuẩn
Linux Standard Base (LSB) ra đời với mục đích xây dựng các quy chuẩn cho các đơn vị phát
triển và phân phối tuân thủ nhằm đảm bảo tính tương thích giữa các bản phân phối Linux. LSB
về cơ bản vẫn dựa trên tiêu chuẩn POSIX, SUS và một số các tiêu chuẩn mở khác.

Kết luận
Với mục tiêu ban đầu chỉ là tạo ra một hệ điều hành Unix-like tự do cho các nhà phát triển, hệ
điều hành Linux (hay chính xác hơn là GNU/Linux) đã nhanh chóng vượt qua hệ điều hành độc
quyền Unix. Thậm chí Linux còn đang đe dọa cạnh tranh với gã khổng lồ Windows hiện nay. Với
cộng đồng các nhà phát triển đông đảo và mạnh mẽ, Linux hứa hẹn sẽ còn tiềm năng phát triển
và được ứng dụng rộng rãi hơn nữa. Còn chờ gì nữa, chúng ta bắt đầu vén tay áo lên và học
lập trình Linux ngay thôi. :)

You might also like