Sự khác biệt giữa Linux và Unix là gì?

Linux lấy cảm hứng từ Unix, nhưng Linux không phải là Unix – mặc dù nó chắc chắn giống Unix. Chúng tôi sẽ giải thích sự khác biệt chính giữa hai hệ điều hành nổi tiếng này.

Cùng một sự khác biệt?

Linux là một hệ điều hành mã nguồn mở và miễn phí. Unix là một sản phẩm thương mại được cung cấp bởi nhiều nhà cung cấp khác nhau, mỗi nhà cung cấp có phiên bản riêng, thường dành riêng cho phần cứng của họ. Đó là một nguồn đóng và đắt tiền. Nhưng Linux và Unix ít nhiều làm giống nhau theo cùng một cách, phải không? Nhiều hơn hoặc ít hơn.

Sự tinh tế phức tạp hơn một chút. Có sự khác biệt ngoài kỹ thuật và kiến ​​​​trúc. Để hiểu một số ảnh hưởng đã định hình Unix và Linux, chúng ta cần hiểu quá khứ của chúng.

Nguồn gốc của hệ thống Unix

Unix đã hơn 50 tuổi. Nó được phát triển tại ngôn ngữ lập trình Digital Equipment Corporation (DEC) cho DEC PDP/ 7 như một dự án không chính thức tại Bell Labs, sau đó thuộc sở hữu của AT&T. Nó nhanh chóng được chuyển sang máy tính DEC PDP/11/20, sau đó dần dần lan sang các máy tính khác tại Bell. Việc viết lại bằng ngôn ngữ lập trình C đã dẫn đến việc phát hành phiên bản Unix 4 từ năm 1973. Điều này rất quan trọng vì các tính năng của ngôn ngữ C và trình biên dịch có nghĩa là giờ đây việc chuyển Unix sang các kiến ​​trúc máy tính mới tương đối dễ dàng.

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

Unix nhanh chóng trở nên phổ biến trong các tổ chức học thuật. Năm 1975, Ken Thompson nghỉ phép tại Bell ở Đại học California, Berkeley. Anh ấy và một số cựu sinh viên bắt đầu bổ sung và cải thiện bản sao Unix cục bộ của họ. Mối quan tâm bên ngoài đối với các tiện ích bổ sung của Berkeley ngày càng tăng, dẫn đến việc phát hành bản đầu tiên của Phân phối phần mềm Berkeley (BSD). Đó 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 hệ thống Unix hiện có, 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.

Hiện tại có hai hương vị chính của Unix, luồng AT&T và luồng BSD. Tất cả các biến thể Unix khác, chẳng hạn như AIX, HP-UX và Solaris Oracle, đều là hậu duệ của chúng. Năm 1984, một số hạn chế của AT&T được dỡ bỏ và họ có thể sản xuất và bán Unix.

Unix sau đó đã được thương mại hóa.

Nguồn gốc của Linux

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

Hệ điều hành nhằm tái tạo chức năng Unix mà không kết hợp bất kỳ mã nguồn Unix nào. Ông đặt tên cho hệ điều hành 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ăm 1985, ông thành lập Quỹ Phần mềm Tự do để quảng bá, tài trợ và hỗ trợ dự án GNU.

Tất cả các khu vực của hệ điều hành GNU đều có tiến triển tốt ngoại trừ phần nhân. Các nhà phát triển của dự án GNU đang làm việc trên một hạt nhân nhỏ gọi là GNU Hurd, nhưng tiến độ rất chậm. (Nó vẫn đang được phát triển và sắp phát hành.) Không có hạt nhân, sẽ không có hệ điều hành.

Năm 1987, Andrew S. Tanebaum đã phát hành một hệ điều hành có tên là MINIX (mini-Unix) như một công cụ hỗ trợ giảng dạy cho sinh viên học thiết kế hệ điều hành. MINIX là một hệ điều hành chức năng tương tự như Unix, nhưng nó có một số hạn chế, đặc biệt là về hệ thống tệp. Xét cho cùng, mã nguồn phải đủ nhỏ để đảm bảo rằng nó sẽ được sử dụng đầy đủ trong một học kỳ đại học. Một số chức năng đã phải hy sinh.

Để hiểu rõ hơn về hoạt động bên trong của Intel 80386 trong máy tính mới của mình, sinh viên khoa học máy tính Linus Torvalds đã gọi đến và viết mã chuyển đổi tác vụ đơn giản như một bài tập giáo dục. Cuối cùng, mã này đã trở thành nhân nguyên mẫu cơ bản trở thành nhân Linux đầu tiên. Torvalds biết MINIX. Trên thực tế, hạt nhân đầu tiên của nó đượ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ế của MINIX được thiết kế cho việc giảng dạy. Năm 1991, anh ấy đã đưa ra thông báo nổi tiếng của mình trên nhóm MINIX Usenet, yêu cầu nhận xét và đề xuất về dự án của anh ấy.

Linux không thực sự là một bản sao Unix. Nếu Linux là một bản sao Unix, thì đó sẽ là Unix. Không phải, nó tương tự như Unix. Từ “bản sao” có nghĩa là một phần nhỏ của bản gốc đã được phát triển trong một bản sao mới từ tế bào này sang tế bào khác của bản gốc. Linux đã được tạo lại để có giao diện của Unix và đáp ứng các nhu cầu tương tự. Nó ít nhân bản hơn và nhân rộng hơn.

Nhưng dù sao đi nữa, Linux là một hạt nhân đang tìm kiếm một hệ điều hành; GNU là một hệ điều hành đang tìm kiếm hạt nhân. Nhìn lại, những gì xảy ra tiếp theo dường như không thể tránh khỏi. Anh ấy cũng đã thay đổi thế giới.

