Qualunque differenza di base tra Unix e Linux nella progettazione e in altri aspetti? [chiuso]

23

Continuo a leggere questa frase:

Linux is a Unix-like system, but it is not Unix.

Non so qual è la vera differenza tra i due. So che Linux ha ricevuto molte idee da Unix e le licenze delle due sono diverse. A parte questo, visto che non sono un esperto in nessuno dei due, voglio sapere se ci sono differenze fondamentali tra loro nel design o altri aspetti significativi.

    
posta Gnijuohz 09.04.2012 - 05:16
fonte

8 risposte

29

Un sistema "Unix like" potrebbe essere pienamente conforme alla Specifica UNIX singola , il nome collettivo degli standard per cosa si qualifica come un sistema Unix, ma allo stesso tempo Unix è un marchio registrato di The Open Group e venditori di sistemi simili a Unix è necessario che i loro sistemi registrati ufficialmente siano qualificati come Unix. Attualmente i sistemi UNIX 03 registrati sono:

  • Apple Inc.: Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers
  • Apple Inc.: Mac OS X Version 10.6 Snow Leopard on Intel-based Macintosh computers
  • Fujitsu Limited: Solaris™10 Operating System on Fujitsu PRIMEPOWER® 64-bit SPARC® Based Platforms
  • Hewlett-Packard Company: HP-UX 11i V3 Release B.11.31 or later on HP Integrity Servers
  • IBM Corporation: AIX 5L for POWER V5.2 dated 8-2004 or later with APARs: IY59610, IY60869, IY61405 with VAC 6.0.0.8 or later on pSeries CHRP systems
  • IBM Corporation: AIX 5L for POWER V5.3 dated 7-2006 or later on Systems using CHRP system architecture with POWER™processors
  • IBM Corporation: AIX 6 Operating System V6.1.2 with SP1 or later on Systems using CHRP system architecture with POWER™ processors and 2, 8 or 128 port async cards
  • Oracle Corporation: Oracle Solaris 11 FCS and later on SPARC-based platforms, 32-bit and 64-bit and on X86-based platforms, 32-bit and 64-bit
  • Oracle Corporation: Solaris 10 Operating System plus patch 118844-06 for X86 and on, on 64-bit X86 based systems
  • Oracle Corporation: Solaris 10 Operating System and on, on 32-bit and 64-bit SPARC based systems
  • Oracle Corporation: Solaris 10 Operating System and on, on 32-bit X86 based systems

I fornitori di sistemi Unix open source (principalmente Linux e FreeBSD) in genere non si registrano con The Open Group, sia per evitare i costi della certificazione o, beh, perché non trovano molto valore nel farlo. In teoria, è del tutto possibile che un sistema simile a Unix sia tecnicamente Unix, e manca solo la certificazione.

La Linux Foundation, d'altra parte, ha creato la Base standard Linux , un ISO standard , nel tentativo di standardizzare Linux. Conformità con POSIX è al centro sia di SUS che di LSB, mantenendo in qualche modo il collegamento tra Unix e Linux.

I sistemi Unix e Unix tendono ad essere più simili dei diversi, in teoria tutti i più diffusi gusti Unix, registrati o meno, sono conformi a POSIX (completo o prevalentemente), quindi condividono un'interfaccia di programmazione, shell e utilità (e un molte altre cose). IEEE e The Open Group mantengono una copia liberamente disponibile dell'ultima versione, POSIX.1-2008 , dove puoi trovare maggiori informazioni su cosa significhi effettivamente la conformità POSIX.

Ora, a parte le ragioni legali e tecniche, Linux ha ereditato il mantra "non Unix" dalla sua associazione con GNU , un sistema operativo simile a Unix avviato da Richard Stallman. GNU sta per "GNU's not Unix", poiché le intenzioni di Stallman erano di costruire un sistema compatibile Unix che fosse gratuito, e per farlo non dovrebbe contenere codice Unix, dato che Unix è proprietario.

