Ciągle czytam to zdanie:
Linux jest systemem uniksopodobnym, ale nie jest to system uniksowy.
Nie wiem, jaka jest prawdziwa różnica między nimi. Wiem, że Linux ma wiele pomysłów od Uniksa, a ich licencje są różne. Poza tym, ponieważ nie jestem ekspertem w żadnym z nich, chcę wiedzieć, czy istnieją podstawowe różnice między nimi w zakresie projektowania lub innych istotnych aspektów.
linux
operating-systems
unix
Gnijuohz
źródło
źródło
Odpowiedzi:
System „uniksopodobny” może być w pełni zgodny ze specyfikacją Single UNIX , zbiorczą nazwą standardów, które kwalifikują się jako system uniksowy, ale jednocześnie Unix jest zastrzeżonym znakiem towarowym The Open Group, a dostawcy systemów uniksowych potrzebują aby zarejestrować swoje systemy, aby oficjalnie kwalifikować się jako Unix. Obecnie zarejestrowanymi systemami UNIX 03 są:
Dostawcy systemów uniksowych typu open source (głównie Linux i FreeBSD) zazwyczaj nie rejestrują się w The Open Group, aby uniknąć kosztów certyfikacji lub, cóż, ponieważ nie znajdują w tym dużej wartości. Teoretycznie jest całkowicie możliwe, że system uniksowy jest technicznie uniksowy, a brakuje mu tylko certyfikacji.
Z drugiej strony Linux Foundation stworzyło Linux Standard Base , standard ISO , starając się ujednolicić Linuksa. Zgodność z POSIX jest sercem zarówno SUS, jak i LSB, utrzymując w pewien sposób połączenie między Unixem a Linuksem.
Systemy uniksowe i podobne do nich są bardziej podobne niż różne, teoretycznie wszystkie popularne odmiany uniksowe, zarejestrowane lub nie, są zgodne z POSIX (pełne lub w większości), więc mają wspólny interfejs programowania, powłoki i narzędzia (i wiele innych rzeczy). IEEE i The Open Group przechowują bezpłatnie dostępną kopię najnowszej wersji, POSIX.1-2008 , w której można znaleźć więcej informacji na temat tego, co właściwie oznacza zgodność z POSIX.
Teraz, oprócz powodów prawnych i technicznych, Linux odziedziczył mantrę „nie Unixową” po swoim związku z GNU , systemem operacyjnym podobnym do Uniksa, zainicjowanym przez Richarda Stallmana. GNU oznacza „GNU nie jest Uniksem”, ponieważ intencją Stallmana było zbudowanie systemu kompatybilnego z Unixem, który byłby darmowy, a aby to zrobić, nie powinien zawierać kodu uniksowego, ponieważ Unix jest zastrzeżony.
Pierwsi programiści Linuksa zaczęli portować narzędzia GNU na Linuksa, a powstały system nazwano GNU / Linux już w 1992 roku . Od dawna istnieje spór o to, czy Linux powinien być nazywany Linux, czy GNU / Linux (ponieważ zawiera kilka części GNU), ale nie ma to znaczenia dla twojego pytania, istotne jest to, że „nie Unix” może po prostu odnosić się do skojarzenia z GNU i nie mają wiele wspólnego z jego wyglądem, w zależności od kontekstu.
Artykuł „Historia Linuksa” na Wikipedii wyjaśnia szczegółowo pochodzenie Linuksa i jego relacje z Unixem (przez Minix i GNU). Powinieneś również poświęcić trochę czasu na przeczytanie odnośników do artykułu, jeśli jesteś zainteresowany uczyć się więcej.
źródło
UNIX to rodzina systemów operacyjnych, a obecnie UNIX jest bardziej marką należącą do The Open Group. Aby system operacyjny był opatrzony marką UNIX, musi przejść testy zgodności, a dla Linuksa oznaczałoby to, że każda dystrybucja (Ubuntu, Debian, Fedora, Red Hat itp.) Musiałaby przejść osobne testy zgodności dla każdej wersji . Jest to jeden z głównych powodów, dla których Linux jest systemem uniksowym, a nie UNIX.
Testy, o których wspomniałem, mają zapewnić zgodność systemu operacyjnego ze specyfikacją Single Unix, która jest obecnie w wersji 4 SUSv4 (Single Unix Specification wersja 4). Ta specyfikacja definiuje zestaw interfejsów API, które muszą być dostępne dla aplikacji, aby system mógł zostać zakwalifikowany do nazwy UNIX.
źródło
Istniejące odpowiedzi już wymieniają niektóre z różnic, których szukasz. Nie będąc ekspertem od jądra Linuksa, dodałbym również, że wiele różnic w projektowaniu / implementacji między GNU / Linux a różnymi Uniksami jest objętych serią wzorców projektowania jądra Linux .
źródło
„UNIX” to skomplikowana sprawa. Jeśli chodzi o zgodność ze standardami, zarówno Solaris, jak i Mac OS X są „oficjalnie” uniksowe, ale nie musisz tracić dużo czasu, zanim znajdziesz dość duże różnice między nimi. Istnieje świetny schemat, który dokumentuje wydanie różnych odmian systemów operacyjnych UNIX lub UNIX-podobnych oraz ich wpływ na siebie i rozbieżności między nimi.
W wielkim schemacie rzeczy, które wyglądają, chodzą i kwakają jak UNIX, system Linux [*] jest jedną z bardziej konwencjonalnych wersji. Ludzie często odnoszą się do Unices lub * nix i oznaczają „cokolwiek podobnego do UNIX-a”, co prawdopodobnie obejmuje Linuksa. Jednak UNIX jest zastrzeżonym znakiem towarowym z ograniczeniami dotyczącymi jego komercyjnego zastosowania; żadna dystrybucja Linuksa nie spełnia tych ograniczeń.
[*] Ponieważ pytanie to zachęca do podziału semantycznego na włosy, myślę, że w tym przypadku tematem jest wskazanie, że sam Linux jest tylko jądrem, na którym można zbudować system operacyjny. Powszechne jest budowanie systemu podobnego do UNIX-a na Linuksie, do czego został zaprojektowany, i ten system jest zwykle zbudowany z komponentów projektu GNU. W powyższej odpowiedzi „Linux” można odczytywać jako „skrót od„ systemu operacyjnego zawierającego jądro Linux ”.
źródło
Kiedyś przeczytałem, że Linux jest tym, co dostajesz, gdy bierzesz programistę na PC i prosi go o napisanie systemu operacyjnego Unix, podczas gdy FreeBSD jest tym, co dostajesz, gdy bierzesz programistę Unix i prosi go o stworzenie systemu operacyjnego na PC ... zapomnij o BSD w swoim porównaniu!
Różnice dotyczą głównie jądra, ponieważ aplikacje przestrzeni użytkownika (w tym takie jak ls) są częścią projektu GNU. Oznacza to, że Unix, FreeBSD i Linux wydają się być prawie takie same.
Istnieją jednak różnice, gdy przyjrzysz się uważnie. Układ katalogu będzie inny (ale wiele dystrybucji Linuksa używa własnych, w większości zgodnych, ale nadal różnych układów), systemy plików są różne (Unix używa UFS, FreeBSD używa FFS, Linux używa Ext3, aby być uproszczonym - wszystkie z nich mogą korzystać z portów typowe FS, np. ZFS)
Potem są różnice w podstawowych interfejsach API, Linux da ci interfejs API inotify, aby poinformować cię, kiedy zmieniają się pliki, Mac OSX daje FSEvent , a FreeBSD daje ci kolejkę .
Można więc uznać je za tę samą rodzinę - porównaj system Windows z narzędziami GNU do niego podłączonymi z systemem Linux z tymi samymi narzędziami. Będą tylko pozornie wyglądać tak samo, ale system Unix lub FreeBSD nadal będzie wyglądał porównywalnie. Jeśli przyjrzysz się bliżej, przekonasz się, że aplikacje do przenoszenia między FreeBSD, Unix i Linux są stosunkowo łatwe w porównaniu do przenoszenia do alternatywnych systemów operacyjnych, takich jak Windows.
źródło
Unix nie jest już pojedynczym systemem operacyjnym. Kiedyś była to implementacja Bell Labs / AT&T, ale teraz jest standardem.
Technicznie Linux jest tylko jądrem. Jądro to można znaleźć w systemach operacyjnych innych niż Unix, najpopularniejszym z nich jest Android. Z drugiej strony istnieje wiele systemów operacyjnych opartych na Linuksie, które są podobne do Uniksa. Większość (jeśli nie wszystkie) korzysta z bibliotek i narzędzi Gnu. Ta kombinacja zapewnia dystrybucję Linuksa Unix API i zgodność (lub niezgodność) ze standardami.
Standard Unix nie wymaga, aby zgodny system był zastrzeżony lub posiadać jakąkolwiek konkretną licencję. BSD, OpenSolaris / Illumos, darwin są przykładami wciąż wolnych od Linuksa implementacji Uniksa.
Systemy zgodne są zazwyczaj, ale nie zawsze, mieszanką zastrzeżonych i otwartych komponentów, podczas gdy Gnu / Linux może być albo w pełni Open Source, albo zawierać własności zastrzeżone.
Jeśli chodzi o zgodność z Uniksem, nie ma większych różnic. Większość dystrybucji Linuksa i implementacji Unixa korzysta z tego samego zestawu komend przy użyciu tego samego zestawu opcji. Znajdziesz jednak wiele rozszerzeń standardowych poleceń, szczególnie po stronie Gnu, gdzie są one nazywane gnuizmami, oraz liczne polecenia, które nie są zdefiniowane przez standardy w pierwszej kolejności (kompilatory, polecenia administracyjne, instalacja, pakowanie, środowisko graficzne). Jest to obszar, w którym można znaleźć wiele rozbieżności, niezgodności, a czasem świętych wojen.
Model programistyczny Gnu / Linux jest zwykle uważany za bardziej „organiczny” i „bazarowy”, podczas gdy inne systemy uniksowe są bardziej „zaprojektowane” i „katedralne”. W zależności od podsystemów różnica nie jest aż tak wyraźna i zależy od osób i / lub firm stojących za nimi.
źródło
Linux jest wyposażony w wiele narzędzi, takich jak:
Jednak większość systemów operacyjnych UNIX jest uważana za kompletny system operacyjny, ponieważ wszystko pochodzi od jednego źródła lub dostawcy.
Niektóre rzeczy, które udostępniają:
źródło
Nie do końca, Linux był w końcu połączoną odwrotną inżynierią Unixa, więc projekt jądra był zgodny z filozofią Kena Thompsona. Sposób na Linuksa wydaje się polegać na jak najwierniejszym naśladowaniu filozofii uniksowej, bez obciążania siebie oryginalnymi myślami.
źródło