Che cos'è UNIX?
Risposta breve: UNIX è una specifica / standard al giorno d'oggi.
Al momento della stesura, per citare le fonti ufficiali , "UNIX® è un marchio registrato di The Open Group", la società che tra le tante cose fornisce la certificazione UNIX :
"UNIX®, uno standard aperto di proprietà e gestito da The Open Group, è un fattore abilitante per le tecnologie chiave e offre un costo totale di proprietà ridotto, maggiore agilità IT, stabilità e interoperabilità in ambienti eterogenei che consentono l'innovazione di business e di mercato in tutto il mondo ".
La stessa pagina indica specificamente quale specifica definisce UNIX:
L'ultima versione dello standard di certificazione è UNIX V7, in linea con la specifica UNIX versione 4, edizione 2013
I dettagli di tali specifiche sono disponibili qui . Curiosamente, l'ultimo standard elencato sul loro sito Web è UNIX 03 e, per citare un'altra fonte , "UNIX® 03 - il marchio per i sistemi conformi alla versione 3 della specifica UNIX singola".
Per citare la pagina Chi siamo con la mia enfasi in grassetto:
Il successo dell'approccio UNIX ha portato a un gran numero di sistemi operativi "simili", spesso divergenti in termini di compatibilità e interoperabilità. Per ovviare a questo, i fornitori e gli utenti si sono uniti negli anni '80 per creare lo standard POSIX® e successivamente le specifiche UNIX singole .
Quindi ciò che suggerisce (o almeno così è la mia interpretazione), è che quando un sistema operativo è conforme allo standard POSIX e alle specifiche UNIX singole, è compatibile nel comportamento con Unix come sistema operativo che esisteva un tempo nella storia. Si noti che ciò non menziona la presenza di tracce del codice sorgente Unix originale, né menziona in alcun modo il kernel (questo diventerà importante in seguito).
Per quanto riguarda AT&T e System V Unix sviluppati da Ritchie e Thompson, oggi possiamo dire che ha smesso di esistere. Sulla base delle fonti precedenti, sembra che UNIX al giorno d'oggi non sia quel sistema operativo specifico, ma piuttosto uno standard derivato dalla migliore generalizzazione possibile per il comportamento dei sistemi operativi nella famiglia Unix .
Dove si trova macOS X nel mondo * nix?
In una definizione molto specifica, macOS versione 10.13 High Sierra su hardware basato su Intel è conforme allo standard UNIX 03 e per citare il certificato pdf , "Apple Inc. ha stipulato un accordo di licenza di marchio con X / Open Company Limited." Nota a margine: esito a chiedermi cosa significherebbe trattare macOS 10.13 su hardware non Intel, ma considerando che l'hardware è menzionato per altri sistemi operativi, l'hardware è significativo. Esempio: "Hewlett Packard Enterprise: HP-UX 11i V3 versione B.11.31 o successiva su server HP 9000 con architettura di precisione" (dalla pagina del registro ).
Torniamo alla sezione precedente della mia risposta. Poiché questa particolare versione del sistema operativo è conforme all'interoperabilità e agli standard di compatibilità, significa che il sistema operativo è il più vicino possibile nel comportamento e nell'implementazione del sistema a Unix originale come un sistema operativo. Per lo meno, sarà vicino nel comportamento e nell'ambiente. Più si avvicina al livello di sistema e al livello del kernel, più l'area sarà specifica e più ombreggiata, ma almeno la meccanica e il comportamento fondamentali presenti in Unix dovrebbero essere presenti in un sistema operativo che mira a essere compatibile. macOS X dovrebbe essere molto vicino a questo obiettivo.
Che cos'è una distribuzione?
Per citare Wikipedia :
Una distribuzione Linux (spesso abbreviata come distro) è un sistema operativo costituito da una raccolta di software, che si basa sul kernel Linux e, spesso, un sistema di gestione dei pacchetti.
Ricordiamo per un secondo che Linux come nel kernel Linux dovrebbe essere un software distribuibile , con modifiche, o almeno in conformità con GPL v2 . Se consideriamo un gestore di pacchetti e un kernel, Ubuntu e Red Hat sono distribuzioni sensate. macOS X ha un kernel diverso da quello originale AT&T Unix - quindi chiamare macOS X una distribuzione Unix non ha senso. Le persone suggeriscono che il kernel macOS X sia basato su FreeBSD, ma per citare Wiki di FreeBSD :
Il kernel XNU usato su OS X include alcuni sottosistemi di (versioni precedenti di) FreeBSD, ma è principalmente un'implementazione indipendente
Alcune persone chiamano erroneamente il kernel Darwin di OS X. Per citare la Guida alla programmazione del kernel di Apple :
Il kernel, insieme ad altre parti fondamentali di OS X, sono collettivamente definiti Darwin. Darwin è un sistema operativo completo basato su molte delle stesse tecnologie alla base di OS X.
E per citare la stessa pagina:
La tecnologia Darwin si basa sulle tecnologie BSD, Mach 3.0 e Apple.
Sulla base di tutto ciò che possiamo dire con sicurezza, OS X non è una distribuzione , nel senso della distribuzione Linux. Allo stesso modo, altri sistemi operativi citati sono conformi a POSIX e sono sistemi Unix certificati, ma differiscono ancora per i kernel e le variazioni nelle chiamate di sistema sottostanti (motivo per cui esistono libri sulla programmazione del sistema Solaris ed è un argomento degno a sé stante). Pertanto, non sono distribuzioni nel senso in cui lo sono le distribuzioni Linux: un nucleo comune con variazioni sulle utility. Nel caso di Linux, vedi libri sulla programmazione del sistema Linux o sulla programmazione del kernel Linux, non sulla programmazione del sistema specifica per la distribuzione, perché non c'è nulla di specifico per il sistema in una particolare distribuzione.
La conferma di ciò che vediamo qui può essere trovata nella documentazione ufficiale. Ad esempio, l'articolo su developerWorks di IBM che affrontava la differenza tra i tipi di sistema operativo UNIX e gli stati di distribuzione di Linux (enfasi aggiunta):
La maggior parte delle varianti UNIX moderne conosciute oggi sono versioni con licenza di una delle edizioni UNIX originali . Sun's Solaris, Hewlett-Packard HP-UX e IBM AIX® sono tutti elementi di UNIX che hanno i loro elementi e fondamenti unici .
In altre parole, si basano sulla stessa base, ma non condividono esattamente la stessa nel senso che le distribuzioni Linux condividono il kernel.
considerazioni
Si noti che la distribuzione delle parole sembra essere utilizzata principalmente quando si fa riferimento a sistemi operativi che hanno il kernel Linux al centro. Prendiamo ad esempio il tipo di sistema operativo BSD: c'è GhostBSD , che si basa sul kernel e usa alcune delle utility di FreeBSD , ma non l'ho mai visto come una distribuzione BSD; ogni sistema operativo BSD menziona solo ciò su cui si basa e di solito un sistema operativo viene menzionato come sistema operativo a sé stante. Certo, BSD sta per Berkeley Software Distribution, ma ... questo è tutto.
Per citare questa risposta sul nostro sito in risposta alla domanda se versioni diverse di BSD usano gli stessi kernel:
No, anche se ci sono somiglianze dovute alle forcelle storiche. Ogni progetto si è evoluto separatamente.
Sono Non distribuzioni nel senso di distribuzioni Linux. Considera l'avviso sul copyright di questo documento :
Parti di questo prodotto possono essere derivate dai sistemi BSD UNIX® e Berkeley 4.3
Appunti
In conclusione:
- macOS X può essere indicato come sistema operativo simile a Unix, sistema simile a Unix, implementazione Unix, sistema operativo POSIX conforme quando si desidera metterlo in relazione con AT&T Unix originale;
- "Versione Unix" non sarebbe il termine appropriato perché macOS X è molto diverso dall'AT&T Unix originale, e come accennato prima non c'è più Unix nel senso del software, e ora è più uno standard del settore;
- Probabilmente la parola "distribuzione" si adatta solo al mondo Linux.
- Il vero problema è che tu (il lettore) e io abbiamo troppo tempo per discutere dell'argomento di cui dovrebbero discutere gli avvocati. Forse dovremmo essere come i Torvald di Linux e usare la terminologia e i sistemi operativi che ci permettono solo di andare avanti con la vita e fare le cose di cui onestamente ci preoccupiamo e di cui dovremmo preoccuparci.