Jak system operacyjny Linux może być „oparty” na innym systemie operacyjnym Linux?

38

Ostatnio przeglądałem wiele dystrybucji Linuksa, aby dowiedzieć się, co jest w okolicy, a jedno zdanie, które się pojawia, brzmi: „[ten system operacyjny] jest oparty na [innym systemie operacyjnym]”. Na przykład:

  • Fedora oparta jest na Red Hat
  • Ubuntu opiera się na Debianie
  • Linux Mint jest oparty na Ubuntu

Dla kogoś pochodzącego ze środowiska Mac rozumiem, w jaki sposób „OS X jest oparty na Darwinie”, ale kiedy patrzę na Linux Distros, widzę, że pytam: „Czy nie wszystkie są oparte na Linuksie…?”.

W tym kontekście, co dokładnie oznacza, że ​​jeden system Linux jest oparty na innym systemie Linux?

Efemeryda
źródło
17
a Darwin opiera się na BSD. Możesz wrzucić NeXT OS inbetwixt tych dwóch ...: D
Keltari 10.10.2013
12
„Red Hat jest oparty na Fedorze”, ten jest dość niedokładny. Bardziej jak Fedora jest testem beta elementów później używanych w RedHat.
vartec,
Zasadniczo bierzesz podstawowe komponenty dystrybucji, zmieniasz to, czego chcesz (oprogramowanie, logo, nazwy, cokolwiek ...), a teraz masz „smak” lub dystrybucję opartą na innej „dystrybucji”
TheXed,
2
Najprostszym sposobem jest wybranie dokładnie takiej dystrybucji Linuksa, którą lubisz, i zmiana jednej linii, gdzieś, może po prostu /etc/motd, i voila, masz własną nową dystrybucję Linuksa. Jak Linux OS NIE może być oparty na istniejącym. To trudniejsze pytanie.
Warren P,
4
Myślę, że twoja odpowiedź jest już udzielona. Jednak tutaj jest ładna graficzna reprezentacja historii wszystkich obecnych
Dohn Joe

Odpowiedzi:

59

Linux jest jądrem , Debian jest jego dystrybucją i pakietem oprogramowania do interakcji z systemem.

Teraz mogę wziąć Debiana i zmienić logo na ekranie startowym na własne logo, a następnie moja dystrybucja oparta jest na Debianie (w bardzo prymitywny sposób). Zwykle korekty dokonywane w rozkładzie pochodnym są bardziej znaczące.

Chodzi o to, że jeśli chcesz coś zmienić w dystrybucji, możesz po prostu wziąć to, zmodyfikować według własnych upodobań, a następnie opublikować własną dystrybucję, w oparciu o istniejącą (o ile wszystkie licencje są przestrzegane).

Der Hochstapler
źródło
10
Dokładne, ale może zbyt uproszczone?
Austin T French
... oczywiście w praktyce wyprowadzony rozkład wprowadza pewne ważne widoczne zmiany, zwykle w określonym obszarze. Na przykład Ubuntu koncentruje się na dopracowaniu środowiska pulpitu. Ale wciąż większość pakietów w Ubuntu jest po prostu kopiowana z Debiana.
Jan Hudec,
2
@AthomSfere: Przepraszam, rozmawiałem przez telefon, kiedy pisałem post. Poprawiłbym to teraz, ale wygląda na to, że inne odpowiedzi zawierały wszystkie szczegóły.
Der Hochstapler,
8
@OliverSalzburg Rozmawiałeś przez telefon? Jesteś bardzo uzależniony :-D
Luc M
9
@AthomSfere KISS można również zastosować do odpowiedzi!
jsedano
32

Linux to jądro - (złożone) oprogramowanie, które współpracuje ze sprzętem i eksportuje określony interfejs programowania aplikacji (API) oraz konwencje binarne dotyczące jego precyzyjnego użycia (interfejs binarny aplikacji, ABI) dostępne dla użytkownika „ aplikacje kosmiczne.

Debian , RedHat i inne to systemy operacyjne - kompletne środowiska programowe, które składają się z jądra i zestawu programów przestrzeni użytkownika, które sprawiają, że komputer jest użyteczny, wykonując sensowne zadania (wysyłanie / odbieranie poczty, umożliwianie przeglądania Internetu, kierowanie robot itp.).

Teraz każdy taki system operacyjny, oferując przeważnie to samo oprogramowanie (na przykład nie ma tak wielu darmowych programów serwera pocztowego, przeglądarek internetowych lub środowisk komputerowych), różni się podejściem do tego, a także podanymi celami i cyklami wydawania.

