Linux có phải là Unix không?


Câu trả lời:


224

Điều đó phụ thuộc vào ý nghĩa của bạn bởi Unix Unix, và bởi Linux Linux.

  • UNIX là một nhãn hiệu thương mại đã đăng ký của Nhóm mở . Nhãn hiệu thương mại đã có một lịch sử đầy biến động và không hoàn toàn rõ ràng rằng nó không được khái quát hóa do việc sử dụng rộng rãi của Unix Unix giới thiệu cho các hệ thống giống như Unix (xem bên dưới). Hiện tại, Nhóm Mở cấp phép sử dụng nhãn hiệu thương mại cho bất kỳ hệ thống nào vượt qua chứng nhận UNIX đơn . Xem thêm Tại sao lại có * Khi có sự đề cập đến Unix trên Internet? .

  • Unix là một hệ điều hành ra đời năm 1969 tại Bell Labs . Các công ty khác nhau đã bán và vẫn bán mã có nguồn gốc từ hệ thống ban đầu này, ví dụ AIX , HP-UX , Solaris . Xem thêm Sự phát triển của các hệ điều hành từ Unix .

  • Có nhiều hệ thống giống như Unix, trong đó chúng cung cấp các giao diện tương tự cho các lập trình viên, người dùng và quản trị viên. Hệ thống sản xuất lâu đời nhất là Phân phối phần mềm Berkeley , dần dần phát triển từ dựa trên Unix (tức là chứa mã có nguồn gốc từ triển khai ban đầu) sang giống như Unix (tức là có giao diện tương tự). Có rất nhiều hệ điều hành BSD có nguồn gốc từ BSD-based hay: FreeBSD , NetBSD , OpenBSD , Mac OS X , vv ví dụ khác bao gồm OSF / 1 (nay là ngưng, đó là một hệ thống Unix như không dựa trên Unix thương mại), Minix(ban đầu là một hệ điều hành giống như đồ chơi Unix được sử dụng như một công cụ giảng dạy, bây giờ là một hệ thống nhúng giống như Unix sản xuất) và nổi tiếng nhất là Linux .


  • Nói đúng ra, Linux là một kernel hệ điều hành được thiết kế giống như kernel của Unix.

  • Linux được sử dụng phổ biến nhất như là một tên của các hệ điều hành giống Unix sử dụng Linux làm hạt nhân của chúng. Vì nhiều công cụ bên ngoài kernel là một phần của dự án GNU , các hệ thống như vậy thường được gọi là GNU / Linux . Tất cả các bản phân phối Linux chính bao gồm GNU / Linux và phần mềm khác.

  • Có những hệ thống giống như Unix dựa trên Linux không sử dụng nhiều công cụ GNU, đặc biệt là trong thế giới nhúng, nhưng tôi không nghĩ rằng bất kỳ hệ thống nào trong số đó không có công cụ phát triển GNU, đặc biệt là GCC .

  • Có những hệ điều hành có Linux là hạt nhân của chúng nhưng không giống Unix. Nổi tiếng nhất là Android , không có trải nghiệm người dùng giống Unix (mặc dù bạn có thể cài đặt một dòng lệnh giống Unix) hoặc trải nghiệm quản trị viên hoặc (hầu hết) trải nghiệm lập trình viên (các chương trình Android của Android bản địa sử dụng API hoàn toàn khác với Unix).


70
Và đừng quên rằng GNU là viết tắt của "GNU không phải là Unix"!
alex

57
"Gnu không phải là Unix" có nghĩa là Gnu không dựa trên mã gốc Unix, không phải Gnu không muốn triển khai các thông số kỹ thuật của Unix. Trích dẫn rms: "Unix miễn phí! Bắt đầu từ Lễ Tạ ơn này, tôi sẽ viết một hệ thống phần mềm tương thích Unix hoàn chỉnh có tên GNU (cho Gnu's Not Unix) và tặng nó miễn phí (1) cho mọi người có thể sử dụng nó."
jlliagre

8
Nếu một bản phân phối Linux muốn được chứng nhận là UNIX, nó sẽ không phải thay đổi nhiều và nó có thể là như vậy. Nhưng tôi chưa nghe nói về bất cứ ai trả tất cả số tiền đó cho những gì sẽ có, vào thời điểm này, có giá trị rất ít.
Kevin Cantu

6
@Kevin: Caldera (bây giờ được biết đến qua một tên khác) đã từng làm việc với nó, mặc dù họ đã không đi hết con đường này (dường như họ đã từ bỏ ý tưởng và thay vào đó là thúc đẩy LSB trước khi họ đột nhiên quên rằng họ đã từng nghe về Linux).
Gilles

