Chcę wiedzieć, jaka jest rzeczywista różnica między Unixem a Linuksem.
- Czy dzielą to samo jądro?
- Czy Linux jest zbudowany na Uniksie?
- Czy programy napisane dla systemu Linux działają na systemach Unix i odwrotnie?
Chcę wiedzieć, jaka jest rzeczywista różnica między Unixem a Linuksem.
Odpowiedzi:
Unix to nie jedno, to nazwa dużej rodziny powiązanych systemów operacyjnych, które w różnym stopniu dzielą się historią i architekturą. Solaris, DEC Unix, IRIX, HP-UX są wariantami uniksowymi. Są one w pewnym stopniu kompatybilne z aplikacjami, ponieważ w różnym stopniu implementują standardy POSIX, co oznacza, że udostępniają podobne polecenia i interfejsy API.
Ich jądra nie są takie same, chociaż jeśli spojrzysz na „drzewo genealogiczne unixa”, zobaczysz fascynującą historię ewolucji tych wariantów, jak organizmy. Oznacza to, że zięba i jaskółka nie są tym samym zwierzęciem, ale mają ze sobą wiele wspólnego.
Linux to od podstaw przepisywanie uniksowego systemu operacyjnego. Czy programy napisane dla jednego systemu Unix / Linux w porównaniu do drugiego to złożone pytanie, ale w niektórych przypadkach tak.
Aby naprawdę zrozumieć odpowiedź, warto spojrzeć na historię obu działających systemów.
Unix został wynaleziony w AT&T Bell Labs przez Kena Thompsona. Jego kolega Dennis Ritchie przyczynił się, wynalazł język C i napisał kompilator C. Przez lata kod był również wkładem UC Berkeley, dalszych prac w AT&T, Sun, IBM i innych.
Ostatecznie został ustandaryzowany w serii publikacji o nazwie POSIX. Ogólnie kod był zastrzeżony, ponieważ był chroniony prawami autorskimi AT&T, a następnie sprzedany lub licencjonowany innym firmom, które w dużej mierze przepisały go przez lata, ale zachowały różne prawa.
Dwie gałęzie „wolnego Uniksa” pojawiły się w latach 90. Jednym z nich był Linux , który jest klonem, napisanym tak, aby zachowywał się jak Unix bez żadnego faktycznego kodu Uniksa.
Drugi oddział istnieje dzisiaj jako NetBSD , a wkrótce potem FreeBSD , a następnie znacznie później * BSD, o którym słyszałeś. Projekty te nieco różnią się od Linuksa tym, że są „częściowymi klonami”. Zawierają mieszankę „prawdziwego uniksowego” kodu źródłowego (część, na którą licencja została udzielona bezpłatnie, głównie przez UC Berkeley) oraz trochę nowo napisanego kodu „klonowania” i innego późniejszego kodu pojawiającego się jako część przepisywania lub potrzebnego do obsługi nowoczesnego oprogramowania sprzętowego i nowoczesnego Dane techniczne Posix.
Linux jest o wiele bardziej popularny, ponieważ NetBSD i FreeBSD były przez pewien czas związane ze sprawą AT&T i UCB. Chociaż rozwiązane na korzyść BSD, nigdy nie wyzdrowiały z opóźnienia, przynajmniej nie pod względem popularności.
Więc nie, Linux i komercyjny Unix nie mają wspólnego kodu jądra, chociaż komercyjny Unix i * BSD kiedyś miały ze sobą całkiem sporo wspólnego. Jądra uniksowe od licencjonowanych dostawców zawierają kod, który sami napisali, być może z jakimś oryginalnym kodem AT&T wciąż obecnym tu i tam. Jądro Linux składa się z kodu napisanego przez Linusa Torvaldsa i innych autorów.
„Oprogramowanie Unix” to oprogramowanie napisane w interfejsach API Posix i zazwyczaj działa na wszystkich wersjach systemów Unix, Linux oraz NetBSD i FreeBSD. Teoretycznie Posix SW może działać na systemach „nie-uniksowych”, ale wydaje się, że to nie działa zbyt dobrze. Obecnie „Unix” jest technicznie znakiem towarowym, ale zwykle jest używany nieformalnie jako oznaczenie zarówno komercyjnego systemu Unix, Linux, jak i rodziny BSD.
Kiedy większość ludzi mówi o Uniksie, mają na myśli „Uniksopodobny system operacyjny zgodny z POSIX”, jakim jest Linux.
Czy mają to samo jądro? Nie, Linux JEST jądrem, a nie systemem operacyjnym. Technicznie, dystrybucje Linuksa używają jądra Linuksa i GNU (patrz gnu.org) „userland”. Userland to podstawowe programy i biblioteki itp., Które łączą duże aplikacje i zadania użytkownika z niskopoziomowym interfejsem API jądra.
Czy Linux jest zbudowany na Uniksie? Nie, to klon. Został zbudowany, aby zapewnić bezpłatną, użyteczną wersję Unixa na niskim komputerze stacjonarnym.
Czy programy napisane dla systemu Linux mogą działać w systemie Unix i odwrotnie? Czasami. Na przykład we FreeBSD dostępny jest emulator Linux ABI, który w zasadzie wykrywa, że programy zostały stworzone dla Linuksa i udostępnia inny zestaw wywołań jądra. Coś podobnego jest dostępne dla Linuksa, aby uruchomić standardowe rzeczy Unix System V (lub niektóre popularne komercyjne wersje systemu Unix), ale jest to rzadko używane, ponieważ większość programów jest dostarczana jako kod źródłowy zgodny z POSIX i kompiluje się w systemie Linux bez trudności. Ponadto większość programów binarnych dla systemu Unix jest bezpośrednio dostępna dla systemu Linux. FreeBSD to mniejszy problem i nie ma tego luksusu. W systemie Linux system do ładowania plików binarnych z innych systemów jest najczęściej używany do uruchamiania programów Java, programów Windows (chociaż nie jest to zalecane) itp.
Unix jest znakiem towarowym, więc Linux nie może używać nazwy. Unix to oficjalna, stara wersja (ponieważ istnieje oficjalna wersja), która nie jest tak przyjazna dla użytkownika. Większość innych wersji Uniksa została zaprojektowana nieco lepiej, ale niekoniecznie działa tak dobrze w praktyce. To naprawdę o to chodzi. Wiele firm, które wcześniej używały Uniksa, teraz używa Linuksa.
Jeśli chcesz zobaczyć różnice w różnych systemach operacyjnych uniksopodobnych, zdobądź kopie FreeBSD, OpenSolaris i Debian. Mówię o tych dystrybucjach, ponieważ łatwiej będzie je porównać, chociaż niektóre inne, takie jak pc-bsd, nexenta i ubuntu, są prawdopodobnie prawdopodobnie ładniejsze.
Myślę, że technicznie rzecz biorąc, GNU / Linux nie jest mniejszy niż UNIX niż którykolwiek z oficjalnych systemów UNIX, ale tylko z powodów prawnych ludzie opisują Linuksa jako system podobny do UNIX , a nie tylko „UNIX”.
Jeśli chodzi o jądra, Linux jest jądrem. Zatem z definicji, jeśli system korzysta z jądra Linux, to jest to system Linux, a nie system UNIX.
Czy Linux jest zbudowany na Uniksie
Linux nie został zbudowany „ponad” Uniksem, jest zbudowany jako klon UNIX. Wszystkie różne narzędzia GNU (bash itp.) Zostały napisane od zera jako klony odpowiednich narzędzi unixowych.
Jak na ironię, Mac OS X, który ma rdzeń UNIX, jest dostarczany z bash, gcc i prawdopodobnie innymi narzędziami GNU. Jest to więc system UNIX, który zawiera części GNU, a nie na odwrót, jak można się spodziewać.
Historia UNIX Nie odpowiedź na twoje pytania, ale być może będzie interesująca.
UNIX jest nazwą chronioną prawami autorskimi Tylko duże firmy mogą używać praw autorskich i nazwy UNIX, więc IBM AIX, Sun Solaris i HP-UX są UNIX. Grupa Open utrzymuje zaufanie do znaku towarowego UNIX i zarządza programem licencjonowania znaków towarowych UNIX. Linux jest klonem UNIX
Ale jeśli weźmie się pod uwagę standardy POSIX, to Linux można uznać za UNIX. Cytat z oficjalnego pliku README jądra Linuksa: Linux jest uniksowym klonem napisanym od zera przez Linusa Torvaldsa z pomocą luźno zespolonego zespołu hakerów w całej sieci. Ma na celu zgodność z POSIX. Linux to tylko jądro
Linux to tylko jądro. Dystrybucja Linuksa obejmuje system GUI, narzędzia do instalacji i zarządzania, kompilatory, edytory itp. Dystrybucja Linuksa to czyni
Większość systemów UNIX uważanych za konkurencyjny system operacyjny.
Jak powiedziałem wcześniej, Linux jest po prostu jądrem z dystrybucją Linuksa, co czyni go kompletnym użytecznym systemem. Większość systemów UNIX jest dostarczanych z programami AZ, takimi jak edytor, kompilatory itp. Na przykład FreeBSD jest dostarczany z programami AZ. Licencja i koszt
Linux jest darmowy (jak w piwie [wolność]). W okolicy zobaczysz najlepsze wsparcie społeczności. Wiele systemów UNIX nie jest darmowych (ale zmienia się to szybko, na przykład OpenSolaris / Solaris UNIX). Przyjazny użytkownikowi
Linux jest uważany za najbardziej przyjazny dla użytkownika system UNIX, taki jak os. Ułatwia instalację karty dźwiękowej, odtwarzaczy flash i innych gadżetów na pulpicie. Perspektywa użytkownika końcowego
Różnice nie są tak duże dla przeciętnego użytkownika końcowego.