Czy Linux jest Uniksem?

190

Istnieje wiele różnych wersji Uniksa: HP-UX, AIX, BSD itp. Linux jest uważany za klon uniksowy, a nie za implementację Uniksa. Czy wszystkie „prawdziwe” Unices są rzeczywistymi potomkami oryginału? Jeśli nie, co odróżnia Linuksa od Uniksa?

Shawn J. Goff
źródło

Odpowiedzi:

224

To zależy od tego, co rozumiesz przez „Unix” i „Linux”.

  • UNIX jest zastrzeżonym znakiem towarowym z The Open Group . Znak towarowy ma bogatą historię i nie jest całkowicie jasne, czy nie jest on uogólniony ze względu na powszechne stosowanie „Uniksa” odnoszącego się do systemów podobnych do Uniksa (patrz poniżej). Obecnie Open Group przyznaje użycie znaku towarowego każdemu systemowi, który przejdzie Pojedynczą certyfikację UNIX . Zobacz także Dlaczego istnieje * Kiedy w Internecie pojawia się wzmianka o Uniksie? .

  • Unix to system operacyjny, który urodził się w 1969 roku w Bell Labs . Różne firmy sprzedały i nadal sprzedają kod pochodzący z tego oryginalnego systemu, na przykład AIX , HP-UX , Solaris . Zobacz także Ewolucja systemów operacyjnych od Uniksa .

  • Istnieje wiele systemów podobnych do Uniksa, ponieważ oferują one interfejsy podobne do programistów, użytkowników i administratorów. Najstarszym systemem produkcyjnym jest Berkeley Software Distribution , która stopniowo ewoluowała od systemu Unix (tj. Zawierającego kod pochodzący z oryginalnej implementacji) do systemu podobnego do Unix (tj. Posiadającego podobny interfejs). Istnieje wiele systemów operacyjnych opartych na BSD lub pochodnych BSD: FreeBSD , NetBSD , OpenBSD , Mac OS X itp. Inne przykłady to OSF / 1 (obecnie wycofany, był to komercyjny system uniksopodobny nie oparty na systemie Unix), Minix(pierwotnie zabawkowy system operacyjny typu Unix używany jako narzędzie edukacyjne, teraz produkcyjny system osadzony w systemie Unix), a najbardziej znany Linux .


  • Ściśle mówiąc, Linux to jądro systemu operacyjnego, które jest zaprojektowane podobnie jak jądro Unixa.

  • Linux jest najczęściej używany jako nazwa systemów operacyjnych typu Unix, które używają Linuksa jako jądra. Ponieważ wiele narzędzi poza jądrem jest częścią projektu GNU , takie systemy są często znane jako GNU / Linux . Wszystkie główne dystrybucje Linuksa składają się z GNU / Linux i innego oprogramowania.

  • Istnieją oparte na systemie Linux systemy uniksowe, które nie używają wielu narzędzi GNU, szczególnie w świecie osadzonym, ale nie sądzę, aby którekolwiek z nich usuwa narzędzia programistyczne GNU, w szczególności GCC .

  • Istnieją systemy operacyjne, które mają Linux jako jądro, ale nie są podobne do Uniksa. Najbardziej znanym jest system Android , który nie ma unikatowego doświadczenia użytkownika (chociaż można zainstalować wiersza polecenia podobnego do Uniksa) ani doświadczenia administratora lub (głównie) doświadczenia programisty („rodzime” programy na Androida używają interfejsu API, który jest całkowicie inny niż Unix).