4
@milkovsky Không. Như tôi đã giải thích trong câu trả lời của mình, từ ngữ Linux Linux có hai nghĩa. Phần mềm Android Android dựa trên Linux là đúng với nghĩa 1 (kernel). Linux Linux giống như Unix là đúng với nghĩa 2 (hệ điều hành).
Gilles

58

Đối với tất cả các mục đích và mục đích, một bản phân phối Linux hiện đại điển hình (Ubuntu, Debian, Red Hat, Fedora, Slackware, v.v.) là một Unix, nhưng nói đúng ra, không có hệ thống nào có thể tự xưng là Unix mà không được chứng nhận, vì vậy thay vào đó mọi người nói rằng chúng là Giống như Unix. Họ lấy cảm hứng từ Unix và tiếp tục văn hóa của nó.

Điều này cũng áp dụng cho các hệ thống BSD.

Mac OS X được chứng nhận Unix, vì vậy đó là Unix cả về tên và thực tế. (và nó thực sự dựa trên BSD).

Cần lưu ý rằng vì bản thân Linux chỉ là một hạt nhân, nên nó có thể được sử dụng để xây dựng các hệ thống không giống nhau (như Android).


1
Lưu ý: nhân Mac OS X không dựa trên bất kỳ nhân BSD nào. Phần chế độ người dùng dựa trên FreeBSD và trong phần NetBSD theo hiểu biết của tôi.
0xC0000022L

2
Hạt nhân ngày nay có thể khá khác với hạt nhân BSD, nhưng tôi nghĩ rằng ban đầu (ít nhất là một phần) dựa trên nó.
hasen

3
Cần lưu ý rằng FreeBSD là hậu duệ trực tiếp của ATT Unix và từng chứa mã ATT Unix. Nó không chỉ là "cảm hứng" của Unix.
Cướp

2
@ 0xC0000022L và bây giờ chúng ta sẽ tiến xa hơn "Các phiên bản đầu tiên của Mach có hạt nhân nguyên khối, với phần lớn mã BSD trong nhân. Mach 3.0 là triển khai hạt nhân đầu tiên." Đối với tôi, osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html là một nguồn khá có thẩm quyền.
poige

2
Và để kết luận: "Một số khía cạnh mà BSD chịu trách nhiệm bao gồm: xử lý id người dùng mô hình, quyền, chính sách bảo mật cơ bản API POSIX, hệ thống kiểu BSD gọi TCP / IP stack, ổ cắm BSD, VFS tường lửa và hệ thống tệp (xem Mac OS X Filesystems cho chi tiết) Hệ thống mã hóa IP IPC cơ chế đồng bộ hóa khác nhau ". Đối với tôi điều này là đủ để nói rằng nó dựa trên BSD. Đối mặt với sự thật.
poige

23

Linux giống "Unix giống" hơn, vì vậy, đơn giản là bạn có thể gọi nó là bản sao, điều này cũng đúng với BSD (mặc dù các BSD thừa nhận có thể được coi là gần với Unix hơn Linux).

Điều chính mang lại cho Linux tiêu đề giống Unix là thực tế là nó tuân thủ gần như hoàn toàn các tiêu chuẩn w / POSIX (Giao diện hệ điều hành di động [cho Unix]) đã được xây dựng theo thời gian.

Một điều quan trọng khác, là sự kế thừa mã , v.v. , như đã trình bày trên Wikipedia, Linux không thực sự bắt nguồn từ các nguồn Unix, thay vào đó nó được xây dựng khá nhiều từ đầu (tuy nhiên điều này còn gây tranh cãi).

Về cơ bản, điều chính yếu ngăn cách Unix với Linux là tổ tiên và các tiêu chuẩn mà nó đáp ứng.


1
Ngoài ra còn có Thông số kỹ thuật Unix đơn để xem xét.
Dennis Williamson

Tôi chắc chắn nói rằng BSD gần với Unix hơn Linux. Do giấy phép tự do hơn của BSD và đó là sự phát triển chặt chẽ với AT & T UNIX, rất nhiều mã nguồn BSD và API của nó được sử dụng trong Unix thương mại. Hệ thống tập tin UFS trong Solaris và một số UNIX thương mại khác đến trực tiếp từ BSD. Ngoài ra, API Berkely Sockets (không nhất thiết phải là nguồn) được sử dụng bởi mọi thứ, kể cả Linux được phát triển trên BSD.
chim cánh cụt359

