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?
linux
unix
operating-systems
Xinus
źródło
źródło
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.
źródło
Nie, nie, tak (źródło)
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.
źródło
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.
źródło
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.
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ć.
źródło
Historia UNIX Nie odpowiedź na twoje pytania, ale być może będzie interesująca.
źródło
Od NixCraft
źródło