Linux è un Unix?


Risposte:


224

Dipende da cosa intendi per "Unix" e per "Linux".

  • UNIX è un marchio registrato di The Open Group . Il marchio ha avuto una storia ricca di eventi, e non è del tutto chiaro che non è generalizzato a causa dell'uso diffuso di "Unix" in riferimento a sistemi simili a Unix (vedi sotto). Attualmente Open Group concede l'utilizzo del marchio a qualsiasi sistema che superi una certificazione UNIX singola . Vedi anche Perché c'è un * quando si parla di Unix su Internet? .

  • Unix è un sistema operativo che è nato nel 1969 presso Bell Labs . Diverse aziende hanno venduto e continuano a vendere codice derivato da questo sistema originale, ad esempio AIX , HP-UX , Solaris . Vedi anche Evoluzione dei sistemi operativi di Unix .

  • Esistono molti sistemi simili a Unix, in quanto offrono interfacce simili a programmatori, utenti e amministratori. Il più antico sistema di produzione è Berkeley Software Distribution , che si è gradualmente evoluto da Unix (ovvero contenente codice derivato dall'implementazione originale) a Unix-like (ovvero con un'interfaccia simile). Esistono molti sistemi operativi basati su BSD o derivati ​​da BSD: FreeBSD , NetBSD , OpenBSD , Mac OS X , ecc. Altri esempi includono OSF / 1 (ora fuori produzione, era un sistema commerciale non basato su Unix simile a Unix), Minix(originariamente un sistema operativo simile a Unix giocattolo usato come strumento didattico, ora un sistema simile a Unix incorporato nella produzione) e, soprattutto, Linux .


  • A rigor di termini, Linux è un kernel del sistema operativo progettato come il kernel di Unix.

  • Linux è comunemente usato come nome di sistemi operativi simili a Unix che usano Linux come kernel. Poiché molti degli strumenti esterni al kernel fanno parte del progetto GNU , tali sistemi sono spesso noti come GNU / Linux . Tutte le principali distribuzioni Linux sono costituite da GNU / Linux e altri software.

  • Esistono sistemi simili a Unix basati su Linux che non usano molti strumenti GNU, specialmente nel mondo embedded, ma non credo che nessuno di essi elimini gli strumenti di sviluppo GNU, in particolare GCC .

  • Esistono sistemi operativi che hanno Linux come kernel ma non sono simili a Unix. Il più noto è Android , che non ha un'esperienza utente simile a Unix (sebbene sia possibile installare una riga di comando simile a Unix) o esperienza dell'amministratore o (principalmente) esperienza del programmatore (i programmi Android "nativi" utilizzano un'API che è completamente diverso da Unix).


70
E non dimentichiamo che GNU sta per "GNU is Not Unix"!
alex

57
"Gnu non è Unix" significa che Gnu non è basato sul codice originale di Unix, non che Gnu non vuole implementare le specifiche di Unix. Citando rms: "Free Unix! A partire da questo Giorno del Ringraziamento scriverò un sistema software completo compatibile con Unix chiamato GNU (per Gnu's Not Unix), e lo regalerò gratuitamente (1) a tutti coloro che possono usarlo."
jlliagre,

8
Se una distribuzione Linux volesse ottenere la certificazione UNIX, non dovrebbe cambiare molto e potrebbe essere così. Ma non ho sentito di nessuno che paghi tutti quei soldi per quello che, a questo punto, varrebbe così poco.
Kevin Cantu,

6
@Kevin: Caldera (ora famigerato con un altro nome) una volta ci ha lavorato, anche se non sono andati fino in fondo (sembrano aver abbandonato l'idea e spinto invece per LSB invece ben prima di aver improvvisamente dimenticato di aver mai sentito parlare di Linux).
Gilles,

4
@milkovsky No. Come spiego nella mia risposta, la parola "Linux" ha due significati. "Android è basato su Linux" è vero con significato 1 (il kernel). "Linux è simile a Unix" è vero con significato 2 (il sistema operativo).
Gilles,

58

A tutti gli effetti, una tipica distribuzione moderna di Linux (Ubuntu, Debian, Red Hat, Fedora, Slackware, ecc.) È un Unix, ma a rigor di termini, nessun sistema può pretendere di essere Unix senza essere certificato, quindi le persone dicono di essere Unix-like. Sono ispirati da Unix e portano avanti la sua cultura.

Questo vale anche per i sistemi BSD.

Mac OS X è certificato Unix, quindi è Unix sia in nome che in effetti. (ed è in realtà basato su BSD).

Va notato che poiché Linux stesso è solo un kernel, può essere utilizzato per costruire sistemi non unix-like (come Android).


1
Nota: il kernel di Mac OS X non si basa su alcun kernel BSD. La parte in modalità utente si basa su FreeBSD e in parte NetBSD a mia conoscenza.
0xC0000022L

2
Il kernel di oggi potrebbe essere piuttosto diverso dal kernel BSD, ma penso che inizialmente (almeno in parte) fosse basato su di esso.
hasen

3
Va notato che FreeBSD è un discendente diretto di ATT Unix e una volta conteneva il codice ATT Unix. Non è stato solo "ispirato" da Unix.
Rob,

2
@ 0xC0000022L e andiamo oltre ora "Le prime versioni di Mach avevano kernel monolitici, con gran parte del codice di BSD nel kernel. Mach 3.0 è stata la prima implementazione di microkernel." Quanto a me, osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html è una fonte abbastanza autorevole.
poige,

2
E per concludere: "Alcuni aspetti di cui BSD è responsabile includono: ID utente del modello di processo, autorizzazioni, criteri di sicurezza di base API POSIX, chiamate in stile BSD stack TCP / IP, socket BSD, firewall VFS e filesystem (vedere Mac OS X Filesystems per dettagli) Sistema di crittografia IPC System V vari meccanismi di sincronizzazione ". Per quanto mi riguarda, basti dire che si basa su BSD. Affronta la verità.
poige,

23

Linux è più "simile a Unix", quindi sì, in modo semplicistico, potresti chiamarlo un clone, lo stesso vale per i BSD (anche se è vero che i BSD potrebbero essere considerati più vicini a Unix che a Linux).

La cosa principale che conferisce a Linux il titolo simile a Unix è il fatto che è quasi completamente conforme agli standard w / POSIX (Portable Operating System Interface [per Unix]) che si sono accumulati nel tempo.

L'altra cosa fondamentale è l' eredità del codice , ecc. , Come dimostrato su Wikipedia, Linux non proviene effettivamente da fonti Unix, ma è praticamente costruito da zero (questo è contestato).

Quindi, essenzialmente, la cosa principale che separa Unix da Linux è la discendenza e gli standard che incontra.


1
C'è anche la specifica Unix singola da considerare.
Dennis Williamson,

Direi che i BSD sono più vicini a Unix che a Linux. A causa della licenza più liberale di BSD e del suo sviluppo ravvicinato con AT&T UNIX, un sacco di codice sorgente BSD e le sue API sono utilizzate in Unix commerciale. Il filesystem UFS in Solaris e alcuni altri UNIX commerciali provenivano direttamente da BSD. Inoltre, l'API Berkely Sockets (non necessariamente sorgente) utilizzata da tutto, incluso Linux, è stata sviluppata su BSD.
penguin359,

3
Dopo l'intera confusione tra SCO e IBM, è diventato chiaro che il kernel Linux non contiene alcun codice Unix.
vonbrand,

11

La risposta scelta la spiega in modo esauriente, ma dovresti guardare un intero documentario per conoscere tutti i dettagli tra lo sviluppo iniziale di UNIX e come Linux è uscito.

Per prima cosa devi considerare che Linux è il kernel, che è stato creato da Linus e altri programmatori. Ha scelto di rilasciarlo con la GPL, che all'epoca era una licenza rilasciata dalla FSF (RMS e altre persone), che stavano anche sviluppando il proprio kernel e GNU.

Quello che di solito chiamiamo Linux è, inizialmente, il kernel, oltre a tutti gli altri strumenti originari del progetto GNU. Questi due progetti sono storicamente diversi, perché all'epoca il kernel della gente della FSF era stato abbandonato per favorire il kernel Linux, che era molto meglio.

Ricordo che c'è un documentario, dovresti davvero guardarlo, lo trovo importante per la tua cultura di programmazione.

Un'altra cosa che devi considerare quando pensi a "* nix", è anche tutto ciò che riguarda POSIX e altre cose standardizzate dall'architettura. È oggetto di progettazione / ricerca di sistemi operativi, ma definisce esattamente come funzionano i sistemi operativi coinvolti ed è cruciale quando un kernel funziona bene con i suoi strumenti.


In realtà POSIX è ora chiamato SUS (Single Unix Specification), che è stato menzionato.
0xC0000022L

1
@STATUS POSIX era la base per SUSv2. Il gruppo Austin è stato successivamente formato come un gruppo di lavoro congiunto tra l'IEEE che ha creato POSIX e The Open Group che possiede il marchio UNIX e le specifiche UNIX. Hanno rilasciato POSIX: 2001 noto anche come SUSv3. Per quanto ne so, sono una cosa sola. POSIX è ancora in fase di sviluppo con POSIX: 2004 e POSIX: 2008, che è il nucleo di SUSv4. Non penso che POSIX sia ancora morto. en.wikipedia.org/wiki/Single_UNIX_Specification
penguin359

Capisco che SUS è POSIX con alcune aggiunte.
vonbrand,

Link a quel documentario?
Edward Torvalds,

edward torvalds Mi spiace non ricordo il titolo. Presentava principalmente RMS e sembrava un vecchio documento.
jokoon

6

Ci sono già molte risposte fantastiche, ma ho pensato che le opinioni del grande Dennis Ritchie (co-creatore di Unix) sarebbero state un complemento interessante alle altre risposte più tecniche.

Sembra che Dennis Ritchie considerasse Linux un legittimo derivato Unix. In un'intervista del 1999 per LinuxFocus.org , gli è stato chiesto,

qual è la tua opinione su tutto lo slancio di Linux e la decisione di molte aziende di iniziare a sviluppare software per esso?

La sua risposta alla domanda è stata

Penso che il fenomeno Linux sia abbastanza delizioso, perché attinge così fortemente sulla base che Unix ha fornito. Linux sembra essere tra i più sani tra i derivati ​​Unix diretti, sebbene ci siano anche i vari sistemi BSD e le offerte più ufficiali dai produttori di workstation e mainframe. Non posso fare a meno di osservare, ovviamente, il mondo derivato da Unix "free source" sembra soffrire esattamente dello stesso tipo di frammentazione e conflitto che si è verificato e si sta ancora verificando nel mondo commerciale.


1

Storicamente Linus Torvalds ha creato un clone migliorato del sistema operativo Minix. Lo sviluppo di Linux non si concentra su una piattaforma e una base di clienti specifiche e gli sviluppatori di Linux hanno una varietà di esperienze e prospettive. Sistemi operativi come HP-UX, AIX, Solaris e altri sono in gran parte perfezionati per i fornitori.

Nella comunità Linux non esiste un set standard rigoroso di strumenti o ambienti. Questa mancanza di standardizzazione porta a significative incongruenze all'interno di Linux. Per alcuni sviluppatori, la possibilità di utilizzare i risultati migliori di altri sistemi operativi è un vantaggio, ma non è sempre conveniente copiare elementi UNIX su Linux, ad esempio, quando i nomi dei dispositivi all'interno di Linux possono essere presi da AIX, mentre gli strumenti per lavorare con il file system è focalizzato su HP-UX. Incompatibilità di questo tipo si trovano anche tra diverse distribuzioni Linux.


0

Unix, originariamente UNICS (UNiplexed Infomation and Computing Service).

Unix (marchio registrato come UNIX) è una famiglia di sistemi operativi per computer multitasking e multiutente che derivano dall'AT&T Unix originale. Lo sviluppo iniziò nel 1969 e fu annunciato fuori dagli addominali Bell nell'ottobre 1973.

Varietà di varianti accademiche e commerciali di Unix di venditori come l'Università della California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX) e Sun Microsystems (Solaris).

  • BSD ( B erkeley S oftware D istribuzione) rilascia fornito una base per diversi progetti open source di sviluppo che sono in corso, ad esempio, FreeBSD, OpenBSD, NetBSD, Darwin, e TrueOS.
  • Xenix è una versione fuori produzione del sistema operativo Unix per varie piattaforme di microcomputer, concesso in licenza da Microsoft.
  • AIX ( A dvanced I nteractive e X ecutive) sviluppato e venduto da IBM per diverse delle sue piattaforme di computer.

Linux è una famiglia di sistemi operativi software gratuiti e open source costruiti attorno al kernel Linux. Il componente principale di Linux è il kernel Linux, un kernel del sistema operativo rilasciato per la prima volta il 17 settembre 1991 da Linus Torvalds.

Linux è confezionato in una forma nota come distribuzione Linux (o in breve distro) sia per uso desktop che server. Alcune delle distribuzioni Linux più popolari e tradizionali sono Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, Linux Mint, Mageia, openSUSE e Ubuntu, insieme a distribuzioni commerciali come Red Hat Enterprise Linux

L'interfaccia utente, nota anche come shell, è un'interfaccia a riga di comando (CLI), un'interfaccia utente grafica (GUI) o tramite controlli collegati all'hardware associato, che è comune per i sistemi embedded. Per i sistemi desktop, la modalità predefinita è di solito un'interfaccia utente grafica, sebbene la CLI sia comunemente disponibile attraverso le finestre dell'emulatore di terminale o su una console virtuale separata.

  • Le shell CLI sono interfacce utente basate su testo, che utilizzano il testo sia per l'input che per l'output. La shell dominante usata in Linux è la Bourne-Again Shell (bash), originariamente sviluppata per il progetto GNU.
  • Le shell della GUI sono K Desktop Environment (KDE), GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon e Xfce, sebbene esistano diverse interfacce utente aggiuntive. Le interfacce utente più popolari si basano sul sistema X Window, spesso chiamato semplicemente "X".

GNU è un sistema operativo e una vasta collezione di software per computer. GNU è composto interamente da software libero, la maggior parte dei quali è concesso in licenza in base alla GPL del Progetto GNU. GNU è un acronimo ricorsivo per "GNU's Not Unix!", Scelto perché il design di GNU è simile a Unix, ma si differenzia da Unix per essere software libero e senza codice Unix. Lo sviluppo del sistema operativo GNU è stato avviato da Richard Stallman mentre lavorava presso il Massachusetts Institute of Technology (MIT) Artificial Intelligence Laboratory nel 1983.

I componenti di base includono GNU Compiler Collection (GCC), la libreria GNU C (glibc) e GNU Core Utilities (coreutils), ma anche GNU Debugger (GDB), GNU Binary Utilities (binutils), GNU Bash shell e GNOME ambiente desktop.


-7

Linux è un sistema operativo simile a Unix sviluppato da Linus Torvalds e migliaia di altri.
BSD è un sistema operativo UNIX che per motivi legali deve essere chiamato Unix-Like.
OS X è un sistema operativo UNIX grafico sviluppato da Apple Inc.

Linux è l'esempio più importante di un sistema operativo "reale" Unix. Funziona su qualsiasi cosa e supporta molto più hardware di BSD o OS X. Una citazione interessante che ho trovato quando stavo confrontando BSD e Linux:

Linux è ciò che ottieni quando un gruppo di hacker di PC si siede e prova a scrivere un sistema Unix per PC. BSD è ciò che ottieni quando un gruppo di hacker UNIX si siede e prova a trasferire un sistema Unix sul PC.

BSD è più simile a un sistema operativo Unix di Linux. Notevole anche che Apple utilizza componenti BSD e Linux. Apple utilizza APT da Debian e Ubuntu su piattaforme iOS e OS X. Ed è basato su BSD. (Il kernel però è Darwin, che è il proprio kernel. Beastie l'ornitorinco è la mascotte di Darwin perché è un mix tra Beastie di BSD e un Platypus.)

Se si desidera un sistema operativo Unix "reale" (che funziona su qualsiasi cosa e supporta molto hardware), provare Linux.
Se vuoi supporto hardware di fascia bassa e mal di testa (so che avrò un sacco di odio ma non mi interessa), usa BSD.
Se vuoi spendere $ 1000 +, usa OS X e iOS. (Ancora una volta probabilmente avrò un sacco di odio.)

Sono un utente Linux da molto tempo, l'ho usato in continuazione dagli anni '90 ai primi anni 2000 e poi ho smesso di usarlo per un po ', ma ho iniziato a usarlo di nuovo intorno alla metà del 2012 come mio sistema operativo permanente, quindi posso consigliarlo a chiunque voglia per provare qualcosa di diverso da Windoze.


4
Dato che Linux sta cambiando di recente con Wayland / systemd / etc, si sta rimuovendo sempre di più dall'essere un sistema simile a Unix e diventare la propria entità. Si sta rendendo meno compatibile con i veri sistemi Unix e simili a Unix al punto in cui questi sistemi reali hanno sviluppato un atteggiamento "non importa" nei confronti di Linux. I tuoi "consigli" sono molto lontani dalla base e sono d'accordo con te sul fatto che non hai toccato nessuna di queste cose in 15 anni.
Rob,

11
Linux non è un sistema operativo, ma un kernel.
Martin Schröder,

3
Apple non utilizza APT di Debian. Include uno strumento completamente diverso chiamato APT (Java's Annotation Processing Tool). E la comunità di jailbreak utilizza APT come gestore di pacchetti per l'installazione di software iOS contro la volontà di Apple.
Abarnert,

4
In realtà, quasi ogni affermazione in questa risposta è sbagliata. "Funziona su molti sistemi == Unix" è ridicolo. Apple non ha mai rilasciato un sistema da $ 1000 + con iOS. BSD è una famiglia di sistemi Unix e simili a Unix, non un singolo sistema operativo. Linux è un kernel che può essere combinato con una userland di tipo Unix (come GNU), una userland di Unix ish ridotta (come eLinux o Android) o qualsiasi altra cosa tu voglia. E così via.
Abarnert,
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.