Bất kỳ sự khác biệt cơ bản giữa Unix và Linux trong thiết kế và các khía cạnh khác? [đóng cửa]


24

Tôi tiếp tục đọc câu này:

Linux là một hệ thống giống Unix, nhưng nó không phải là Unix.

Tôi không biết sự khác biệt thực sự giữa hai người. Tôi biết Linux có rất nhiều ý tưởng từ Unix và giấy phép của hai loại này là khác nhau. Ngoài ra, vì tôi không phải là một chuyên gia trong một trong số họ, tôi muốn biết liệu có sự khác biệt cơ bản giữa chúng trong thiết kế hoặc các khía cạnh quan trọng khác.


2
bạn có phiền làm rõ bạn đã đọc nó ở đâu không? tìm kiếm trên web cho tôi thấy Linux Kernel Development (Ấn bản thứ 3) của Robert Love, phải không?
gnat

Câu trả lời:


30

Một hệ thống "Unix like" có thể hoàn toàn tuân thủ Đặc tả UNIX đơn , tên chung của các tiêu chuẩn cho những gì đủ điều kiện là một hệ thống Unix, nhưng đồng thời Unix là nhãn hiệu đã đăng ký của Nhóm mở và các nhà cung cấp hệ thống giống như Unix cần để có được hệ thống của họ được đăng ký để chính thức đủ điều kiện là Unix. Hiện tại các hệ thống UNIX 03 đã đăng ký là:

  • Apple Inc .: Mac OS X Phiên bản 10.5 Leopard trên máy tính Macintosh dựa trên Intel
  • Apple Inc.: Mac OS X Phiên bản 10.6 Snow Leopard trên máy tính Macintosh dựa trên Intel
  • Fujitsu Limited: Hệ điều hành Solaris ™ 10 trên Nền tảng dựa trên SPARC® 64-bit của Fujitsu PRIMEPOWER®
  • Công ty Hewlett-Packard: HP-UX 11i V3 phát hành B.11.31 trở lên trên Máy chủ toàn vẹn HP
  • Tập đoàn IBM: AIX 5L cho POWER V5.2 ngày 8-2004 trở lên với các APAR: IY59610, IY60869, IY61405 với VAC 6.0.0.8 trở lên trên các hệ thống CHRP của pSeries
  • Tập đoàn IBM: AIX 5L cho POWER V5.3 ngày 7-2006 trở lên trên các Hệ thống sử dụng kiến ​​trúc hệ thống CHRP với bộ xử lý POWER ™
  • Tập đoàn IBM: Hệ điều hành AIX 6 V6.1.2 với SP1 trở lên trên Hệ thống sử dụng kiến ​​trúc hệ thống CHRP với bộ xử lý POWER ™ và thẻ không đồng bộ 2, 8 hoặc 128 cổng
  • Tập đoàn Oracle: Oracle Solaris 11 FCS và sau đó trên các nền tảng dựa trên SPARC, 32 bit và 64 bit và trên các nền tảng dựa trên X86, 32 bit và 64 bit
  • Tập đoàn Oracle: Hệ điều hành Solaris 10 cộng với bản vá 118844-06 cho X86 trở đi, trên các hệ thống dựa trên X86 64 bit
  • Tập đoàn Oracle: Hệ điều hành Solaris 10 trở đi, trên các hệ thống dựa trên SPARC 32 bit và 64 bit
  • Tập đoàn Oracle: Hệ điều hành Solaris 10 trở đi, trên các hệ thống dựa trên X86 32 bit

Các nhà cung cấp Unix nguồn mở như các hệ thống (chủ yếu là Linux và FreeBSD) thường không đăng ký với Nhóm mở, để tránh các chi phí chứng nhận hoặc, vì họ không tìm thấy nhiều giá trị khi làm như vậy. Về lý thuyết, hoàn toàn có khả năng một hệ thống giống Unix là Unix về mặt kỹ thuật và tất cả những gì nó thiếu là chứng nhận.