Gilles
źródło
70
I nie zapominajmy, że GNU oznacza „GNU to nie Unix”!
alex
57
„Gnu nie jest Uniksem” oznacza, że ​​Gnu nie jest oparty na oryginalnym kodzie Uniksa, nie że Gnu nie chce implementować specyfikacji Uniksa. Cytując RMS: „Darmowy Unix! Zaczynając to Święto Dziękczynienia, zamierzam napisać kompletny system oprogramowania kompatybilny z Unixem o nazwie GNU (dla Gnu's Not Unix) i rozdać go bezpłatnie (1) wszystkim, którzy mogą z niego korzystać.”
jlliagre
8
Gdyby dystrybucja Linuksa chciała uzyskać certyfikat UNIX, nie musiałaby się za bardzo zmieniać i mogłoby tak być. Ale nie słyszałem o nikim, kto płaciłby tyle pieniędzy za to, co w tym momencie byłoby tak niewiele warte.
Kevin Cantu,
6
@Kevin: Caldera (znana obecnie pod inną nazwą) kiedyś nad tym pracowała, chociaż nie poszli na całość (wydaje się, że porzucili ten pomysł i zamiast tego nalegali na LSB, zanim nagle zapomnieli, że o nich słyszeli Linux).
Gilles,
4
@milkovsky Nie. Jak wyjaśniam w mojej odpowiedzi, słowo „Linux” ma dwa znaczenia. „Android oparty jest na systemie Linux” jest prawdziwe w znaczeniu 1 (jądro). „Linux jest uniksowy” jest prawdziwe w znaczeniu 2 (system operacyjny).
Gilles,
58

Pod każdym względem typowa współczesna dystrybucja Linuksa (Ubuntu, Debian, Red Hat, Fedora, Slackware itp.) Jest Uniksem, ale ściśle mówiąc, żaden system nie może twierdzić, że jest Uniksem bez certyfikatu, więc ludzie twierdzą, że są Uniksowy. Inspirują się Unixem i kontynuują jego kulturę.

Dotyczy to również systemów BSD.

Mac OS X ma certyfikat Unix, więc jest uniksowy zarówno pod względem nazwy, jak i rzeczywiście. (i jest w rzeczywistości oparty na BSD).

Należy zauważyć, że ponieważ sam Linux jest tylko jądrem, można go używać do budowania systemów innych niż Unix (takich jak Android).

hasen
źródło
1
Uwaga: jądro systemu Mac OS X nie jest oparte na żadnym jądrze BSD. Część trybu użytkownika oparta jest na FreeBSD, aw części NetBSD, o ile mi wiadomo.
0xC0000022L,
2
Dzisiejsze jądro może raczej różnić się od jądra BSD, ale myślę, że początkowo (przynajmniej częściowo) było na nim oparte.
hasen
3
Należy zauważyć, że FreeBSD jest bezpośrednim potomkiem ATT Unix i kiedyś zawierał kod ATT Unix. Nie był to tylko „inspirowany” przez Unix.
Rob
2
@ 0xC0000022L i idziemy dalej: „Wczesne wersje Macha miały monolityczne jądra, z dużą ilością kodu BSD w jądrze. Mach 3.0 był pierwszą implementacją mikrojądra”. Jeśli chodzi o mnie, osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html jest dość wiarygodnym źródłem.
poige
2
I podsumowując: „Niektóre aspekty, za które BSD jest odpowiedzialne, obejmują: identyfikatory użytkowników modelu procesu, uprawnienia, podstawowe zasady bezpieczeństwa POSIX API, wywołania systemowe w stylu BSD, stos TCP / IP, gniazda BSD, firewall VFS i systemy plików (zobacz Systemy plików Mac OS X szczegóły) Ramy kryptograficzne systemu V IPC różne mechanizmy synchronizacji ". Jeśli chodzi o mnie, wystarczy powiedzieć, że jest oparty na BSD. Zmierz się z prawdą.
poige
23

Linux jest bardziej „uniksowy”, więc tak upraszczająco można nazwać go klonem, to samo dotyczy BSD (chociaż wprawdzie BSD można uznać za bliższe Unixowi niż Linux).

Najważniejszą rzeczą, która nadaje Linuksowi tytuł uniksowy, jest fakt, że jest on prawie w pełni zgodny ze standardami POSIX (Portable Operating System Interface [for Unix]), które z czasem powstały.

Inną kluczową rzeczą jest dziedziczenie kodu itp. , Jak wykazano na Wikipedii, Linux nie pochodzi ze źródeł uniksowych, jest raczej zbudowany od podstaw (jest to jednak kwestionowane).

Zasadniczo więc główną rzeczą, która odróżnia Uniksa od Linuksa, jest pochodzenie i standardy, które spełnia.

NJ
źródło
1
Do rozważenia jest także specyfikacja Single Unix .
Dennis Williamson
Zdecydowanie powiedziałbym, że BSD są bliższe Uniksowi niż Linuxowi. Ze względu na bardziej liberalną licencję BSD i jej bliski rozwój w AT&T UNIX, wiele komercyjnych kodów źródłowych i API jest używanych w komercyjnym Uniksie. System plików UFS w systemie Solaris i niektórych innych komercyjnych systemach UNIX pochodzi prosto z BSD. Również API Berkely Sockets API (niekoniecznie źródło) używane przez wszystko łącznie z Linuksem zostało opracowane na BSD.
penguin359,
3
Po całym bałaganie SCO kontra IBM stało się jasne, że jądro Linuksa w ogóle nie zawiera kodu uniksowego.
vonbrand
11

Wybrana odpowiedź wyjaśnia ją dość wyczerpująco, ale musiałbyś obejrzeć cały film dokumentalny, aby poznać wszystkie szczegóły między początkowym rozwojem UNIX a tym, jak Linux wyszedł.

Najpierw musisz wziąć pod uwagę, że Linux jest jądrem, które zostało stworzone przez Linusa i innych programistów. Zdecydował się wydać go wraz z GPL, która w tym czasie była licencją FSF (RMS i inni), którzy również rozwijali własne jądro i GNU.

To, co zwykle nazywamy Linuksem, to najpierw jądro, a także wszystkie inne narzędzia pierwotnie pochodzące z projektu GNU. Te dwa projekty są historycznie różne, ponieważ w tym czasie jądro ludzi z FSF zostało porzucone, aby faworyzować jądro Linuksa, co było znacznie lepsze.

Pamiętam, że jest dokument, powinieneś go obejrzeć, uważam, że jest ważny dla twojej kultury programowania.

Inną rzeczą, którą musisz wziąć pod uwagę, myśląc o „* nix”, jest także wszystko związane z POSIX i innymi standardowymi architekturami. Jest to przedmiotem projektowania / badań systemu operacyjnego, ale dokładnie określa, w jaki sposób działają zaangażowane systemy operacyjne, i ma kluczowe znaczenie, gdy jądro działa dobrze z jego narzędziami.

żart
źródło
W rzeczywistości POSIX nazywa się teraz SUS (specyfikacja Single Unix), o której wspomniano.
0xC0000022L,
1
@STATUS POSIX był podstawą SUSv2. Grupa Austin została później utworzona jako wspólna grupa robocza między IEEE, która stworzyła POSIX, a The Open Group, która jest właścicielem znaku towarowego UNIX i specyfikacji UNIX. Wydali POSIX: 2001 znany również jako SUSv3. Są one jedno w tym samym stopniu, o ile wiem. POSIX jest wciąż rozwijany z POSIX: 2004 i POSIX: 2008, który jest rdzeniem SUSv4. Nie sądzę, żeby POSIX jeszcze nie żył. en.wikipedia.org/wiki/Single_UNIX_Specification
penguin359 26.04.11
Rozumiem, że SUS to POSIX z pewnymi dodatkami.
vonbrand
Link do tego dokumentu?
Edward Torvalds,
edward torvalds Niestety nie pamiętam tytułu. Zawierał przede wszystkim RMS i wyglądał jak stary dokument.
Jokoon
6

Jest już wiele świetnych odpowiedzi, ale myślałem, że poglądy wielkiego Dennisa Ritchiego (współtwórcy Unixa) będą interesującym uzupełnieniem innych bardziej technicznych odpowiedzi.

Wygląda na to, że Dennis Ritchie uważał Linuksa za legalną pochodną Uniksa. W wywiadzie dla LinuxFocus.org z 1999 roku zapytano go:

jakie jest twoje zdanie na temat całej dynamiki Linuksa i decyzji wielu firm o rozpoczęciu tworzenia oprogramowania dla niego?

Odpowiedział na to pytanie

Myślę, że fenomen Linuksa jest dość zachwycający, ponieważ czerpie tak silnie na podstawie dostarczonej przez Unix. Linux wydaje się być jednym z najzdrowszych z bezpośrednich pochodnych systemów uniksowych, choć istnieją też różne systemy BSD, a także bardziej oficjalna oferta producentów stacji roboczych i komputerów mainframe. Oczywiście nie mogę przestać obserwować, że świat pochodzący z „wolnego źródła” uniksowy wydaje się cierpieć z powodu dokładnie tego samego rodzaju fragmentacji i konfliktów, które miały miejsce i nadal występują w świecie komercyjnym.

Anthony Geoghegan
źródło
1

Historycznie Linus Torvalds stworzył ulepszony klon systemu operacyjnego Minix. Rozwój Linuksa nie koncentruje się na konkretnej platformie i bazie klientów, a programiści Linuksa mają różne doświadczenia i perspektywy. Takie systemy operacyjne jak HP-UX, AIX, Solaris i inne są w większości wyostrzone dla dostawców.

W społeczności Linuksa nie ma ścisłego standardowego zestawu narzędzi ani środowisk. Ten brak standaryzacji prowadzi do znacznych niespójności w systemie Linux. Dla niektórych programistów możliwość korzystania z najlepszych osiągnięć innych systemów operacyjnych jest zaletą, ale nie zawsze wygodne jest kopiowanie elementów UNIX w systemie Linux, na przykład gdy nazwy urządzeń w systemie Linux można pobrać z systemu AIX, podczas gdy narzędzia do praca z systemem plików koncentruje się na HP-UX. Tego rodzaju niezgodności występują także między różnymi dystrybucjami Linuksa.

Quarind
źródło
0

Unix, pierwotnie UNICS (UNiplexed Infomation and Computing Service).

Unix (znak towarowy UNIX) to rodzina wielozadaniowych, wieloużytkownikowych systemów operacyjnych opartych na oryginalnym systemie AT&T Unix. Rozwój rozpoczął się w 1969 roku i został ogłoszony poza Bell abs w październiku 1973 roku.

Różnorodne akademickie i komercyjne warianty Uniksa od dostawców takich jak University of California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX) i Sun Microsystems (Solaris).

  • Wydania BSD ( B erkeley S oftware D istribution) stanowiły podstawę dla kilku trwających projektów programistycznych typu open source, np. FreeBSD, OpenBSD, NetBSD, Darwin i TrueOS.
  • Xenix to wycofana wersja systemu operacyjnego Unix dla różnych platform mikrokomputerowych, licencjonowana przez Microsoft.
  • AIX ( dvanced I nteractive e X ecutive) opracowane i sprzedawane przez IBM dla kilku platform komputerowych.

