Come può un sistema operativo Linux essere "basato su" un altro sistema operativo Linux?


38

Di recente ho esaminato diverse distro Linux per farmi un'idea di ciò che c'è intorno e una frase che continua a venire è che "[questo sistema operativo] è basato su [un altro sistema operativo]". Per esempio:

  • Fedora si basa su Red Hat
  • Ubuntu si basa su Debian
  • Linux Mint si basa su Ubuntu

Per qualcuno che proviene da un ambiente Mac capisco come "OS X è basato su Darwin", tuttavia quando guardo le distribuzioni Linux, mi ritrovo a chiedere "Non sono tutti basati su Linux ..?"

In questo contesto, cosa significa esattamente che un sistema operativo Linux sia basato su un altro sistema operativo Linux?


17
e Darwin si basa su BSD. Potresti lanciare il sistema operativo NeXT tra questi due ...: D
Keltari

12
"Red Hat si basa su Fedora", quello è abbastanza impreciso. Più come Fedora è il beta test per gli elementi successivamente utilizzati in RedHat.
Vartec,

Fondamentalmente prendi una componente di base delle distribuzioni, cambi ciò che vuoi (software, loghi, nomi, qualunque cosa ...) e ora hai un "sapore", o una distribuzione basata sull'altra "distro"
TheXed,

2
Il modo più semplice è prendere l'esatta distribuzione Linux che ti piace e cambiare una riga, da qualche parte, forse solo /etc/motde voilà, hai la tua nuova distribuzione Linux. In che modo un sistema operativo Linux NON può essere basato su uno esistente? Questa è la domanda più difficile.
Warren P

4
Penso che la tua risposta abbia già ricevuto risposta. Comunque, ecco una bella rappresentazione grafica della storia di tutte le distro Linux che sono in giro: upload.wikimedia.org/wikipedia/commons/1/1b/…
Dohn Joe,

Risposte:


59

Linux è un kernel , Debian è una distribuzione di quel kernel e un sacco di software per interagire effettivamente con il sistema.

Ora posso prendere Debian e cambiare il logo nella schermata di avvio con il mio logo e quindi la mia distribuzione si basa su Debian (in un modo molto primitivo). In genere, le rettifiche apportate in una distribuzione derivata sono più sostanziali.

Il punto è che se vuoi cambiare qualcosa riguardo a una distribuzione, puoi semplicemente prendere quella, modificarla a tuo piacimento e quindi pubblicare la tua distribuzione, basata su quella esistente (purché tutte le licenze siano rispettate).


10
Accurato, ma forse troppo semplicistico?
Austin T, francese,

... ovviamente in pratica la distribuzione derivata apporta alcune importanti modifiche visibili all'utente, di solito in un'area specifica. Ad esempio Ubuntu si concentra sulla lucidatura dell'ambiente desktop. Ma la maggior parte dei pacchetti in Ubuntu sono semplicemente copiati da Debian.
Jan Hudec,

2
@AthomSfere: scusa, ero sul mio telefono quando ho scritto il post. Lo migliorerei ora, ma sembra che le altre risposte abbiano coperto tutti i dettagli.
Der Hochstapler,

8
@OliverSalzburg Eri al telefono? Sei molto dipendente :-D
Luc M

9
@AthomSfere KISS può essere applicato anche alle risposte!
jsedano,

32

Linux è un kernel - un (complesso) software che funziona con l'hardware ed esporta una certa Application Programming Interface (API) e convenzioni binarie su come usarlo con precisione (Application Binary Interface, ABI) disponibile per "user- spazio "applicazioni.

Debian , RedHat e altri sono sistemi operativi : ambienti software completi costituiti dal kernel e da una serie di programmi per lo spazio utente che rendono il computer utile mentre svolgono compiti sensibili (invio / ricezione di posta, che consente di navigare in Internet, guidare un robot ecc.).

Ora, ciascuno di questi sistemi operativi, pur fornendo per lo più lo stesso software (non ci sono così tanti programmi server di posta gratuiti o browser Internet o ambienti desktop, ad esempio) differiscono negli approcci per farlo e anche negli obiettivi dichiarati e nei cicli di rilascio.