Mặt khác, Quỹ Linux đã tạo ra Cơ sở Tiêu chuẩn Linux , một tiêu chuẩn ISO , trong nỗ lực chuẩn hóa Linux. Tuân thủ POSIX là trung tâm của cả SUS và LSB, duy trì liên kết giữa Unix và Linux.

Các hệ thống giống như Unix và Unix có xu hướng giống nhau hơn so với khác nhau, theo lý thuyết, tất cả các hương vị Unix phổ biến, đã đăng ký hay không, đều tuân thủ POSIX (đầy đủ hoặc chủ yếu), vì vậy chúng có chung giao diện lập trình lõi, vỏ và tiện ích (và rất nhiều thứ khác đồ đạc). IEEE và Nhóm mở duy trì một bản sao có sẵn miễn phí của phiên bản mới nhất, POSIX.1-2008 , nơi bạn có thể tìm thêm thông tin về ý nghĩa của việc tuân thủ POSIX.

Giờ đây, ngoài các lý do pháp lý và kỹ thuật, Linux đã thừa hưởng câu thần chú "không phải Unix" từ sự liên kết với GNU , một hệ điều hành giống như Unix do Richard Stallman khởi xướng. GNU là viết tắt của "GNU không phải Unix", vì ý định của Stallman là xây dựng một hệ thống tương thích Unix miễn phí và để làm điều đó không chứa mã Unix, vì Unix là độc quyền.

Các nhà phát triển Linux ban đầu đã bắt đầu chuyển các công cụ GNU sang Linux và hệ thống kết quả được gọi là GNU / Linux vào đầu năm 1992 . Có một cuộc tranh cãi kéo dài về việc Linux nên được gọi là Linux hay GNU / Linux (vì nó kết hợp một số phần của GNU), nhưng điều đó không liên quan đến câu hỏi của bạn, điều gì có liên quan là "không phải Unix" có thể chỉ liên quan đến hiệp hội với GNU và ít liên quan đến thiết kế của nó, tùy thuộc vào ngữ cảnh.

Bài viết "Lịch sử Linux" trên Wikipedia giải thích nguồn gốc của Linux và mối quan hệ của nó với Unix (thông qua Minix và GNU) một cách chi tiết, và bạn cũng nên dành chút thời gian để đọc qua các tài liệu tham khảo của bài viết, nếu bạn quan tâm đến học nhiều hơn nữa.


câu trả lời hay, tôi sẽ chờ xem liệu bạn có chọn câu trả lời của mình không :)
Gnijuohz

8
@Gnijuohz Đừng vội vàng chấp nhận câu trả lời, hãy luôn để câu hỏi của bạn chín chắn trong một hoặc hai ngày (hoặc hơn, nếu bạn muốn), bạn có thể nhận được câu trả lời tuyệt vời từ những người không muốn trả lời nếu họ thấy rằng bạn đã chấp nhận câu trả lời. Chấp nhận một câu trả lời hoàn toàn phụ thuộc vào bạn, bạn thậm chí không phải chấp nhận nếu không có câu trả lời nào hữu ích cho bạn, bất kể cộng đồng trả lời chúng như thế nào.
yannis

1
Thật thú vị, rõ ràng phiên bản mới nhất của OS X không phải là "chính thức" UNIX.
Kris Harper

@ root45 Điều đó được mong đợi, vì cần có thời gian để kiểm tra phiên bản cho sự tuân thủ.
yannis

@YannisRizos À được rồi. Điều đó có ý nghĩa. Cảm ơn vì thông tin.
Kris Harper

4

UNIX là một họ các hệ điều hành và ngày nay UNIX là một thương hiệu thuộc sở hữu của The Open Group. Để một hệ điều hành được gắn nhãn UNIX, nó phải trải qua thử nghiệm tuân thủ và đối với Linux, điều này có nghĩa là mọi phân phối ngoài đó (Ubuntu, Debian, Fedora, Red Hat, v.v.) sẽ phải trải qua thử nghiệm tuân thủ riêng biệt này cho mỗi bản phát hành . Vì vậy, đây là một trong những lý do chính tại sao Linux là một hệ thống giống như unix và không phải là UNIX.

