Unix Là Gì và Tại Sao Nó Lại Quan Trọng Đến Vậy?

Ngày nay, phần lớn các hệ điều hành (OS) đều có thể được phân loại vào hai nhánh chính. Bên cạnh hệ điều hành phát triển trên nền tảng Windows NT của Microsoft, hầu hết các hệ điều hành khác đều có nguồn gốc từ Unix.

Các hệ điều hành như Linux, macOS, Android, iOS, Chrome OS, Orbis OS (sử dụng trên PlayStation 4) và thậm chí cả phần mềm trên router của bạn đều được xem là “Unix-like” vì chúng được xây dựng dựa trên Unix.

Unix Là Gì?

Unix là một hệ điều hành ra đời vào những năm 1960. Nó là một hệ thống đa nhiệm, đa người dùng, và nổi tiếng về tính ổn định, phù hợp cho máy chủ, máy trạm và laptop. Unix cũng có giao diện đồ họa người dùng (GUI) tương tự như Windows, giúp người dùng dễ dàng thao tác. Tuy nhiên, để sử dụng Unix hiệu quả, bạn cần kiến thức về các hoạt động không được thể hiện bằng giao diện đồ họa, ví dụ như trong phiên telnet.

Thiết Kế Của Unix Vẫn Còn Giá Trị Đến Ngày Nay

Unix được phát triển tại Bell Labs của AT&T vào giữa những năm 1960. Phiên bản đầu tiên đã giới thiệu nhiều đặc tính thiết kế quan trọng, vẫn còn được sử dụng rộng rãi trong các hệ điều hành hiện đại.

Một trong số đó là triết lý Unix, tập trung vào việc tạo ra các tiện ích nhỏ, có tính mô-đun, mỗi tiện ích thực hiện tốt một tác vụ cụ thể. Cách tiếp cận này cho phép kết hợp các tiện ích đơn giản để tạo ra các chức năng phức tạp hơn.

Unix còn có một hệ thống tập tin thống nhất, nơi các chương trình giao tiếp với nhau. Đây là nguồn gốc của câu nói “everything is a file” (mọi thứ đều là một tập tin) trong Linux. Điều này có nghĩa là các thiết bị phần cứng và các tệp đặc biệt chứa thông tin hệ thống đều được coi là các tập tin. Đây cũng là lý do tại sao chỉ Windows sử dụng ký tự ổ đĩa (C:, D:,…), một đặc điểm kế thừa từ DOS. Trong các hệ điều hành khác, mọi tệp đều thuộc về một hệ thống thư mục duy nhất.

Hệ thống tập tin thống nhất của UnixHệ thống tập tin thống nhất của Unix

Truy Tìm Các “Hậu Duệ” Của Unix

Sau hơn 40 năm phát triển, Unix đã để lại một di sản đồ sộ. Để đơn giản hóa, chúng ta có thể chia các hệ điều hành hậu duệ của Unix thành hai nhóm chính.

Một nhóm được phát triển trong môi trường học thuật. Đầu tiên là BSD (Berkeley Software Distribution), một hệ điều hành mã nguồn mở giống Unix. BSD vẫn tồn tại đến ngày nay thông qua FreeBSD, NetBSD và OpenBSD. NeXTStep cũng là một hệ điều hành dựa trên BSD. macOS của Apple dựa trên NeXTStep, và iOS lại dựa trên macOS. Nhiều hệ điều hành khác, bao gồm cả Orbis OS trên PlayStation 4, cũng chịu ảnh hưởng từ BSD.

Dự án GNU của Richard Stallman được khởi xướng như một phản ứng với các điều khoản cấp phép phần mềm Unix ngày càng hạn chế của AT&T. MINIX là một hệ điều hành giống Unix được tạo ra cho mục đích giáo dục. Linux, một hệ điều hành phổ biến hiện nay, được lấy cảm hứng từ MINIX. Thực tế, Linux thường được gọi là GNU/Linux, vì nó kết hợp kernel Linux với nhiều tiện ích GNU. GNU/Linux không trực tiếp phát triển từ BSD, nhưng nó kế thừa nhiều thiết kế của Unix và có nguồn gốc từ giới học thuật. Nhiều hệ điều hành phổ biến hiện nay, bao gồm Android, Chrome OS và SteamOS, đều được xây dựng dựa trên Linux.