Dość zazwyczaj te systemy operacyjne nazywane są „dystrybucjami”. Jest to, według IMO, nieco niepoprawny termin wynikający z faktu, że technicznie jesteś w stanie ręcznie zbudować całe wymagane oprogramowanie i zainstalować je na maszynie docelowej, więc te systemy operacyjne dystrybuują zapakowane oprogramowanie, więc nie musisz budować it (Debian, RedHat) lub ułatwiają takie budowanie (Gentoo). Zazwyczaj dostarczają również instalatora, który pomaga zainstalować system operacyjny na komputerze docelowym.

Tworzenie i obsługa systemu operacyjnego jest bardzo skomplikowanym zadaniem wymagającym złożonej i skomplikowanej infrastruktury (kolejki wysyłania, serwery kompilacji, narzędzie do śledzenia błędów i serwery archiwizacji, oprogramowanie do listy mailingowej itp. Itp.) I personelu. To oczywiście podnosi wysoką barierę w tworzeniu nowego, od podstaw systemu operacyjnego. Na przykład Debian zapewnia około Pakiety 37k dla około pięciu architektur sprzętowych - sprawdź, ile pracy włożono w obsługę tych rzeczy.

Jeśli jednak ktoś uważa, że musi utworzyć nowy system operacyjny z jakiegokolwiek powodu, dobrym pomysłem może być wykorzystanie istniejącej podstawy do budowania. I właśnie tam powstają systemy operacyjne oparte na innych systemach operacyjnych. Na przykład Ubuntu opiera się na Debianie, po prostu importując z niego większość pakietów i ponownie pakując tylko niewielki ich podzbiór, a także pakując własne, zapewniając własną grafikę, ustawienia domyślne, dokumentację itp.

Zauważ, że istnieją odmiany tego „opartego na” rzeczy. Na przykład Debian wspiera tworzenie „czystych mieszanek” samego siebie: dystrybucje, które używają Debiana raczej bezpośrednio, i po prostu dodają kilka pakietów i innych rzeczy przydatnych tylko dla raczej niewielkich grup użytkowników, takich jak osoby zajmujące się edukacją, medycyną lub muzyką przemysł itp.

Kolejną niespodzianką jest to, że nie wszystkie te systemy operacyjne są oparte na systemie Linux. Na przykład, Debian dostarcza także jądra FreeBSD i Hurd. Mają dość małe grupy użytkowników, ale i tak.

kostix
źródło
8

Red Hat, Debian itp. To wszystkie dystrybucje („dystrybucje”) Linuksa.

Pamiętaj, że Linux jest technicznie tylko jądrem, które jest pojedynczą częścią działającego i użytecznego systemu.

Będziesz potrzebował podstawowych narzędzi, decyzji dotyczących miejsca w systemie, mechanizmu instalowania i aktualizacji oprogramowania oraz konwencji / standardów (takich jak katalog, do którego trafiają programy), aby to połączyć.

Większość klasycznych narzędzi GNU jest często uważana za podstawową przez wiele dystrybucji, dlatego Debian na przykład nazywa to GNU / Linux. Mając prawie wszystko inne, istnieje wiele możliwości wyboru. A ponieważ Linux, narzędzia GNU i wiele rzeczy działających pod Linuksem jest wolnym oprogramowaniem, każdy może stworzyć nową dystrybucję w dowolnym momencie. W tym wywodzą się z istniejącej dystrybucji, jeśli nie zawierała niczego chronionego prawem autorskim lub zastrzeżonym.

Obrazy i logo są często czymś, co jest chronione znakiem towarowym / prawem autorskim i zwykle nie można ich używać bezpośrednio w dystrybucji pochodnej, chyba że przestrzegasz warunków tego, kto jest ich właścicielem. To samo oprogramowanie zwykle może mieć licencję GPL lub podobną do GPL.

Jedną z głównych rzeczy, które zazwyczaj są specyficzne dla dystrybucji, jest menedżer pakietów lub metoda utrzymywania, testowania i dystrybucji oprogramowania. Wyprowadzone dystrybucje są zwykle zgodne z ich menedżerami pakietów „upstream”. Nic jednak nie powstrzymuje cię przed ręczną instalacją programu w dowolnej dystrybucji Linuksa.

Zazwyczaj oznacza to, że instalujesz oprogramowanie w ten sam sposób, używając tego samego menedżera pakietów, a lokalizacje plików wykonywalnych i plików konfiguracyjnych będą w tym samym miejscu.

LawrenceC
źródło
7

W systemie Linux istnieją dystrybucje lub dystrybucje. Dosłownie setki z nich.

Linux jest oprogramowaniem typu open source, więc każdy (lub dowolna grupa lub firma) może modyfikować dowolną część systemu operacyjnego. To dlatego niektóre wersje mają różne instalatory ( .debvs. RPM lub tylko tar) i różne polecenia ( apt-getvs. yum).

Większość dystrybucji wybiera docelowe zastosowanie lub konkretne zastosowania i ewoluuje wokół tego.

Na przykład Redhat i jego krewni są zorientowani na serwer. Większość systemów operacyjnych jest stabilna lub szybka.

