Thứ Hai, 18 tháng 4, 2022

Sự khác nhau giữa Linux và Unix và các những điều bạn chưa biết


Bạn đã từng nghe rất nhiều về Linux và Unix, nhưng có lẽ bạn vẫn chưa nắm được sự khác nhau giữa 2 thuật ngữ này. Sự thật mà nói thì Linux lấy cảm hứng từ Unix, nhưng Linux không phải là Unix, mặc dù nó hoàn toàn giống Unix. Trong bài này, mình sẽ giải thích sự khác biệt giữa hai hệ điều hành nổi tiếng này.

so sanh su khac nhau linux va unix

Sự khác nhau giữa Linux và Unix

Linux là hệ điều hành mã nguồn mở và nó hoàn toàn miễn phí. Còn Unix là một sản phẩm thương mại, được cung cấp bởi nhiều nhà phân phối khác nhau với mỗi biến thể riêng, thường được tạo ra nhằm dành riêng cho một số phần cứng nhất định. Và lẽ hiển nhiên là nó đắt và mã nguồn đóng nữa. Nhưng Linux và Unix ít nhiều gì cũng có thứ giống nhau chứ. đúng không?

Đúng vậy, tuy nhiên, chúng có sự khác nhau về công nghệ và kiến trúc. Để hiểu thêm một số ảnh hưởng đã định hình Unix và Linux, chúng ta cần tìm hiểu bối cảnh ra đời của hai hệ điều hành này.

Nguồn gốc của Unix

Tính đến thời điểm hiện tại, Unix đã hơn 50 tuổi rồi. Nó được phát triển viết bằng ngôn ngữ assembly, của công ty Digital Equipment Corporation (DEC) trong dự án không chính thức DEC PDP/7 tại Bell Labs, sau này thuộc sở hữu của AT&T. Nó sớm được chuyển đến máy tính DEC PDP/11/20 và được sử dụng rộng rãi ở khắp các máy tính tại Bell. Unix được viết lại bằng ngôn ngữ C trong phiên bản thứ 4. Bởi vì các đặc điểm và trình biên dịch của C giúp việc chuyển Unix sang các kiến trúc máy tính mới trở nên dễ dàng hơn.

Năm 1973, Ken Thompson và Dennis Ritchie đã trình bày một bài báo về Unix tại hội nghị. Kết quả là, các yêu cầu tạo ra các bản sao khác của Unix đến với Bell. Vì việc bán các hệ điều hành nằm ngoài phạm vi hoạt động được phép của AT&T, nên họ không thể coi Unix như là một sản phẩm. Điều này dẫn đến Unix được phân phối dưới dạng mã nguồn có giấy phép. Số tiền thu được được việc này đủ để chi trả tiền bản quyền, vận chuyển và đóng gói sản phẩm. Tuy nhiên, bạn sẽ không được hỗ trợ kỹ thuật và sửa lỗi từ AT&T. Nhưng bạn vẫn nhận được mã nguồn và có thể sửa đổi nó.

Unix đã nhận được sự ủng hộ và tăng trưởng nhanh chóng từ các tổ chức học thuật. Năm 1975, Ken Thompson đã dành được một kỳ nghỉ phép của Bell tại Đại học California, Berkeley. Cùng với một số sinh viên tốt nghiệp, anh bắt đầu cải thiện thêm các bản sao của Unix. Người dùng bắt đầu quan tâm đến các bổ sung của Berkeley, dẫn đến việc họ phát hành Berkeley Software Distribution (BSD). Đây là một tập hợp các chương trình và sửa đổi hệ thống có thể được thêm vào Unix hiện tại, nhưng nó không phải là một hệ điều hành độc lập. Các phiên bản tiếp theo của BSD là toàn bộ hệ thống Unix.

Unix bây giờ là sự hoà quyện của AT&T và BSD. Tất cả các biến thể khác của Unix, như AIX, HP-UX và Oracle Solaris là hậu duệ của BSD. Năm 1984, các hạn chế của AT&T đã được khắc phục và giờ họ có thể sản xuất và bán Unix.