3
Sau toàn bộ SCO và IBM lộn xộn, rõ ràng nhân Linux không chứa mã Unix nào cả.
vonbrand

11

Câu trả lời được chọn giải thích nó khá kỹ lưỡng, nhưng bạn sẽ phải xem toàn bộ tài liệu để biết tất cả các chi tiết giữa sự phát triển ban đầu của UNIX và cách Linux ra mắt.

Trước tiên, bạn phải xem xét rằng Linux là kernel, được tạo bởi linus và các lập trình viên khác. Ông đã chọn phát hành nó với GPL, lúc đó là giấy phép do FSF, (RMS và những người khác), người cũng đang phát triển kernel và GNU của riêng họ.

Cái mà chúng ta thường gọi là Linux, ban đầu, là kernel, cộng với tất cả các công cụ khác ban đầu đến từ dự án GNU. Hai dự án này khác nhau về mặt lịch sử, bởi vì vào thời điểm đó, hạt nhân từ những người thuộc FSF đã bị từ bỏ để ủng hộ hạt nhân Linux, điều này tốt hơn nhiều.

Tôi nhớ có một bộ phim tài liệu, bạn thực sự nên xem nó, tôi thấy nó quan trọng đối với văn hóa lập trình của bạn.

Một điều khác bạn phải xem xét khi nghĩ về "* nix", đó là mọi vấn đề liên quan đến POSIX và các công cụ tiêu chuẩn hóa kiến ​​trúc khác. Đây là chủ đề của thiết kế / nghiên cứu hệ điều hành, nhưng nó xác định chính xác cách thức các HĐH liên quan hoạt động và rất quan trọng khi bạn có một hạt nhân hoạt động tốt với các công cụ của nó.


Trên thực tế, POSIX hiện được gọi là SUS (Thông số kỹ thuật Unix đơn), đã được đề cập.
0xC0000022L

1
@STATUS POSIX là cơ sở cho SUSv2. Nhóm Austin sau đó được thành lập như một nhóm làm việc chung giữa IEEE, người đã tạo ra POSIX và Nhóm mở sở hữu nhãn hiệu UNIX và đặc tả UNIX. Họ đã phát hành POSIX: 2001 còn được gọi là SUSv3. Họ là một trong những như tôi có thể nói. POSIX vẫn đang được phát triển với POSIX: 2004 và POSIX: 2008, đây là cốt lõi của SUSv4. Tôi không nghĩ POSIX đã chết. vi.wikipedia.org/wiki/Single_UNIX_Specification
penguin359

Tôi hiểu rằng SUS là POSIX với một số bổ sung.
vonbrand

Liên kết đến tài liệu đó?
Edward Torvalds

edv torvalds Xin lỗi tôi không thể nhớ tiêu đề. Nó đặc trưng RMS chủ yếu, và trông giống như một tài liệu cũ.
jokoon

6

Đã có rất nhiều câu trả lời tuyệt vời nhưng tôi nghĩ rằng quan điểm của Dennis Ritchie (đồng sáng tạo Unix) sẽ là một bổ sung thú vị cho các câu trả lời kỹ thuật khác.

Có vẻ như Dennis Ritchie coi Linux là một công cụ phái sinh Unix hợp pháp. Trong một cuộc phỏng vấn năm 1999 cho LinuxF Focus.org , anh đã được hỏi,

ý kiến ​​của bạn về tất cả động lực của Linux và quyết định của nhiều công ty bắt đầu phát triển phần mềm cho nó là gì?

Câu trả lời của anh ấy cho câu hỏi là

Tôi nghĩ rằng hiện tượng Linux khá thú vị, bởi vì nó thu hút rất mạnh trên cơ sở mà Unix cung cấp. Linux dường như là một trong những công cụ phái sinh Unix trực tiếp lành mạnh nhất, mặc dù cũng có các hệ thống BSD khác nhau cũng như các dịch vụ chính thức hơn từ các nhà sản xuất máy trạm và máy tính lớn. Tất nhiên, tôi không thể quan sát, thế giới có nguồn gốc Unix "nguồn miễn phí" dường như đang phải chịu đựng chính xác sự phân mảnh và xung đột tương tự đã xảy ra và vẫn đang xảy ra trong thế giới thương mại.


1