Debian ma być łatwiejszy w użyciu, dlatego obsługuje .debpliki, które są łatwymi pakietami instalacyjnymi.

Ubuntu wzięło bazę Debiana i dodało kod i pakiety, aby uczynić ją dobrą pierwszą dystrybucją Linuksa.

Mint następnie poszedł i usunął część kodu Ubuntu, aby stworzyć szybszy system operacyjny podobny do Ubuntu, ale także bardziej tradycyjny pulpit, gdy Ubuntu zmienił menedżera pulpitu na Unity.

Oto szczegółowe drzewo genealogiczne GNU / Linux: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

Austin T French
źródło
1
AFAIK, sudojest używany wszędzie. yumjego odpowiednikiem jest apt-getlubaptitude
Izkata,
1
@Izkata Tak, przepraszam. Minęło trochę czasu, a kawa była dziś słaba;)
Austin T French
1
Mylisz jądro (Linux) z resztą oprogramowania zagregowanego w dystrybucjach.
Matteo Italia,
2

Rozszerzając powyższe odpowiedzi. Linux jest tylko jądrem, większość poleceń na poziomie systemu (gcc, grep, bison) została pierwotnie napisana przez projekt GNU, większość aplikacji na poziomie użytkownika (XFCE, Apache, XMMS) jest napisana przez osoby trzecie.

Kiedy dystrybucja była zwykle tworzona we wczesnych dniach, jądro było dołączane do poleceń na poziomie systemu oraz podzbioru aplikacji użytkownika i komponentów serwera. Tak jest do dzisiaj, ale wiele nowych dystrybucji nie chce powtarzać wysiłków, aby wszystko dobrze grało razem, więc biorą podstawową dystrybucję, taką jak Debian, CentOS, Slackware, i dodają lub odejmują aplikacje użytkownika, takie jak GNOME, KDE , LXDE itp. Mogą także pisać własne menu i wprowadzać własne logo i tła do dystrybucji (SUSE, PCLinux itp.). Mogą iść dalej i tworzyć aplikacje specyficzne dla dystrybucji, takie jak menedżery pakietów lub niestandardowe interfejsy użytkownika.

Więc jeśli powiesz na przykład, że Ubuntu jest oparty na Debianie, masz techniczną rację, ale w dzisiejszych czasach lepiej byłoby powiedzieć, szczególnie w przypadku Ubuntu, że pochodzi on z Debiana, ponieważ zmiany w Debianie mogą, ale nie muszą, znaleźć się w Ubuntu.

To powinno pomóc w wizualizacji tego, o czym mówię, pokazuje, jak kilka ustalonych dystrybucji zostało podzielonych na inne. Chociaż nie jest w 100% dokładny, daje pomysł.

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

Ten obraz jest w 100% dokładny według mojej wiedzy i stanowi oś czasu wszystkich dystrybucji Linuksa i pokazuje, skąd pochodzą. Obecnie istnieje tylko niewielka garstka mniej niż sześciu dystrybucji, które mogą prześledzić swoje korzenie od początku. Według tej mapy jest tylko 2, Redhat i Debian, nawet mój ukochany Slackware nie był oryginałem.

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png

Matty
źródło
1

Mac OS X jest oparty na systemie Darwin w tym sensie, że działa na nim. Można powiedzieć, że jest zależny od Darwina w czasie wykonywania.

Ubuntu opiera się na Debianie w tym sensie, że jest to praca pochodna.

Jeśli weźmiesz pakiet Debiana i zbudujesz system, pakiety i skrypty Debiana i tak dalej, i stworzysz własną dystrybucję podobną do Debiana, to masz coś opartego na Debianie.

Użytkownicy twojego systemu znajdą duże podobieństwa do Debiana (na przykład, jak system się instaluje, jak aktualizuje się pakiety lub jak kształtuje się konfiguracja systemu /etc).

Debian jest również oparty na Debianie: najnowsza wersja Debian jest oparta na poprzedniej wersji Debiana.

Kaz
źródło
0

Linux to tylko podstawowa część, która zapewnia dostęp do sprzętu komputerowego. Na tym składa się zwykle biblioteka GNU C, na której składają się wszystkie polecenia i oprogramowanie, z którego korzystasz (w tym graficzny interfejs użytkownika).

Co dzieje się w świecie, w którym niektóre firmy nie blokują oprogramowania, różne grupy tworzą różne zestawy oprogramowania oparte na dwóch podstawowych składnikach: jądrze Linux i bibliotece GNU C. Te dwa można znaleźć prawie w każdym systemie.

Potocznie nazywamy te wszystkie systemy operacyjne „Linux” lub „Linux” i wszystkie one są bardzo podobne ze względu na porozumienie w sprawie różnych standardów.

Na marginesie, jądro Darwina w OS X zostało opracowane z BSD (starszego niż Linux).

Angelo
źródło