Sau cùng thì Unix cũng đã được thương mại hoá.

Hành trình của Linux

Richard Stallman thấy việc thương mại hoá Unix như một sự xói mòn quyền tự do có sẵn của người dùng máy tính, nên ông bắt đầu tạo ra hệ điều hành dựa trên sự tự do. Tự do ở đây nghĩa là có thể sửa đổi mã nguồn không giới hạn, phân phối lại các phiên bản phần mềm đã chỉnh sửa và sử dụng phần mềm theo bất kỳ cách nào mà người dùng thấy phù hợp.

Hệ điều hành này sẽ sao chép các tính năng của Unix, bao gồm toàn bộ mã nguồn Unix. Ông đặt tên cho nó là GNU và thành lập Dự án GNU vào năm 1983 để phát triển hệ điều hành này. Năm 1985, ông thành lập Quỹ phần mềm tự do (Free Software Foundation) để hỗ trợ việc quảng bá và tài trợ cho dự án GNU.

Tất cả các tính năng của GNU đều được cải thiện ngoài kernel (nhân). Các nhà phát triển dự án GNU đang làm việc trên kernel GNU Hurd, nhưng tiến độ lại rất chậm (kernel này vẫn đang được phát triển cho đến hiện tại và sắp được phát hành). Nếu không có kernel, sẽ không có hệ điều hành. Hiểu đơn giản kernel giống như CPU của PC vậy.

Năm 1987, Andrew S. Tanebaum phát hành hệ điều hành MINIX (mini-Unix) nhằm trợ giúp việc giảng dạy cho sinh viên hoạ thiết kế hệ điều hành. MINIX là hệ điều hành chức năng (functional), giống như Unix, nhưng nó có một số hạn chế, đặc biệt là hệ thống tập tin. Do mã nguồn phải đủ nhẹ để đảm bảo cho việc giảng dạy tại đại học, nên một số chức năng phải hy sinh.

Để hiểu rõ hơn về cách thức hoạt động của Intel 80386 trong PC mới của mình, một sinh viên khoa học máy tính có tên Linus Torvalds (nhân vật chính xuất hiện) đã viết một số mã chuyển đổi nhiệm vụ đơn giản như bài tập về nhà (bài tập về nhà mà như bài thi cuối kỳ). Cuối cùng, các đoạn mã này đã trở thành kernel nguyên sinh cơ bản của kernel Linux đầu tiên. Torvalds giờ đã quen thuộc với MINIX. Trên thực tế, kernel đầu tiên của ông đã được phát triển trên MINIX bằng trình biên dịch GCC của Richard Stallman.

Torvalds quyết định tạo ra hệ điều hành của riêng mình để khắc phục những hạn chế trong MINIX . Năm 1991, ông đã thông báo về nhóm MINIX Usenet, để xin ý kiến và đề xuất về dự án của mình.

Linux thực sự là một bản sao của Unix. Cũng có thể gọi Linux là Unix, nhưng đừng gọi như vậy. Từ “clone” (bản sao) có nghĩa là một phần nhỏ của bản sao được phát triển thành một bản sao mới từ bản gốc. Linux được tạo ra giống với giao diện của Unix và đáp ứng các nhu cầu tương tự.

Nhưng dù sao đi nữa, Linux là kernel đang tìm kiếm một hệ điều hành hoàn chỉnh, còn GNU là một hệ điều hành đang tìm kiếm kernel (cuộc tình giữa hai ông trùm công nghệ đời đầu). Những gì xảy ra tiếp theo dường như không thể tránh khỏi. Và nó đã làm thay đổi cả thế giới.

Vậy ai là người phát triển?

Unix

Một bản phân phối Linux bao gồm nhiều thành phần khác nhau. Nhân Linux, bộ GNU gồm các tiện tích cốt lõi và các ứng dụng user-land được kết hợp lại để tạo thành một bản phân phối hoàn chỉnh. Và phải có người thực hiện việc kết hợp, duy trì và quản lý. Các nhà phân phối và cộng đồng của mỗi distro (bản phân phối), tất cả đều đóng vai trò quan trọng trong việc đưa một bản phân phối của Linux đến tay người dùng.

