Thứ Hai, 18 tháng 4, 2022

Phân biệt giữa UNIX và Linux

Đọc qua khá nhiều bài viết về Linux trên diễn đàn Tinh Tế cũng như một số nơi khác, mình thấy một số bạn có xu hướng đánh đồng 2 hệ điều hành (HĐH) UNIX và Linux. Bài viết này hy vọng đáp ứng phần nào thông tin cần thiết cho mọi người về những điểm khác nhau giữa 2 khái niệm này này.


* Bài này mình dịch một phần từ bài viết trên trang web của IBM, cộng thêm thông tin từ các nguồn khác và đánh giá cá nhân. Bạn nào phát hiện lỗi hoặc thiếu sót xin comment góp ý, đừng ném đá. Xin cảm ơn.

Giới thiệu sơ lược

UNIX là một HĐH đa nhiệm, đa người dùng được phát triển vào năm 1969 bởi một nhóm nhân viên của công ty AT&T tại phòng thí nghiệm Bell Labs. Qua nhiều năm, nó đã được phát triển thành nhiều phiên bản sử dụng trên nhiều môi trường phần cứng khác nhau. Hầu hết các phiên bản UNIX hiện nay đều là những biến thể của UNIX gốc và được các nhà phát triển sửa đổi, viết lại hoặc thêm các tính năng, công nghệ riêng biệt. Các phiên bản UNIX hiện nay có thể kể đến:

- HP-UX (HP)
- AIX (IBM)
- Solaris (Sun/Oracle)
- Mac OS X (Apple)

Linux là HĐH được phát triển bởi Linus Torvarlds tại trường đại học Helsinki (Phần Lan) vào năm 1991. Linux được tạo ra với mục đích cung cấp cho người dùng 1 giải pháp phần mềm miễn phí thay thế cho UNIX. Linux có thể chạy trên rất nhiều nền tảng khác nhau như x86 và x64 từ Intel/AMD trong khi UNIX chỉ chạy trên 1 hoặc 2 kiến trúc nhất định.


Khác biệt về kỹ thuật

Các hãng phát triển UNIX thường thường có những đối tượng khách hàng và nền tảng nhất định, và các phiên bản UNIX đều là HĐH thương mại và đươc bán với giá ko hề rẻ chút nào. Những HĐH này thường được phát triển có mục đích, có các tiêu chuẩn cho khách hàng và thống nhất giữa các phiên bản. Khi một phiên bản UNIX mới được nâng cấp, khách hàng sẽ nhận được những thông tin chi tiết từ nhà phát triển về các tính năng, công nghệ mới được áp dụng, tính tương thích đối với các bản cũ hơn, v.v...

Trong khi đó, Linux được phát triển bởi nhiều lập trình viên với nhiều bối cảnh khác nhau, và vì thế họ có những ý kiến, quan điểm và mục tiêu khác nhau. Trong cộng đồng Linux ko hề có một tiêu chuẩn chính xác nào về môi trường, công cụ lập trình cũng như khả năng đáp ứng của HĐH.


Kiến trúc phần cứng


Hầu hết các HĐH UNIX đều được lập trình để chạy trên một hoặc một nhóm kiến trúc phần cứng nhất định ví dụ HP-UX chạy trên hệ thống PA-RISC và Itanium, Solaris chạy trên SPARC và x86,... Việc giới hạn phần cứng giúp những công ty bán UNIX có thể tối ưu HĐH của mình để chạy thật tốt trên một hệ thống phần cứng nào đó.

Trái lại, vốn được thiết kế với mục đích cạnh tranh và thay thế UNIX nên Linux có thể chạy trên rất nhiều cấu trúc phần cứng, và số lượng các thiết bị gắn ngoài, thiết bị I/O được sử dụng hầu như ko giới hạn. Chính vì thế mà nhà phát triển Linux ko thể xác định người dùng sử dụng loại phần cứng nào nên không thể tối ưu HĐH cho phần cứng đó.


Nhân HĐH (kernel)

Kernel là cốt lõi của mọi HĐH. Đối với các bản thương mại của UNIX, mã nguồn đều ko được phân phối tự do, và các hãng sản xuất UNIX thường cung cấp kernel dưới dạng nhị phân hay các gói “nguyên khối” (monolithic package), và những người khác chỉ có thể nâng cấp, chỉnh sửa một phần nhỏ.

Đối với Linux, việc biên tập, vá lỗi kernel và driver dễ dàng hơn. Các bản vá lỗi được cung cấp dưới dạng mã nguồn và người dùng có thể tự do cài đặt, thậm chí chỉnh sửa nếu muốn. Các bản vá này thường ko được kiểm tra kỹ bằng UNIX. Và với các lập trình viên Linux, họ ko có thông tin đầy đủ về các môi trường và ứng dụng cần được kiểm tra, thử nghiệm, họ chỉ có thể dựa vào đánh giá của người dùng và các nhà phát triển khác để tìm lỗi.