Linux to rodzina bezpłatnych i otwartych systemów operacyjnych opartych na jądrze Linux. Elementem definiującym Linux jest jądro Linux, jądro systemu operacyjnego, które po raz pierwszy wydano 17 września 1991 roku przez Linusa Torvaldsa.

Linux jest spakowany w formie znanej jako dystrybucja Linuksa (w skrócie dystrybucja) do użytku zarówno na komputerze stacjonarnym, jak i na serwerze. Niektóre z najpopularniejszych i najpopularniejszych dystrybucji Linuksa to Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE i Ubuntu, wraz z dystrybucjami komercyjnymi, takimi jak Red Hat Enterprise Linux

Interfejs użytkownika, znany również jako powłoka, jest interfejsem wiersza polecenia (CLI), graficznym interfejsem użytkownika (GUI) lub kontrolkami podłączonymi do powiązanego sprzętu, co jest wspólne dla systemów wbudowanych. W systemach stacjonarnych trybem domyślnym jest zazwyczaj graficzny interfejs użytkownika, chociaż interfejs CLI jest zwykle dostępny za pośrednictwem okien emulatora terminali lub na osobnej konsoli wirtualnej.

  • Powłoki CLI to tekstowe interfejsy użytkownika, które używają tekstu zarówno do wprowadzania, jak i do wyświetlania. Dominującą powłoką używaną w Linuksie jest Bourne-Again Shell (bash), pierwotnie opracowany dla projektu GNU.
  • Powłoki GUI to K Desktop Environment (KDE), GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon i Xfce, chociaż istnieje wiele dodatkowych interfejsów użytkownika. Najpopularniejsze interfejsy użytkownika oparte są na systemie X Window, często nazywanym po prostu „X”.