Thử nghiệm này mà tôi đã đề cập là để đảm bảo tuân thủ HĐH với Thông số kỹ thuật Unix đơn, hiện đang ở phiên bản 4 SUSv4 (Thông số kỹ thuật Unix đơn phiên bản 4). Thông số kỹ thuật này xác định một bộ API phải có sẵn cho các ứng dụng cho một hệ thống đủ điều kiện cho tên UNIX.


Nó có phải là một tiêu chuẩn tốt để làm theo? Các tác giả Linux có cố gắng không?
Công việc

1
Đó là một tiêu chuẩn tốt nhưng không đầy đủ. Những người đóng góp của Linux Kernel cố gắng tuân theo tiêu chuẩn này và Linux có thể được coi là một hệ thống UNIX không chính thức. Nếu bạn đang phát triển một ứng dụng chống lại các tiêu chuẩn Unix, nó có thể sẽ biên dịch và chạy trên hệ thống Linux. Thật không may, như tôi đã nói trước đây, UNIX chưa hoàn thiện là một số khía cạnh, vì vậy các HĐH cung cấp API bổ sung cho một số tác vụ và đây là điều khiến nền tảng ứng dụng nhất định phụ thuộc khi các API bổ sung này có xu hướng thay đổi.
Raphael

Có một bản phân phối được gọi là Linux-FT đã bắt đầu quá trình chứng nhận POSIX, nhưng không có gì ngạc nhiên khi các nhà tài trợ hết tiền. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml

Cảm ơn thông tin này! Tôi luôn tự hỏi liệu có ai đó đã từng cố gắng chứng nhận một bản phân phối không.
Raphael

3

Các câu trả lời hiện có đã đề cập đến một số khác biệt mà bạn đang tìm kiếm. Không phải là chuyên gia về nhân Linux, tôi cũng nói thêm rằng nhiều khác biệt về thiết kế / triển khai giữa GNU / Linux và các Unice khác nhau được trình bày trong loạt các mẫu thiết kế nhân Linux .


2

"UNIX" là một điều phức tạp để xác định. Về mặt tuân thủ tiêu chuẩn, cả Solaris và Mac OS X đều là "chính thức" UNIX nhưng bạn không phải mất nhiều thời gian trước khi bạn tìm thấy sự khác biệt khá lớn giữa hai loại này. Có một sơ đồ tuyệt vời ghi lại việc phát hành các hương vị khác nhau của các hệ điều hành UNIX hoặc UNIX và cách chúng ảnh hưởng và chuyển hướng lẫn nhau.

Trong sơ đồ lớn của những thứ nhìn, đi và quạc như UNIX, một hệ thống Linux [*] là một trong những bản phát hành thông thường hơn. Mọi người thường nhắc đến Unices hoặc * nix và có nghĩa là "mọi thứ giống UNIX", có lẽ bao gồm cả Linux. Tuy nhiên UNIX là nhãn hiệu đã đăng ký với những hạn chế về cách áp dụng thương mại; không có bản phân phối Linux nào phù hợp với những hạn chế đó.

[*] Bởi vì câu hỏi này mời một mức độ phân tách tóc ngữ nghĩa, tôi nghĩ rằng nó thuộc chủ đề trong trường hợp này để chỉ ra rằng chính Linux chỉ là một hạt nhân có thể xây dựng một hệ điều hành. Việc xây dựng một hệ thống giống như UNIX trên Linux là điều phổ biến, đó là những gì nó được thiết kế cho và hệ thống đó thường được xây dựng từ các thành phần dự án GNU. Trong câu trả lời ở trên, "Linux" có thể được đọc là tốc ký cho "một hệ điều hành kết hợp với nhân Linux".


@YannisRizos Tôi sẽ thêm một tham chiếu cho câu trả lời, nó chắc chắn được chứng nhận.

Có, bạn hoàn toàn đúng, từ Leopard và trở đi Mac OS được chứng nhận UNIX 03 và đây là một tài liệu tham khảo khác .
yannis