I primi sviluppatori di Linux iniziarono a trasferire strumenti GNU su Linux, e il sistema risultante fu riferito come GNU / Linux già nel 1992 . C'è una polemica di lunga durata sul fatto che Linux debba essere definito Linux o GNU / Linux (in quanto incorpora diversi parti di GNU), ma questo è irrilevante per la tua domanda, ciò che è rilevante è che "non Unix" può semplicemente riferirsi all'associazione con GNU e avere poco a che fare con il suo design, a seconda del contesto.

L'articolo "Storia di Linux" su Wikipedia spiega le origini di Linux e la sua relazione con Unix (tramite Minix e GNU) in qualche dettaglio, e dovresti anche dedicare del tempo a leggere i riferimenti dell'articolo, se sei interessato nell'apprendimento di più.

    
risposta data 09.04.2012 - 05:41
fonte
4

UNIX è una famiglia di sistemi operativi e al giorno d'oggi UNIX è più di un marchio di proprietà di The Open Group. Affinché un sistema operativo sia marchiato UNIX, deve essere sottoposto a un test di conformità, e per Linux ciò significherebbe che ogni distribuzione esistente (Ubuntu, Debian, Fedora, Red Hat, ecc.) Dovrà sottoporsi separatamente a questo test di conformità per ogni versione . Quindi questo è uno dei motivi principali per cui Linux è un sistema unix-like e non un UNIX.

Questo test che ho menzionato è quello di garantire la conformità del sistema operativo con la specifica Single Unix, che è attualmente alla versione 4 SUSv4 (Single Unix Specification versione 4). Questa specifica definisce un set di API che devono essere disponibili per le applicazioni affinché un sistema sia qualificato per il nome UNIX.

    
risposta data 09.04.2012 - 05:40
fonte
3

Le risposte esistenti indicano già alcune delle differenze che stai cercando. Senza essere l'esperto del kernel di Linux, aggiungerei anche che molte delle differenze di progettazione / implementazione tra GNU / Linux e i vari Unix sono trattate in Modelli di progettazione del kernel Linux serie.

    
risposta data 09.04.2012 - 18:55
fonte
2

"UNIX" è una cosa complicata da definire. In termini di conformità agli standard, sia Solaris che Mac OS X sono "ufficialmente" UNIX ma non devi passare molto tempo prima di trovare differenze piuttosto grandi tra i due. C'è un grande diagramma che documenta il rilascio di vari tipi di sistemi operativi UNIX o UNIX e come essi hanno influenzato e divergono l'uno dall'altro.

Nel grande schema di cose che guardano, camminano e cullano come UNIX, un sistema Linux [*] è una delle versioni più convenzionali. È abbastanza comune per le persone fare riferimento a Unices o * nix e significa "qualsiasi cosa simile a UNIX", che probabilmente include Linux. Tuttavia UNIX è un marchio registrato con limitazioni su come può essere applicato commercialmente; nessuna distribuzione Linux è conforme a queste limitazioni.

[*] Poiché questa domanda invita a un livello di divisione dei capelli semantica, penso che sia un argomento in questo caso per sottolineare che Linux stesso è solo un kernel su cui è possibile costruire un sistema operativo. È normale costruire un sistema simile a UNIX su Linux, che è ciò per cui è stato progettato, e quel sistema è solitamente costruito fuori dai componenti del progetto GNU. Nella risposta sopra "Linux" potrebbe essere letto come abbreviazione di "un sistema operativo che incorpora il kernel di Linux".

    
risposta data 09.04.2012 - 09:43
fonte
2

Una volta ho letto che Linux è ciò che ottieni quando prendi uno sviluppatore di PC e gli chiedi di scrivere un sistema operativo Unix, mentre FreeBSD è ciò che ottieni quando prendi uno sviluppatore Unix e chiedigli di creare un sistema operativo per PC ... non dimenticare i BSD nel tuo confronto!

Le differenze sono principalmente nel kernel in quanto le applicazioni dello spazio utente (incluse cose come ls) fanno tutti parte del progetto GNU. Ciò significa che Unix, FreeBSD e Linux sembrano quasi la stessa cosa.