Đa số các hãng phát triển UNIX thường viết lại nhân HĐH để phục vụ cho mục đích của mình. Ví dụ HĐH Mac OS X của hãng Apple có nhân là Darwin, được viết lại từ nền tảng BSD. Vì thế, các HĐH này được gọi là các phiên bản hay biến thể của UNIX.

Trong khi đó, các nhà phát triển Linux thường sử dụng chính nhân Linux trên HĐH của mình. Kernel của các HĐH như Fedora, Ubuntu, OpenSUSE,... đều gọi là Linux mặc dù chúng ko phải do Linus Torvalds phát triển. Do đó chúng ko được xem là các phiên bản khác nhau của Linux mà chỉ là các bản phân phối.

Tính mở

UNIX là 1 HĐH đóng. Có lẽ trái với quan điểm của 1 số người, cho rằng Linux mở thì UNIX cũng là mở, nhưng thực ra nó là nguồn đóng. Và câu hỏi đặt ra là: Nếu UNIX là nguồn đóng thì tại sao nhiều hãng lại có mã nguồn để phát triển riêng? Câu trả lời có lẽ khiến bạn càng bất ngờ. Ban đầu, UNIX được phân phối cho các trường đại học và những doanh nghiệp có nhu cầu, với đầy đủ mọi thứ từ mã nguồn đến các công cụ lập trình. Nói cách khác, nếu UNIX là 1 chiếc xe thì khách hàng được cung cấp mọi thứ từ bản vẽ đến từng cái tua vít. Cũng chính vì thế mà các trường học và công ty có thể chỉnh sửa, thậm chí viết lại cả HĐH.

Linux mặt khác là 1 HĐH mã nguồn mở, người ta có thể tải, sử dụng, chỉnh sửa miển phí mà ko gặp trở ngại về luật bản quyền.


The Open Group và Single UNIX Specification

Có lẽ bạn cảm thấy khó hiểu khi các phiên bản của UNIX hầu hết là nguồn đóng nhưng chúng lại được gọi chung là UNIX. Vậy cái tên UNIX là mở hay sao? Nếu nghĩ vậy thì bạn đã lầm. UNIX là một cái tên được đăng ký thương hiệu và được sở hữu bởi một tổ chức tài chính Mỹ gọi là Open Group.

Open Group đưa ra 1 tiêu chuẩn cho các HĐH máy tính gọi là Single UNIX Specification (SUS), và những HĐH nào đạt được các yêu cầu của SUS thì mới được gọi là UNIX, ko cần biết nó được xây dựng dựa trên cái gì (HĐH Mac OS X được phát triển dựa trên nền tảng BSD, vốn ko thoả mãn SUS, nhưng nó được viết lại và đạt yêu cầu nên được phép mang thương hiệu UNIX). Ngoài ra, những HĐH khác ko thoả mãn SUS sẽ ko được mang thương hiệu UNIX và ko được gọi là UNIX-based mà được gọi là UNIX-like (giống UNIX), điển hình là BSD, FreeBSD.

Linux được Linus Torvalds viết trên 1 chiếc máy chạy HĐH MINIX, sau đó, nó được phát triển ngày càng hoàn thiện và có thể chạy độc lập với MINIX. Mà MINIX vốn chỉ là HĐH UNIX-like, nên có thể thấy quan hệ bà con giữa UNIX và Linux hơi bị xa chứ ko gần như chúng ta tưởng.


Dự án GNU và giấy phép GPL

GNU là chữ viết tắt của GNU’s not UNIX (bên trong lại có GNU, bó tay, chả biết GNU kia là gì). Đây là một dự án do Richard Stallman khởi xướng vào năm 1983 với mục đích tạo ra 1 hệ thống phần mềm có thể cạnh tranh và thay thế phần mềm UNIX. Stallman cũng cho ban hành giấy phép GNU General Public License (GNU GPL). Giấy phép này yêu cầu nhà phân phối phần mềm phải kèm theo mã nguồn của phần mềm đó (mã nguồn mở), và mã nguồn Linux được phân phối tự do cũng là vì lý do này.


Tổng kết

UNIX và Linux về cơ bản cũng ko khác nhau nhiều lắm, việc một nhà phát triển hay một doanh nghiệp muốn chuyển hệ thống máy tính của họ từ UNIX sang Linux cũng không quá khó khăn. Nhưng dù sao 2 người trông giống nhau ko có nghĩa họ là bà con với nhau. Linux và UNIX ko phải anh em mà còn là kẻ thù, ít nhất là về quan điểm của Linus Torvalds và dự án GNU.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master