GNU to system operacyjny i bogata kolekcja oprogramowania komputerowego. GNU składa się w całości z wolnego oprogramowania, z którego większość jest licencjonowana na licencji GPL Projektu GNU. GNU to rekurencyjny akronim nazwy „GNU's Not Unix!”, Wybrany, ponieważ projekt GNU jest podobny do Uniksa, ale różni się od Uniksa tym, że jest wolnym oprogramowaniem i nie zawiera kodu Uniksa. Rozwój systemu operacyjnego GNU został zainicjowany przez Richarda Stallmana, gdy pracował on w Massachusetts Institute of Technology (MIT) Artificial Intelligence Laboratory w 1983 roku.

Podstawowe komponenty obejmują kolekcję GNU Compiler Collection (GCC), bibliotekę GNU C (glibc) i GNU Core Utilities (coreutils), ale także GNU Debugger (GDB), GNU Binary Utilities (binutils), powłokę GNU Bash i GNOME środowisko pulpitu.

Premraj
źródło
-7

Linux to uniksopodobny system operacyjny opracowany przez Linusa Torvaldsa i tysiące innych.
BSD to system operacyjny UNIX, który ze względów prawnych musi być nazywany Uniksowym.
OS X to graficzny system operacyjny UNIX opracowany przez Apple Inc.

