Linux zyskał swoje korzenie w systemie Unix, jednak nie należy go mylić z Unixem – mimo że wykazuje wiele podobieństw. W artykule przybliżymy kluczowe różnice między tymi dwoma znanymi systemami operacyjnymi.
Podobieństwa i różnice
Linux jest darmowym systemem operacyjnym o otwartym kodzie źródłowym, podczas gdy Unix to produkt komercyjny, który jest oferowany przez różnych dostawców. Każdy z nich ma swoją wersję, zazwyczaj dostosowaną do konkretnego sprzętu. Unix jest kosztownym i zamkniętym systemem. Mimo że Linux i Unix oferują podobne funkcje, ich różnice są bardziej złożone, wykraczające poza aspekty techniczne i architektoniczne. Aby lepiej zrozumieć te systemy, warto poznać ich historię.
Historia Unix
Unix ma ponad pięćdziesięcioletnią historię. Został stworzony przez Digital Equipment Corporation (DEC) w języku programowania assembler dla komputera PDP-7 jako projekt nieoficjalny w Bell Labs, które wówczas należały do AT&T. Wkrótce system został przeniesiony na komputer PDP-11/20, co umożliwiło jego dalszy rozwój i dystrybucję. Przeniesienie kodu do C prowadziło do powstania wersji 4 w 1973 roku, co znacząco ułatwiło migrację systemu na różne architektury komputerowe.
W 1973 roku Ken Thompson oraz Dennis Ritchie zaprezentowali Unix na konferencji, co spowodowało lawinowe zainteresowanie kopią systemu. Ponieważ AT&T nie mogło sprzedawać systemów operacyjnych, Unix został rozpowszechniony jako kod źródłowy z licencją, a opłaty były ograniczone do kosztów przesyłki i „rozsądnej opłaty licencyjnej”. Użytkownicy otrzymali kod źródłowy, co dawało im możliwość modyfikacji, mimo braku wsparcia technicznego.
Unix szybko zdobył popularność w środowisku akademickim. W 1975 roku Ken Thompson spędził czas w Uniwersytecie Kalifornijskim w Berkeley, gdzie wspólnie z absolwentami zaczęli rozwijać lokalną wersję systemu. To zainicjowało powstanie Berkeley Software Distribution (BSD), która zawierała zestaw programów i modyfikacji, mogących być dodawanych do istniejącego Uniksa, chociaż nie stanowiła samodzielnego systemu. Późniejsze wersje BSD zaczęły funkcjonować jako pełnoprawne systemy Unix.
W rezultacie pojawiły się dwie główne gałęzie Uniksa: strumień AT&T oraz BSD. Inne wersje, takie jak AIX, HP-UX, oraz Oracle Solaris, są ich potomkami. W 1984 roku AT&T uzyskało możliwość komercyjnego wytwarzania i sprzedaży Uniksa.
Powstanie Linuksa
Reagując na komercjalizację Uniksa, która ograniczała wolność użytkowników komputerów, Richard Stallman zdecydował się stworzyć system operacyjny oparty na zasadach wolności, co obejmowało możliwość modyfikacji kodu źródłowego oraz redystrybucji jego zmienionych wersji.
Stallman zamierzał stworzyć system operacyjny, który zreplikowałby funkcjonalność Uniksa, nie wykorzystując jednak jego kodu źródłowego. W 1983 roku założył Projekt GNU w celu opracowania tego systemu. W 1985 roku powstała Free Software Foundation, mająca na celu wspieranie i finansowanie projektu GNU.
Wszystkie komponenty systemu GNU rozwijały się pomyślnie, z wyjątkiem jądra. Twórcy projektu pracowali nad mikrojądrem znanym jako GNU Hurd, jednak postęp był powolny. Bez jądra system operacyjny nie mógłby powstać.
W 1987 roku Andrew S. Tanenbaum zaprezentował system operacyjny o nazwie MINIX (mini-Unix), stworzony jako narzędzie edukacyjne dla studentów uczących się projektowania systemów operacyjnych. MINIX był funkcjonalnym systemem operacyjnym, ale miał pewne ograniczenia, głównie w zakresie systemu plików, co było konieczne, aby zmieścić go w ramach jednego semestru studiów.
W celu lepszego zrozumienia działania procesora Intel 80386, student informatyki Linus Torvalds stworzył prosty kod do przełączania zadań jako część swojego projektu edukacyjnego. Ten kod stał się fundamentem jądra Linuksa. Torvalds miał doświadczenie z MINIX, a jego pierwotne jądro zostało opracowane na tym systemie, używając kompilatora GCC od Stallmana.
Torvalds postanowił stworzyć własny system operacyjny, który przezwyciężyłby ograniczenia MINIX. W 1991 roku ogłosił na grupie Usenet, poszukując uwag i sugestii dotyczących swojego projektu.
Linux nie jest klonem Uniksa. Jeśli byłby klonem, wówczas byłby Unixem. Zamiast tego, Linux został zaprojektowany od podstaw, aby przypominać Unix i spełniać jego funkcje. To bardziej replikacja niż klonowanie.
W rzeczy samej, Linux stanowi jądro poszukujące systemu operacyjnego, podczas gdy GNU to system operacyjny poszukujący jądra. Z perspektywy czasu, to co się wydarzyło, wydaje się być nieuniknione i miało ogromny wpływ na świat.
Rozwój systemów
Dystrybucja Linuksa składa się z wielu różnych elementów pochodzących z różnych źródeł. Jądro Linuksa, pakiet podstawowych narzędzi GNU oraz aplikacje użytkownika łączą się, tworząc gotową dystrybucję. Wymaga to pracy osób zajmujących się konserwacją i zarządzaniem, podobnie jak twórcy jądra i aplikacji. Opiekunowie dystrybucji oraz społeczności odpowiadają za rozwój i utrzymanie dystrybucji Linuksa w taki sam sposób, jak programiści jądra.
Linux jest wynikiem rozproszonej współpracy, w której uczestniczą zarówno nieodpłatni wolontariusze, jak i organizacje takie jak Canonical oraz Red Hat, a także osoby sponsorowane przez przemysł.
Każdy komercyjny system Unix jest rozwijany jako spójna całość przy użyciu własnych lub ściśle kontrolowanych zewnętrznych narzędzi programistycznych. Często dysponują unikalnym jądrem, które zostało zaprojektowane specjalnie dla sprzętu dostarczanego przez producenta.
Wolne i otwarte wersje BSD, takie jak FreeBSD, OpenBSD oraz DragonFly BSD, wykorzystują kombinację starszego kodu BSD oraz nowego. Projekty te są obecnie wspierane przez społeczność i zarządzane podobnie do dystrybucji Linuksa.
Standardy i zgodność
Ogólnie rzecz biorąc, Linux nie jest zgodny z Pojedynczą specyfikacją systemu Unix (SUS) ani z POSIX. Stara się jednak spełniać oba standardy, nie będąc ich niewolnikiem. Istnieją nieliczne wyjątki, takie jak Inspur K-UX, chiński system Linux zgodny z POSIX.
Prawdziwy Unix, podobnie jak jego komercyjne wersje, jest zgodny z tymi standardami. Niektóre odmiany BSD, w tym wszystkie wersje macOS z wyjątkiem jednej, są zgodne z POSIX. Nazwy wariantów, takie jak AIX, HP-UX oraz Solaris, są znakami towarowymi odpowiednich organizacji.
Prawa autorskie i znaki towarowe
Linux jest zarejestrowanym znakiem towarowym, który należy do Linusa Torvaldsa. Znak towarowy jest zarządzany przez Linux Foundation. Jądro Linuksa oraz podstawowe narzędzia są wydawane na różnych zasadach, w tym GNU „Copyleft” oraz GNU General Public License, co sprawia, że kod źródłowy jest dostępny bezpłatnie.
Unix jest zastrzeżonym znakiem towarowym Open Group. Jest chroniony prawem autorskim, a jego źródło jest zamknięte.
FreeBSD jest chronione prawem autorskim przez Projekt FreeBSD, a kod źródłowy jest dostępny.
Różnice w użytkowaniu
Pod względem doświadczenia użytkownika, interfejs wiersza poleceń nie różni się znacznie. Dzięki standardom i zgodności z POSIX, oprogramowanie stworzone dla Uniksa może być przekompilowane na systemie Linux z niewielkim wysiłkiem. Przykładowo, skrypty powłoki mogą być używane w systemie Linux z minimalnymi modyfikacjami lub wręcz bez nich.
Niektóre narzędzia wiersza poleceń mogą mieć nieco różne opcje, jednak zasadniczo ten sam zestaw narzędzi dostępny jest w obu systemach. Na przykład, IBM AIX oferuje AIX Toolbox for Linux Applications, co pozwala administratorom na instalację setek pakietów GNU, takich jak Bash czy GCC.
Różne wersje Uniksa i Linuksa oferują różne graficzne interfejsy użytkownika. Użytkownik Linuksa przyzwyczajony do GNOME lub MATE może potrzebować chwili, aby zapoznać się z KDE lub Xfce, ale szybko się przyzwyczai. Podobnie jest z różnymi graficznymi interfejsami dostępnymi w systemie Unix, takimi jak Motif, Common Desktop Environment, czy X Windows System. Każdy z tych interfejsów jest na tyle podobny, że osoba znająca podstawowe zasady korzystania z okien, menu i ikon bez trudu się odnajdzie.
Więcej różnic można zauważyć podczas administracji systemem. Na przykład różne systemy inicjalizacji są stosowane w odmianach Unix System V oraz BSD. Wolne wersje BSD kontynuowały używanie schematów startowych BSD, podczas gdy dystrybucje Linuksa najczęściej korzystają z systemu inicjalizacji pochodzącego z Unix System V lub systemd.
Manualna skrzynia vs. automatyczna
Umiejętność obsługi jednego systemu często przekłada się na zdolność do obsługi drugiego – chociaż na początku mogą wystąpić pewne trudności.
Pomijając kwestię ceny, różnice w filozofii, licencjonowaniu, modelu rozwoju, organizacji społeczności oraz stylu zarządzania są znacznie bardziej istotne niż różnice w poleceniach wiersza poleceń, jak chociażby w przypadku programu grep.
Najważniejsze różnice nie są widoczne na ekranie.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.