In genere, questi sistemi operativi sono chiamati "distribuzioni". Questo è, IMO, un termine un po 'sbagliato derivante dal fatto che sei tecnicamente in grado di costruire manualmente tutto il software richiesto e installarlo su una macchina di destinazione, quindi questi sistemi operativi distribuiscono il software in pacchetto in modo che tu non abbia bisogno di costruire esso (Debian, RedHat) o facilitano tale costruzione (Gentoo). Di solito forniscono anche un programma di installazione che aiuta a installare il sistema operativo su un computer di destinazione.

Realizzare e supportare un sistema operativo è un compito molto complicato che richiede un'infrastruttura complessa e complessa (code di upload, server di compilazione, un localizzatore di bug e server di archivio, software di mailing list ecc. Ecc. Ecc.) E personale. Ciò ovviamente solleva un alto limite per la creazione di un nuovo sistema operativo da zero. Ad esempio, Debian fornisce ca. Pacchetti 37k per circa cinque architetture hardware: scopri quanto lavoro è stato impiegato per supportare questa roba.

Tuttavia, se qualcuno pensa di dover creare un nuovo sistema operativo per qualsiasi motivo, potrebbe essere una buona idea utilizzare una base esistente su cui basarsi. Ed è esattamente qui che nascono i sistemi operativi basati su altri sistemi operativi. Ad esempio, Ubuntu si basa su Debian semplicemente importando la maggior parte dei pacchetti da esso e riconfezionando solo un piccolo sottoinsieme di essi, oltre a impacchettarne i propri, fornendo la propria grafica, le impostazioni predefinite, la documentazione ecc.

Nota che ci sono variazioni a questa cosa "basata su". Ad esempio, Debian promuove la creazione di "pure miscele" di sé: distribuzioni che usano Debian piuttosto direttamente, e aggiungono solo un mucchio di pacchetti e altre cose utili solo per gruppi piuttosto piccoli di utenti come quelli che lavorano nell'istruzione o in medicina o musica industria ecc.

Un'altra svolta è che non tutti questi sistemi operativi sono basati su Linux. Ad esempio, Debian fornisce anche kernel FreeBSD e Hurd. Hanno gruppi di utenti piuttosto piccoli ma comunque.


8

Red Hat, Debian, ecc. Sono tutte distribuzioni ("distro") di Linux.

Ricorda che Linux è tecnicamente solo il kernel, che è una singola parte di un sistema funzionante e utile.

Avrai bisogno di utility di base, decisioni su dove vivono le cose nel sistema, un meccanismo per l'installazione e l'aggiornamento del software e convenzioni / standard (come la directory in cui vanno i programmi) per legare tutto ciò.

La maggior parte delle versioni GNU delle utility classiche sono spesso considerate di base da molte distribuzioni ed è per questo che Debian, ad esempio, la chiama GNU / Linux. Con quasi tutto il resto, ci sono molte scelte. E poiché Linux, le utility GNU e molte cose che funzionano sotto Linux sono software libero, chiunque può creare una nuova distribuzione ogni volta che lo desidera. L'inclusione deriva da una distro esistente se tale distro non ha incluso alcun diritto d'autore o proprietario.

Immagini e loghi sono spesso marchi registrati / protetti da copyright e di solito non possono essere utilizzati direttamente in una distribuzione derivata a meno che non si obbediscano ai termini e alle condizioni di chi lo possiede. Lo stesso software di solito può essere se è concesso in licenza GPL o GPL.

Una cosa importante che di solito è specifica per la distribuzione è il gestore di pacchetti o il metodo con cui il software viene gestito, testato e distribuito. Le distribuzioni derivate di solito sono compatibili con i loro gestori di pacchetti "upstream". Tuttavia, nulla ti impedisce di installare manualmente il programma su qualsiasi distribuzione Linux.

In genere questo significa che installerai il software allo stesso modo usando lo stesso gestore di pacchetti, e le posizioni degli eseguibili e dei file di configurazione saranno nello stesso posto.


7

Con Linux ci sono distribuzioni o distribuzioni. Letteralmente a centinaia.

Linux è Open source, quindi chiunque (o qualsiasi gruppo o azienda) può modificare qualsiasi parte del sistema operativo che desidera. Questo è il motivo per cui alcune versioni hanno installatori diversi ( .debvs. RPM o semplicemente tar) e comandi diversi ( apt-getvs. yum).

La maggior parte delle distro sceglie un uso mirato o usi specifici e una sorta di evoluzione attorno a quello.

Ad esempio Redhat e i suoi parenti sono orientati al server. Gran parte del sistema operativo è progettato per essere stabile o veloce.

