Risposte:
OS X è l'unico sistema operativo rimanente basato sul microkernel Mach, che è anche ancora commercialmente rilevante. Ci sono alcuni progetti di ricerca in corso e sistemi operativi obsoleti che senza dubbio vengono ancora utilizzati nelle impostazioni di produzione su vecchie macchine, ma nulla è possibile uscire e acquistare su una nuova macchina oggi.
OS X ha il solito assortimento di incompatibilità delle funzionalità del kernel che qualsiasi * ix ha. Il più grande, più recentemente ho dovuto lavorare intorno è una mancanza di code di messaggi System V . ( msgget(2)
e amici). Abbiamo dovuto sostituire il nostro codice di coda dei messaggi - che è stato scritto per una "vera" variante di System V e successivamente portato su Linux - con TCP / IP per far funzionare il nostro software su OS X. Per la nostra applicazione, il le differenze tra questi due metodi IPC erano importanti nel momento in cui abbiamo fatto la scelta di andare con le code dei messaggi, ma a causa di successive modifiche architettoniche, non è stato un grosso problema passare a TCP / IP.
Quando si arriva proprio a questo, Darwin non è solo un sottile strato di BSD sopra Mach 2.0?
Prima usavo NeXTStep, non so quanto MacOSX corrente parte da NeXTStep, ma ...
Mach 2.0 ha offerto una diversa serie di astrazioni a livello di kernel:
Le persone originali della CMU Mach hanno usato queste astrazioni per emulare i processi Unix BSD, i processi MS-DOS e in una favolosa combinazione di attività bizzarre e VMS. Ogni attività VMS ha assunto 2 attività Mach, oltre a molti thread. Qualcuno vendeva un emulatore di Mac OS (pre-OSX) per NeXTStep che utilizzava in modo efficace i cercapersone dello spazio utente.
La vecchia pagina delle pubblicazioni di CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
Il documento VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Questa non è una vera risposta, ma DTrace è un fantastico strumento di debug del sistema che esiste per Solaris, Darwin / OS X e * BSD, ma non per Linux.
Darwin ha un set relativamente piccolo di tipi di file system supportati. Oltre a speciali come devfs e tipi di rete come webdav, l'elenco è:
Di questo elenco, solo UFS è stato progettato per Unix, sebbene HFS + sia stato aggiornato per supportare tutte le funzionalità Unix necessarie. A partire da Mac OS X 10.6, UFS non può essere utilizzato per la partizione di root, anche se questa restrizione probabilmente non si applica a Darwin. Per impostazione predefinita, HFS + non distingue tra maiuscole e minuscole, sebbene al momento della creazione sia possibile richiedere la distinzione tra maiuscole e minuscole. Sebbene Mac OS X verrà eseguito su una partizione con distinzione tra maiuscole e minuscole, molte applicazioni Mac di alto profilo non lo faranno (ad esempio Adobe CS).
Per un po ', Apple aveva in programma di sostituire HFS con ZFS e ha persino distribuito ZFS con alcune versioni di Mac OS X, ma purtroppo questo esperimento alla fine fallì a causa di problemi di licenza irrisolvibili .
Penso che sia meglio descrivere Darwin come un altro sapore di UNIX . Solaris è uno. HP / UX è un altro. Ce ne sono molti altri , forse non come "di alto profilo" ma sono lì. E con ogni sapore arrivano i suoi particolari. Ecco perché ci sono sapori in primo luogo. Alcune aziende escogitano qualcosa che aiuterebbe a venderlo (o semplicemente a lavorare con esso o anche a gestirlo) e lo crea e gli dà il proprio nome.
Se ho sentito bene Darwin, come rilasciato da Apple, non funziona più come un sistema operativo indipendente, quindi vorrei sottolineare che la differenza più grande che ha è OS X al di sopra di esso. : D
Sebbene l'integrazione tra il vecchio Mac OS, il nuovo Mac OS X e le cose NeXT sia talvolta ridicola, piccole utility come diskutil e hdiutil sono fantastiche. Forse sono alcuni vecchi architetti del kernel Mach rimasti da NeXT che usano queste piccole cose e si prendono cura di loro che hanno fatto in modo che XCode fosse anche un ottimo strumento.
Darwin è basato su FreeBSD. Una caratteristica interessante che non è presente in altri sistemi operativi Unix (secondo la mia esperienza) è il Berkeley Packet Filter , alias /dev/bpf
. Questo è un dispositivo molto versatile che puoi usare per l'acquisizione di pacchetti.
Il pugno che mi viene in mente sono tutti gli strumenti che OSX ha in console .. ci sono tonnellate di comandi più utili che hanno unix. Diskutil è come la magia delle partizioni nella shell, questo strumento ha così tante opzioni per le operazioni del disco che fdisk è davvero solo il 10% di ciò che questa bestia ha ... btw osx supporta davvero un ottimo supporto Software Raid che puoi avere raid software JBOD, Strip e Mirror tipi .. davvero unix ha questo? nei tuoi sogni!! ; D
SystemProfiler - ottimo strumento che mostra tutti gli ID hardware, nomi, modelli, sn e cose del genere in un modo MOLTO comodo.
il kernel darwin non è totalmente trasparente come in unix.
darwin ha killall util = P unix no, solo abilità
file system diverso anche .. HFS, HFS +
forse quest'ultimo mi ricorderò di più =)