Nhóm còn lại là các phiên bản Unix thương mại. AT&T UNIX, SCO UnixWare, Sun Microsystems, HP-UX, IBM AIX, SGI IRIX là các phiên bản Unix do nhiều tập đoàn lớn tạo ra và cấp phép. Mặc dù không phổ biến bằng các phiên bản mã nguồn mở, một số hệ điều hành này vẫn còn được sử dụng.

Các hệ điều hành hậu duệ của UnixCác hệ điều hành hậu duệ của Unix

Sự Trỗi Dậy Của DOS và Windows NT

Nhiều người đã kỳ vọng Unix sẽ trở thành hệ điều hành tiêu chuẩn công nghiệp, nhưng sự bùng nổ của máy tính DOS và “IBM PC compatible” đã thay đổi cục diện. DOS của Microsoft đã trở thành một trong những hệ điều hành thành công nhất. Thực tế, DOS được phát triển độc lập và không dựa trên Unix. Đây là lý do tại sao Windows sử dụng dấu gạch chéo ngược () cho đường dẫn tệp, trong khi các hệ điều hành khác sử dụng dấu gạch chéo xuôi (/). Các phiên bản sau này của Windows đã kế thừa DOS, tương tự như cách BSD, Linux, macOS và các hệ điều hành khác kế thừa các khía cạnh thiết kế của Unix.

Windows 3.1, Windows 95, Windows 98 và Windows ME đều được xây dựng dựa trên DOS. Microsoft đã chuyển hướng sang phát triển một hệ điều hành hiện đại và ổn định hơn, được gọi là Windows NT (viết tắt của “Windows New Technology”). Windows NT cuối cùng đã đến tay người dùng phổ thông (Windows XP), nhưng nó cũng đã được sử dụng rộng rãi trong các doanh nghiệp (Windows 2000 và các phiên bản Windows NT trước đó).

Tất cả các hệ điều hành Microsoft hiện nay đều được xây dựng dựa trên kernel Windows NT. Windows 7, Windows 8, Windows RT, Windows Phone 8, Windows Server và hệ điều hành của Xbox One đều sử dụng kernel Windows NT. Không giống như hầu hết các hệ điều hành khác, Windows NT không được phát triển như một hệ điều hành “Unix-like”.

Để duy trì tính tương thích với DOS và phần mềm Windows cũ, Windows NT đã kế thừa nhiều quy ước từ DOS, chẳng hạn như ký tự ổ đĩa, dấu gạch chéo ngược cho đường dẫn tệp và dấu gạch chéo xuôi cho các chuyển đổi dòng lệnh.

Giao diện Windows 2000Giao diện Windows 2000

Tại Sao Unix Lại Quan Trọng?

Bạn có bao giờ để ý đến hệ thống tệp hoặc terminal của macOS và nhận thấy sự tương đồng của nó với Linux, cũng như sự khác biệt của chúng với Windows không? Đó là vì cả macOS và Linux đều là hệ điều hành “Unix-like”.

Hiểu biết về lịch sử này giúp bạn hiểu rõ hơn về các hệ điều hành “Unix-like” và lý do tại sao nhiều hệ điều hành lại có những điểm tương đồng, trong khi Windows lại có phong cách riêng. Điều này giải thích tại sao khi sử dụng terminal trên macOS, bạn sẽ cảm thấy quen thuộc nếu đã từng làm việc với Linux, trong khi Command Prompt và PowerShell trên Windows lại rất khác biệt so với các môi trường dòng lệnh trên các hệ điều hành Unix-like.

Kết luận

Unix, với triết lý thiết kế và hệ thống tập tin độc đáo, đã đặt nền móng cho nhiều hệ điều hành hiện đại. Từ macOS đến Android, ảnh hưởng của Unix là không thể phủ nhận. Dù Windows có con đường phát triển riêng, việc hiểu về Unix giúp ta có cái nhìn toàn diện hơn về thế giới hệ điều hành và cách chúng vận hành.