Debian è pensato per essere più facile da usare, quindi supporta .debfile che sono pacchetti di facile installazione.

Ubuntu ha preso la base Debian e ha aggiunto codice e pacchetti per renderlo una buona prima distribuzione Linux.

Mint andò quindi a rimuovere parte del codice Ubuntu per rendere un sistema operativo più veloce simile a Ubuntu ma più anche un desktop tradizionale quando Ubuntu cambiò il desktop manager in Unity.

Ecco un albero genealogico GNU / Linux dettagliato: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg


1
AFAIK, sudoè usato ovunque. yumL 'equivalente è apt-getoaptitude
Izkata il

1
@Izkata Sì, scusa. È passato un po 'di tempo e il caffè era debole stamattina;)
Austin T francese

1
Stai confondendo il kernel (Linux) con il resto del software aggregato in distribuzioni.
Matteo Italia,

2

Espandendo le risposte sopra. Linux è solo il kernel, la maggior parte dei comandi a livello di sistema (gcc, grep, bison) sono stati originariamente scritti dal progetto GNU, la maggior parte delle applicazioni a livello utente (XFCE, Apache, XMMS) sono scritte da terze parti.

Quando una distribuzione veniva in genere creata nei primi giorni, il kernel era in bundle con i comandi a livello di sistema e un sottoinsieme di applicazioni utente e componenti server. Questo è ancora vero oggi, ma molte delle nuove distribuzioni non vogliono ripetere lo sforzo di far funzionare bene tutto insieme, quindi prendono una distribuzione di base come Debian, CentOS, Slackware e aggiungono o sottraggono applicazioni utente come GNOME, KDE , LXDE, ecc. Possono anche scrivere menu personalizzati e iniettare i propri loghi e sfondi nella distribuzione (SUSE, PCLinux, ecc.). Possono andare oltre e creare applicazioni specifiche di distribuzione come gestori di pacchetti o front-end personalizzati.

Quindi, quando dici ad esempio che Ubuntu è basato su Debian, sei tecnicamente corretto, ma al giorno d'oggi sarebbe meglio dire, specialmente nel caso di Ubuntu, che deriva da Debian poiché le modifiche a Debian possono o meno trovare la loro strada Ubuntu.

Questo dovrebbe aiutare a visualizzare ciò di cui sto parlando un po ', mostra come diverse distribuzioni stabilite siano state biforcate in altre. Sebbene non sia preciso al 100%, dà un'idea.

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

Questa immagine è accurata al 100% per quanto ne sappia ed è una sequenza temporale di tutte le distribuzioni di Linux e mostra da dove provengono. In questi giorni ci sono solo una manciata molto piccola, meno di sei, distribuzioni che possono risalire alle loro radici all'inizio. Secondo questa mappa ce ne sono solo 2, Redhat e Debian, nemmeno il mio amato Slackware era un originale.

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


1

Mac OS X si basa su Darwin, nel senso che funziona su Darwin. Ha una dipendenza di runtime da Darwin, per così dire.

Ubuntu si basa su Debian nel senso che è un lavoro derivato.

Se prendi il pacchetto Debian e costruisci il sistema, i pacchetti e gli script Debian e quant'altro, e fai la tua distribuzione simile a Debian, allora hai qualcosa basato su Debian.

Gli utenti del tuo sistema troveranno grandi somiglianze con Debian (ad esempio, come viene installato il sistema, come vengono aggiornati i pacchetti o come viene configurata la configurazione del sistema /etc).

Anche Debian si basa su Debian: l'ultima versione di Debian si basa sulla versione precedente di Debian.


0

Linux è solo la parte fondamentale che ti dà accesso all'hardware del computer. Questa è la libreria GNU C, su cui sono sovrapposti tutti i comandi e il software a cui sei abituato (inclusa qualsiasi interfaccia utente grafica).

Ciò che accade in un mondo in cui il software non è bloccato da alcune società, diversi gruppi mettono insieme un diverso set di software tutti basati sui due componenti principali: il kernel Linux e la GNU C Library. Quei due si trovano praticamente in ogni sistema.

Colloquialmente, chiamiamo tutti questi sistemi operativi "Linux" o "basati su Linux" e sono tutti molto simili a causa di un accordo su vari standard.

In una nota a margine, il kernel Darwin di OS X è attualmente sviluppato da BSD (più vecchio di Linux).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.