Linux là kết quả của sự nỗ lực hợp tác của các tình nguyện viên không lương, các tổ chức như Canonical và Red Hat, và những người tài trợ nữa.

Mỗi Unix được phát triển như một sự kết hợp duy nhất bằng cách sử dụng các cơ sở phát triển được điều khiển chặt chẽ. Thông thường, chúng có một kernel duy nhất và được thiết kế dành riêng cho các nền tảng phần cứng được cung cấp bởi nhà phát triển.

Các hệ điều hành miễn phí và mã nguồn mở của BSD UNIX như FreeBSD, OpenBSD và DragonBSD, sử dụng mã BSD được kế thừa và cả những mã mới.

Tiêu chuẩn và tuân thủ

Nhìn chung, Linux không tuân thủ Single Unix Specification (SUS) cũng như POSIX. Nó cố gắng thoả mãn cả hai tiêu chuẩn nhưng lại không muốn bị ràng buộc từ hai tiêu chuẩn này. Theo nghĩa đen, đã có một hoặc hai trường hợp ngoại lệ, như Inspur K-UX, và Chinese Linux tuân thủ POSIX.

Một Unix thực sự, phải tuân thủ một trong hai tiêu chuẩn trên. Một số dẫn xuất của BSSD, bao gồm tất cả từ một phiên bản của macOS, tuân thủ POSIX. Các biến thể như AIX, HP-UX và Solaris, đều là các distro của các tổ chức đó.

Thương hiệu và bản quyền

Linux là thương hiệu đã được Linus Torvalds đăng ký. Quỹ Linux quản lý thương hiệu này thay cho ông. Các tiện ích của kernel và nhân Linux được phát hành theo nhiều giấy phép cộng đồng của GNU. Mã nguồn có sẵn miễn phí.

Còn Unix là thương hiệu đã được Open Group đăng ký. Nó có bản quyền, là độc quyền và là mã nguồn đóng.

FreeBSD có bản quyền của Dự án FreeBSD và là mã nguồn có sẵn.

Khác biệt về cách sử dụng

Từ góc độ của người mới trải nghiệm, trong các dòng lệnh (command line), không có nhiều sự khác biệt cho lắm. Do các  tiêu chuẩn và phải tuân thủ POSIX, phần mềm được viết trên Unix có thể được biên dịch trên Linux nhưng sẽ bị hạn chế. Các tập lệnh Shell, có thể được sử dụng trực tiếp trên Linux trong nhiều trường hợp.

Một số tiện ích command-line có các tuỳ chọn hơi khác nhau, nhưng về cơ bản, nó cùng một kho công cụ có sẵn trên cả hai nền tảng. Trên thực tế, IBM AIX có AIX Toolbox cho ứng dụng Linux.  Điều này cho phép người quản trị hệ thống cài đặt hàng trăm gói GNU như Bash, GCC,….

Các thành phần Unix khác nhau có giao diện người dùng đồ hoạ (GUI) khác nhau. Một người dùng LInux quen với Gnome hoặc Mate sẽ cảm thấy bỡ ngỡ khi lần đầu tiên họ dùng KDE hoặc Xfce. Nó tương tự với GUI có sẵn trên Unix, như  Motif, Common Desktop Environment, và X Windows System.  Tất cả đều tương tự nhau để người dùng dễ dàng sử dụng.

Bạn sẽ được tìm hiểu thêm về sự khác biệt trong khi quản trị hệ thống. Ví dụ, có các cơ chế init khác nhau. Các dẫn xuất của hệ thống V Unix và các luồng BSD có các init khác nhau. Theo mặc định, các bản phân phối Linux sẽ sử dụng một hệ thống init có nguồn gốc từ Unix System V hoặc systemd.

Cuối cùng, sự khác biệt lớn nhất không phải là những gì bạn thấy trên màn hình.

=============================
* 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