2

Tôi đã từng đọc rằng Linux là những gì bạn nhận được khi bạn lấy một nhà phát triển PC và yêu cầu anh ta viết một hệ điều hành Unix, trong khi FreeBSD là những gì bạn nhận được khi bạn lấy một nhà phát triển Unix và yêu cầu anh ta tạo ra một HĐH PC .... đừng ' Đừng quên BSD trong so sánh của bạn!

Sự khác biệt chủ yếu ở Kernel vì các ứng dụng không gian người dùng (bao gồm cả những thứ như ls) đều là một phần của dự án GNU. Điều này có nghĩa là Unix, FreeBSD và Linux đều có vẻ giống nhau.

Tuy nhiên, có những khác biệt một khi bạn nhìn kỹ. Bố cục thư mục sẽ khác nhau (nhưng nhiều bản phân phối Linux sử dụng bố cục hầu hết tương thích nhưng vẫn khác nhau), các hệ thống tệp khác nhau (Unix sử dụng UFS, FreeBSD sử dụng FFS, Linux sử dụng Ext3 để đơn giản - tất cả chúng đều có thể sử dụng các cổng của các FS phổ biến, ví dụ ZFS)

Sau đó, có sự khác biệt về API lõi, Linux sẽ cung cấp cho bạn API inotify để cho bạn biết khi nào tệp thay đổi, Mac OSX cung cấp cho bạn FSEvents và FreeBSD cung cấp cho bạn kqueue .

Vì vậy, chúng có thể được coi là cùng một gia đình - so sánh một hệ thống Windows với các công cụ GNU được chuyển sang hệ thống Linux với các công cụ tương tự. Chúng sẽ chỉ xuất hiện bề ngoài giống nhau, nhưng một hệ thống Unix hoặc FreeBSD vẫn sẽ xuất hiện tương đương. Nhìn kỹ hơn, bạn sẽ thấy các ứng dụng chuyển giữa FreeBSD, Unix và Linux tương đối dễ dàng so với chuyển sang các hệ điều hành thay thế như Windows.


1

Unix không còn là một Hệ điều hành đơn lẻ nữa. Nó từng là một triển khai của Bell Labs / AT & T nhưng bây giờ nó là một tiêu chuẩn.

Về mặt kỹ thuật, Linux chỉ là một hạt nhân. Hạt nhân này có thể được tìm thấy trong các hệ điều hành không phải Unix như OS, phổ biến nhất là Android. Mặt khác, có nhiều HĐH dựa trên Linux giống như Unix. Hầu hết (nếu không phải tất cả) trong số họ đang sử dụng các thư viện và tiện ích Gnu. Sự kết hợp này đang cung cấp cho Linux các bản phân phối API Unix và tuân thủ (hoặc không tuân thủ) cho các tiêu chuẩn.

Tiêu chuẩn Unix không yêu cầu một hệ thống tuân thủ phải là độc quyền hoặc có bất kỳ giấy phép cụ thể nào. BSD, OpenSolaris / Illumos, darwin là những ví dụ về việc triển khai Unix không miễn phí của Linux.

Các hệ thống tuân thủ thường nhưng không phải lúc nào cũng là sự pha trộn của các thành phần độc quyền và nguồn mở trong khi Gnu / Linux có thể là Nguồn mở hoàn toàn hoặc cũng bao gồm các công cụ độc quyền.

Về mặt tuân thủ Unix, không có nhiều khác biệt. Hầu hết các bản phân phối Linux và triển khai Unix đều có chung một bộ lệnh sử dụng cùng một bộ tùy chọn. Tuy nhiên, bạn sẽ tìm thấy rất nhiều phần mở rộng của các lệnh tiêu chuẩn, đặc biệt là ở phía Gnu nơi chúng được gọi là Gnuism và nhiều lệnh không được xác định bởi các tiêu chuẩn ở vị trí đầu tiên (trình biên dịch, lệnh quản trị, cài đặt, đóng gói, môi trường đồ họa). Đây là một khu vực nơi bạn có thể tìm thấy rất nhiều sự khác biệt, không tương thích và đôi khi là thánh chiến.