Tuttavia ci sono delle differenze quando guardi da vicino. Il layout della directory sarà diverso (ma molte distribuzioni Linux usano i propri layout per lo più compatibili ma comunque diversi), i filesystem sono diversi (Unix usa UFS, FreeBSD usa FFS, Linux usa Ext3 per essere semplicistico - tutti possono usare le porte di FS comuni, ad es. ZFS)

Poi ci sono delle differenze nelle API di base, Linux ti fornirà l'API inotify per dirti quando i cambiamenti di file, Mac OSX ti offre FSEvents e FreeBSD ti dà kqueue .

Quindi possono essere considerati la stessa famiglia - confrontare un sistema Windows con strumenti GNU portati ad esso con un sistema Linux con gli stessi strumenti. Appariranno solo superficialmente allo stesso modo, ma un sistema Unix o FreeBSD apparirà comunque comparabile. A un'osservazione più attenta, le applicazioni di porting tra FreeBSD, Unix e Linux sono relativamente facili rispetto al porting su SO alternativi come Windows.

    
risposta data 09.04.2012 - 14:25
fonte
1

Unix non è più un singolo sistema operativo. Era una implementazione di Bell Labs / AT & T ma ora è uno standard.

Tecnicamente, Linux è solo un kernel. Questo kernel può essere trovato in sistemi operativi non Unix, il più popolare è Android. D'altra parte, ci sono molti sistemi operativi basati su Linux che sono simili a Unix. La maggior parte (se non tutti) di loro sta usando le librerie e le utility di Gnu. Questa combinazione fornisce alle distribuzioni Linux l'API Unix e la conformità (o non conformità) agli standard.

Lo standard Unix non richiede che un sistema conforme sia proprietario o che abbia una particolare licenza. BSD, OpenSolaris / Illumos, darwin sono esempi di implementazioni Unix ancora non Linux ancora disponibili.

I sistemi compiacenti di solito sono, ma non sempre, un mix di componenti proprietari e open source, mentre Gnu / Linux può essere completamente Open Source o includere anche elementi proprietari.

Per quanto riguarda la conformità Unix, non ci sono molte differenze. La maggior parte delle distribuzioni Linux e delle implementazioni Unix condividono lo stesso insieme di comandi usando lo stesso insieme di opzioni. Tuttavia, troverete molte estensioni dei comandi standard, specialmente sul lato Gnu in cui sono chiamati Gnuisms, e numerosi comandi che non sono definiti dagli standard in primo luogo (compilatori, comandi amministrativi, installazione, packaging, ambiente grafico). Questa è un'area in cui puoi trovare molte divergenze, incompatibilità e talvolta guerre sante.

Il modello di sviluppo di Gnu / Linux è solitamente considerato più "organico" e "bazar", mentre altri sistemi simili a Unix sono più "progettati" e "a cattedrale". A seconda dei sottosistemi, la differenza non è così netta e dipende dagli individui e / o dalle aziende dietro di loro.

    
risposta data 09.04.2012 - 13:01
fonte
1

Linux ha molti strumenti come:

  • Sistema GUI
  • Utilità GNU (come cp, mv, ls, date, bash ecc.)
  • installazione & strumenti di gestione
  • Compilatori GNU C / C ++
  • Editor (vi)
  • e varie applicazioni (come OpenOffice, Firefox).

Tuttavia, la maggior parte dei sistemi operativi UNIX è considerata un sistema operativo completo poiché tutto proviene da un'unica fonte o fornitore.

Alcune cose che condividono:

  • GUI, file e gestori di finestre (KDE, Gnome)
  • Conchiglie (ksh, csh, bash)
  • Varie applicazioni per ufficio come OpenOffice.org
  • Strumenti di sviluppo (perl, php, python, compilatori GNU C / C ++)
  • Interfaccia POSIX
risposta data 09.04.2012 - 05:20
fonte
-7

In realtà, Linux era una decodificazione di Unix con il cobbled together insieme, quindi il design del kernel seguiva la filosofia di Ken Thompson. La via di Linux sembra essere quella di imitare la filosofia di Unix il più vicino possibile senza mai appesantirsi con il pensiero originale.

    
risposta data 09.04.2012 - 07:11
fonte

Leggi altre domande sui tag