Trong lịch sử Linus Torvalds đã tạo ra một bản sao cải tiến của hệ điều hành Minix. Sự phát triển của Linux không tập trung vào một nền tảng và cơ sở khách hàng cụ thể và các nhà phát triển Linux có nhiều kinh nghiệm và quan điểm khác nhau. Các hệ điều hành như HP-UX, AIX, Solaris và các hệ điều hành khác hầu hết được làm sắc nét cho các nhà cung cấp.

Trong cộng đồng Linux, không có bộ công cụ hoặc môi trường tiêu chuẩn nghiêm ngặt. Việc thiếu tiêu chuẩn hóa này dẫn đến sự không nhất quán đáng kể trong Linux. Đối với một số nhà phát triển, khả năng sử dụng thành tựu tốt nhất của các hệ điều hành khác là một lợi thế, nhưng không phải lúc nào cũng thuận tiện để sao chép các phần tử UNIX trên Linux, ví dụ, khi tên thiết bị trong Linux có thể được lấy từ AIX, trong khi các công cụ cho làm việc với hệ thống tệp được tập trung vào HP-UX. Tính không tương thích của loại này cũng được tìm thấy giữa các bản phân phối Linux khác nhau.


0

Unix, ban đầu là UNICS (Dịch vụ thông tin và tính toán UNiplexed).

Unix (được đăng ký nhãn hiệu là UNIX) là một nhóm các hệ điều hành máy tính đa nhiệm, đa người dùng có nguồn gốc từ Unix AT & T gốc. Sự phát triển bắt đầu vào năm 1969 và được công bố bên ngoài Bell abs vào tháng 10/1973.

Sự đa dạng của cả hai biến thể học thuật và thương mại của Unix từ các nhà cung cấp như Đại học California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX) và Sun microsystems (Solaris).

  • Các bản phát hành BSD ( B er siêu S oftware D istribution ) đã cung cấp cơ sở cho một số dự án phát triển nguồn mở đang diễn ra, ví dụ: FreeBSD, OpenBSD, NetBSD, Darwin và TrueOS.
  • Xenix là phiên bản ngừng hoạt động của hệ điều hành Unix cho các nền tảng máy vi tính khác nhau, được cấp phép bởi Microsoft.
  • AIX ( Một dvanced tôi nteractive e X ecutive) phát triển và được bán bởi IBM cho một số các nền tảng máy tính của mình.

Linux là một nhóm các hệ điều hành phần mềm nguồn mở và miễn phí được xây dựng xung quanh nhân Linux. Thành phần xác định của Linux là nhân Linux, một nhân hệ điều hành được phát hành lần đầu tiên vào ngày 17 tháng 9 năm 1991 bởi Linus Torvalds.

Linux được đóng gói dưới dạng phân phối Linux (viết tắt là distro) cho cả máy tính để bàn và máy chủ. Một số bản phân phối Linux phổ biến và chính thống nhất là Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE và Ubuntu, cùng với các bản phân phối thương mại như Red Hat Enterprise Linux

Giao diện người dùng, còn được gọi là shell, là giao diện dòng lệnh (CLI), giao diện người dùng đồ họa (GUI) hoặc thông qua các điều khiển được gắn vào phần cứng liên quan, phổ biến cho các hệ thống nhúng. Đối với các hệ thống máy tính để bàn, chế độ mặc định thường là giao diện người dùng đồ họa, mặc dù CLI thường có sẵn thông qua các cửa sổ giả lập thiết bị đầu cuối hoặc trên một bảng điều khiển ảo riêng biệt.

  • Shell CLI là các giao diện người dùng dựa trên văn bản, sử dụng văn bản cho cả đầu vào và đầu ra. Shell chiếm ưu thế được sử dụng trong Linux là Bourne-Again Shell (bash), ban đầu được phát triển cho dự án GNU.
  • Các vỏ GUI là K Môi trường máy tính để bàn (KDE), Gnome, MATE, Cinnamon, Unity, LXDE, Pantheon và Xfce, mặc dù tồn tại nhiều giao diện người dùng khác. Hầu hết các giao diện người dùng phổ biến đều dựa trên Hệ thống Cửa sổ X, thường được gọi đơn giản là "X".

GNU là một hệ điều hành và một bộ sưu tập phần mềm máy tính phong phú. GNU bao gồm toàn bộ phần mềm miễn phí, hầu hết được cấp phép theo GPL của chính Dự án GNU. GNU là từ viết tắt đệ quy cho "GNU's Not Unix!", Được chọn vì thiết kế của GNU giống Unix, nhưng khác với Unix bởi phần mềm miễn phí và không chứa mã Unix. Việc phát triển hệ điều hành GNU được Richard Stallman khởi xướng khi ông làm việc tại Phòng thí nghiệm trí tuệ nhân tạo của Viện Công nghệ Massachusetts (MIT) năm 1983.