Linux jest najwybitniejszym przykładem „prawdziwego” systemu operacyjnego Unix. Działa na czymkolwiek i obsługuje znacznie więcej sprzętu niż BSD lub OS X. Ciekawy cytat znalazłem, gdy porównywałem BSD i Linuksa:

Linux jest tym, co dostajesz, gdy grupa hakerów na PC siada i próbuje napisać system uniksowy na PC. BSD jest tym, co dostajesz, gdy grupa hakerów UNIX usiądzie i spróbuje przenieść system Unix na komputer.

BSD bardziej przypomina system operacyjny Unix niż Linux. Warto również zauważyć, że Apple wykorzystuje komponenty BSD i Linux. Apple używa APT z Debiana i Ubuntu na platformach iOS i OS X. Opiera się na BSD. (Jednak jądro to Darwin, które jest własnym jądrem. Dziobak Beastie jest maskotką Darwina, ponieważ jest mieszanką Beastie z BSD i dziobaka.)

Jeśli chcesz mieć „prawdziwy” system operacyjny Unix (taki, który działa na czymkolwiek i obsługuje wiele urządzeń), wypróbuj Linux.
Jeśli chcesz uzyskać wsparcie sprzętowe niższego poziomu i bóle głowy (wiem, że dostanę mnóstwo nienawiści, ale mnie to nie obchodzi), użyj BSD.
Jeśli chcesz wydać 1000 USD +, użyj OS X i iOS. (Znowu prawdopodobnie dostanę mnóstwo nienawiści.)

Jestem długoletnim użytkownikiem Linuksa, który używałem go od lat 90. do wczesnych lat 2000, a potem przestałem go używać na jakiś czas, ale zacząłem go używać mniej więcej w połowie 2012 roku jako mojego stałego systemu operacyjnego, więc mogę polecić go każdemu, kto chce spróbować czegoś innego niż Windoze.

Craig Wessel
źródło
4
Ponieważ Linux zmienia się ostatnio wraz z Wayland / systemd / etc, coraz bardziej usuwa się z systemu uniksopodobnego i staje się swoim własnym bytem. Staje się mniej kompatybilny z prawdziwymi systemami uniksowymi i podobnymi do systemu Unix do tego stopnia, że ​​te prawdziwe systemy rozwinęły podejście „nie przejmuj się” w stosunku do Linuksa. Twoje „rekomendacje” są dalekie od podstaw i sprawiają, że zgadzam się z tobą, że nie dotknąłeś żadnej z tych rzeczy od 15 lat.
Rob
11
Linux nie jest systemem operacyjnym, ale jądrem.
Martin Schröder
3
Apple nie używa APT z Debiana. Zawiera zupełnie inne narzędzie o nazwie APT (Java Annotation Processing Tool). Społeczność jailbreak używa APT jako menedżera pakietów do instalowania oprogramowania iOS wbrew woli Apple.
abarnert
4
Właściwie prawie każde stwierdzenie w tej odpowiedzi jest błędne. „Działa na wielu systemach == Unix” jest niedorzeczne. Apple nigdy nie wydało systemu o wartości 1000 USD + z systemem iOS. BSD to rodzina systemów uniksowych i podobnych do Unixa, a nie pojedynczy system operacyjny. Linux to jądro, które można łączyć z unikalnym obszarem użytkownika (takim jak GNU), zredukowanym unikalnym obszarem użytkownika (takim jak eLinux lub Android) lub czymkolwiek innym. I tak dalej.
abarnert