Ai làm công việc phát triển?

Một bản phân phối Linux là tổng hợp của nhiều phần khác nhau từ nhiều nơi khác nhau. Nhân Linux, Bộ công cụ lõi GNU và các ứng dụng người dùng được kết hợp để tạo ra một bản phân phối khả thi. Và ai đó phải làm điều đó bằng cách kết nối, bảo trì và quản lý – giống như ai đó phải tạo nhân, ứng dụng và công cụ cơ bản. Những người duy trì bản phân phối và cộng đồng của mỗi bản phân phối đóng vai trò của họ trong việc đưa các bản phân phối Linux vào cuộc sống giống như các nhà phát triển nhân.

Linux là kết quả của sự hợp tác phân tán được thực hiện bởi các tình nguyện viên không được trả lương, chẳng hạn như các tổ chức Canonical và mũ đỏ do ngành tài trợ.

Mỗi Unix thương mại được phát triển như một thực thể duy nhất, gắn kết bằng cách sử dụng các công cụ phát triển nội bộ – hoặc thuê ngoài được kiểm soát chặt chẽ. Chúng thường có một nhân duy nhất và được thiết kế dành riêng cho nền tảng phần cứng do mỗi nhà cung cấp cung cấp.

Các dẫn xuất nguồn mở và miễn phí của luồng BSD Unix, chẳng hạn như FreeBSD, OpenBSD và DragonBSD, sử dụng kết hợp mã BSD kế thừa và mã mới. Đây hiện là các dự án được cộng đồng hỗ trợ và được quản lý tương tự như các bản phân phối Linux.

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

Nói chung, Linux không tuân thủ Đặc tả Unix Đơn (SUS) cũng như POSIX. Anh ta cố gắng đáp ứng cả hai tiêu chuẩn mà không làm nô lệ cho chúng. Có một hoặc hai – theo nghĩa đen, một hoặc hai – ngoại lệ, chẳng hạn như Inspur K-UX, Linux tuân thủ POSIX của Trung Quốc.

True Unix, giống như các dịch vụ thương mại, tương thích. Một số công cụ phái sinh BSD, bao gồm tất cả trừ một phiên bản macOS, đều tuân thủ POSIX. Các tên biến thể như AIX, HP-UX và Solaris là thương hiệu của các tổ chức tương ứng.

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

Linux là nhãn hiệu đã đăng ký của Linus Torvalds. Linux Foundation quản lý nhãn hiệu theo tên của nó. Nhân Linux và các công cụ cốt lõi được phát hành theo các phiên bản khác nhau của Giấy phép Công cộng Chung GNU “Copyleft”. Mã nguồn có sẵn miễn phí.

Unix là nhãn hiệu đã đăng ký của Open Group. Nó có bản quyền, độc quyền và nguồn đóng.

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

Sự khác biệt trong sử dụng

Từ quan điểm trải nghiệm người dùng, không có nhiều sự khác biệt rõ ràng trên dòng lệnh. Do tuân thủ các tiêu chuẩn và POSIX, phần mềm viết trên Unix có thể được biên dịch cho hệ điều hành Linux với nỗ lực chuyển hạn chế. Ví dụ, trong nhiều trường hợp, các tập lệnh shell có thể được sử dụng trực tiếp trên Linux mà không cần sửa đổi hoặc sửa đổi rất ít.

Một số công cụ dòng lệnh có các tùy chọn dòng lệnh hơi khác nhau, nhưng về cơ bản, kho công cụ giống nhau có sẵn trên cả hai nền tảng. Trên thực tế, IBM AIX có phần mở rộng Hộp công cụ AIX dành cho Ứng dụng Linux. Điều này cho phép quản trị viên hệ thống cài đặt hàng trăm gói GNU (chẳng hạn như Bash, GCC, v.v.).

Các hương vị khác nhau của Unix có giao diện người dùng đồ họa (GUIs) khác nhau, Linux cũng vậy. Một người dùng Linux quen thuộc với GNOME hoặc Buddy sẽ phải cảm nhận theo cách của họ trong lần đầu tiên họ gặp KDE hoặc Xfce, nhưng họ sẽ sớm làm quen với nó. Điều này cũng đúng với toàn bộ giao diện người dùng đồ họa có sẵn trên Unix, chẳng hạn như Chủ đề, Môi trường máy tính để bàn chung và X. Windows Hệ thống. Tất cả chúng đều giống nhau đến mức bất kỳ ai quen thuộc với các khái niệm về môi trường cửa sổ với các hộp thoại, menu và biểu tượng đều có thể điều hướng chúng.

Bạn sẽ tìm hiểu thêm về sự khác biệt khi quản trị hệ thống. Ví dụ, có những cơ chế khác nhau trong việc này. Dẫn xuất dòng Unix System V và BSD có các hệ thống khởi tạo khác nhau. Các biến thể BSD miễn phí duy trì sơ đồ khởi động BSD. Theo mặc định, các bản phân phối Linux sẽ sử dụng hệ thống khởi tạo Unix System V hoặc systemd.

Stick Shift vs. Tự động

Nếu bạn có thể đi cái này, thì bạn có thể đi cái kia – ngay cả khi ban đầu nó có một chút dừng lại.

Giá sang một bên, sự khác biệt về triết lý, cấp phép, mô hình phát triển, tổ chức cộng đồng, kiểu và kiểu quản lý lớn hơn và quan trọng hơn so với sự khác biệt về cờ dòng lệnh giữa một phiên bản grep và một phiên bản khác.

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

Những bài viết liên quan

Back to top button