Các thành phần cơ bản bao gồm Bộ sưu tập trình biên dịch GNU (GCC), thư viện GNU C (glibc) và GNU Core Utility (coreutils), mà còn cả Trình gỡ lỗi GNU (GDB), Tiện ích nhị phân GNU (binutils), shell GNU Bash và Gnome môi trường máy tính để bàn.


-7

Linux là một hệ điều hành giống như Unix được phát triển bởi Linus Torvalds và hàng ngàn người khác.
BSD là một hệ điều hành UNIX mà vì lý do pháp lý phải được gọi là Unix-Like.
OS X là một hệ điều hành UNIX đồ họa được phát triển bởi Apple Inc.

Linux là ví dụ nổi bật nhất về hệ điều hành Unix "thực". Nó chạy trên mọi thứ và hỗ trợ nhiều phần cứng hơn BSD hoặc OS X. Một câu trích dẫn thú vị tôi tìm thấy khi so sánh BSD và Linux:

Linux là những gì bạn nhận được khi một nhóm tin tặc PC ngồi xuống và cố gắng viết một hệ thống Unix cho PC. BSD là những gì bạn nhận được khi một nhóm tin tặc UNIX ngồi xuống và cố gắng chuyển một hệ thống Unix sang PC.

BSD giống như một hệ điều hành Unix hơn là Linux. Cũng đáng chú ý là Apple sử dụng các thành phần BSD và Linux. Apple sử dụng APT từ Debian và Ubuntu trên nền tảng iOS và OS X. Và nó dựa trên BSD. (Hạt nhân là Darwin, đó là hạt nhân của chính nó. Thú mỏ vịt là linh vật của Darwin vì anh ta là sự pha trộn giữa Beastie từ BSD và Thú mỏ vịt.)

Nếu bạn muốn có một hệ điều hành Unix "thực sự" (Một hệ điều hành chạy trên mọi thứ và hỗ trợ nhiều phần cứng), hãy thử Linux.
Nếu bạn muốn hỗ trợ phần cứng và đau đầu cấp thấp hơn (tôi biết tôi sẽ bị ghét rất nhiều nhưng tôi không quan tâm), hãy sử dụng BSD.
Nếu bạn muốn chi $ 1000 +, hãy sử dụng OS X và iOS. (Một lần nữa tôi có thể sẽ nhận được rất nhiều sự ghét bỏ.)

Tôi là một Người dùng Linux lâu năm, đã sử dụng nó từ những năm 90 đến đầu những năm 2000 và sau đó bỏ sử dụng một thời gian nhưng bắt đầu sử dụng lại vào khoảng giữa năm 2012 như là hệ điều hành vĩnh viễn của tôi để tôi có thể giới thiệu nó cho bất kỳ ai muốn để thử một cái gì đó ngoài Windoze.


4
Vì Linux đang thay đổi gần đây với Wayland / systemd / etc, nên nó ngày càng loại bỏ nó trở thành một hệ thống giống Unix và trở thành thực thể của chính nó. Nó đang làm cho bản thân không tương thích với các hệ thống giống Unix và Unix thực sự đến mức các hệ thống thực này đã phát triển thái độ "không quan tâm" đến Linux. "Đề xuất" của bạn không có cơ sở và khiến tôi đồng ý với bạn rằng bạn đã không chạm vào bất kỳ thứ gì trong 15 năm qua.
Cướp

11
Linux không phải là HĐH, mà là kernel.
Martin Schröder

3
Apple không sử dụng APT từ Debian. Nó bao gồm một công cụ hoàn toàn khác có tên APT (Công cụ xử lý chú thích của Java). Và cộng đồng jailbreak sử dụng APT làm trình quản lý gói để cài đặt phần mềm iOS theo ý muốn của Apple.
abarnert

4
Trên thực tế, gần như mọi tuyên bố trong câu trả lời này là sai. "Chạy trên rất nhiều hệ thống == Unix" thật lố bịch. Apple chưa bao giờ phát hành hệ thống $ 1000 + chạy iOS. BSD là một họ các hệ thống giống Unix và Unix, không phải là một hệ điều hành duy nhất. Linux là một hạt nhân có thể được kết hợp với một vùng người dùng giống Unix (như GNU), một vùng người dùng Unix-ish bị loại bỏ (như eLinux hoặc Android) hoặc bất cứ thứ gì bạn muốn. Và như vậy.
abarnert
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.