Mô hình phát triển Gnu / Linux thường được coi là "hữu cơ" và "chợ" hơn, trong khi các hệ thống giống như Unix khác được "thiết kế" và "nhà thờ" hơn. Tùy thuộc vào các hệ thống con, sự khác biệt không quá rõ ràng và phụ thuộc vào các cá nhân và / hoặc công ty đằng sau chúng.


1

Linux đi kèm với nhiều công cụ như:

  • Hệ thống GUI
  • Các tiện ích GNU (như cp, mv, ls, date, bash, v.v.)
  • công cụ cài đặt và quản lý
  • Trình biên dịch GNU C / C ++
  • Biên tập viên (vi)
  • và các ứng dụng khác nhau (như OpenOffice, Firefox).

Tuy nhiên, hầu hết các hệ điều hành UNIX được coi là một hệ điều hành hoàn chỉnh vì mọi thứ đến từ một nguồn hoặc nhà cung cấp duy nhất.

Một số điều họ chia sẻ:

  • Trình quản lý GUI, tệp và windows (KDE, Gnome)
  • Vỏ sò (ksh, csh, bash)
  • Các ứng dụng văn phòng khác nhau như OpenOffice.org
  • Các công cụ phát triển (trình biên dịch perl, php, python, GNU C / C ++)
  • Giao diện POSIX

Linux cũng mở rộng triết lý Unix ...
Công việc

2
Linux không chỉ là một hạt nhân, hạt nhân Linux là một hạt nhân. Linux thường đề cập đến một hệ thống đầy đủ được xây dựng xung quanh nhân Linux.
yannis

@ Đồng nghĩa - Đôi khi, nếu bạn chỉnh sửa và sửa câu trả lời của mình, downvoters có thể xóa downvote. Nó không được bảo đảm, nhưng đôi khi nó có ích. (Tôi đã không downvote, chỉ cố gắng để có ích) :) Phần còn lại của câu trả lời của bạn là chính xác, IMHO, vì vậy việc loại bỏ sự khác biệt có thể giúp bạn có được một số upvote / tránh nhiều downvote hơn.
jmort253

-7

Thật ra, Linux không phải là một kỹ thuật đảo ngược của Unix, vì vậy thiết kế kernel theo triết lý của Ken Thompson. Cách thức của Linux dường như là bắt chước triết lý Unix một cách chặt chẽ nhất có thể mà không bao giờ gánh nặng bản thân với suy nghĩ ban đầu.


@YannisRizos Ý của bạn là "nhưng nó không thực sự có thể sử dụng được". AFAIK nó hoàn toàn có thể sử dụng được, nhưng vì nó được viết trong hội đồng PDP nên khó có thể chuyển nó trong các kiến ​​trúc khác.
sakisk

@ samual-johnson -1 Bởi vì bạn không sao lưu các tuyên bố của mình bằng các tài liệu tham khảo. Đây là lần đầu tiên tôi nghe về "triết lý Ken Thompson" (và đó là Thompson, không phải Thomson).
sakisk

1
@faif Kiểm tra các tài liệu tham khảo của tôi, hạt nhân thô sơ mà tôi đang đề cập đã được viết cho GE-645 chứ không phải PDP, vì vậy thật khó để gọi nó là hạt nhân Unix. Tôi đã xóa bình luận, vì điểm chính là về việc thiếu các tài liệu tham khảo và nhận xét của bạn là đủ để truyền tải thông điệp đó. - samual vui lòng dành chút thời gian để sao lưu các khiếu nại của bạn với các tài liệu tham khảo vững chắc hoặc sửa đổi nó thành một cái gì đó ít ý kiến ​​hơn.
yannis

@YannisRizos Thú vị. Tôi chưa từng nghe về GE-645, mà theo Wikipedia là phiên bản cải tiến của Multics. Cảm ơn bạn về thông tin.
sakisk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.