Antworten:
OS X ist das einzige verbleibende Betriebssystem, das auf dem Mach-Mikrokernel basiert und auch noch kommerziell relevant ist. Es gibt einige laufende Forschungsprojekte und veraltete Betriebssysteme, die zweifellos immer noch in Produktionseinstellungen auf alten Maschinen verwendet werden, aber nichts, was Sie heute auf einer neuen Maschine kaufen können.
OS X hat die übliche Auswahl an Inkompatibilitäten mit Kernel-Funktionen, die jeder * ix hat. Das größte Problem, das ich zuletzt umgehen musste, ist das Fehlen von System V-Nachrichtenwarteschlangen . ( msgget(2)
und Freunde.) Wir mussten unseren Message Queue-Code, der für eine "echte" System V-Variante geschrieben und später auf Linux portiert wurde, durch TCP / IP ersetzen, damit unsere Software unter OS X ausgeführt werden konnte Die Unterschiede zwischen diesen beiden IPC-Methoden waren zu der Zeit von Bedeutung, als wir uns für Nachrichtenwarteschlangen entschieden haben. Aufgrund späterer Änderungen in der Architektur war es jedoch keine große Sache, auf TCP / IP umzusteigen.
Wenn es darum geht, ist Darwin nicht nur eine dünne BSD-Schicht auf Mach 2.0?
Früher habe ich NeXTStep verwendet, ich weiß nicht, wie viel aktuelles MacOSX von NeXTStep abweicht, aber ...
Mach 2.0 bot auf Kernel-Ebene eine andere Reihe von Abstraktionen:
Die ursprünglichen CMU-Mach-Leute haben diese Abstraktionen verwendet, um BSD-Unix-Prozesse, MS-DOS-Prozesse und VMS-Aufgaben zu emulieren . Jede VMS-Aufgabe erforderte 2 Mach-Aufgaben plus viele Threads. Früher verkaufte jemand einen Mac OS (Pre-OSX) -Emulator für NeXTStep, der die User-Space-Pager effektiv einsetzte.
Die alte CMU Mach-Veröffentlichungsseite: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
Das VMS-on-Mach-Paper: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Dies ist keine eindeutige Antwort, aber DTrace ist ein großartiges System-Debugging-Tool, das für Solaris, Darwin / OS X und * BSD, aber nicht für Linux verfügbar ist.
Darwin verfügt über relativ wenige unterstützte Dateisystemtypen. Abgesehen von Besonderheiten wie devfs und Netzwerktypen wie webdav lautet die Liste:
Von dieser Liste wurde nur UFS für Unix entwickelt, obwohl HFS + aktualisiert wurde, um alle erforderlichen Unix-Funktionen zu unterstützen. Ab Mac OS X 10.6 kann UFS nicht für die Root-Partition verwendet werden, obwohl diese Einschränkung wahrscheinlich nicht für Darwin gilt. Standardmäßig unterscheidet HFS + nicht zwischen Groß- und Kleinschreibung, obwohl die Berücksichtigung der Groß- und Kleinschreibung zum Zeitpunkt der Erstellung angefordert werden kann. Obwohl Mac OS X auf einer Partition ausgeführt wird, bei der Groß- und Kleinschreibung zu beachten ist, ist dies bei vielen bekannten Mac-Anwendungen (z. B. Adobe CS) nicht der Fall.
Für eine Weile plante Apple, HFS durch ZFS zu ersetzen , und lieferte ZFS sogar mit einigen Versionen von Mac OS X aus. Leider schlug dieses Experiment jedoch aufgrund unlösbarer Lizenzprobleme fehl .
Ich denke, es ist am besten, Darwin als eine weitere Variante von UNIX zu beschreiben . Solaris ist eins. HP / UX ist eine andere. Es gibt viel mehr , vielleicht nicht als "hochkarätig", aber sie sind da. Und mit jedem Geschmack kommen seine eigenen Besonderheiten. Deshalb gibt es in erster Linie Aromen. Einige Unternehmen überlegen sich etwas, das ihnen beim Verkauf helfen könnte (oder sie arbeiten einfach damit oder verwalten es sogar), erstellen es und geben ihm einen eigenen Namen.
Wenn ich richtig gehört habe, dass Darwin, wie von Apple veröffentlicht, nicht mehr als eigenständiges Betriebssystem funktioniert, würde ich darauf hinweisen, dass der größte Unterschied OS X ist. : D
Obwohl die Integration zwischen dem alten Mac OS, dem neuen Mac OS X und NeXT manchmal lächerlich ist, sind kleine Hilfsprogramme wie diskutil und hdiutil großartig. Vielleicht sind es einige alte Mach-Kernel-Architekten, die von NeXT übrig geblieben sind, die diese kleinen Dinge benutzen und sich um sie kümmern, die dafür gesorgt haben, dass XCode auch so ein gutes Werkzeug ist.
Darwin basiert auf FreeBSD. Eine coole Funktion, die (meiner Erfahrung nach) in anderen Unix-Betriebssystemen nicht vorhanden ist, ist der Berkeley Packet Filter , auch bekannt als /dev/bpf
. Dies ist ein sehr vielseitiges Gerät, das Sie zur Paketerfassung verwenden können.
Als erstes fallen mir alle Tools ein, die OSX in der Konsole hat. Es gibt Unmengen nützlicherer Befehle, die Unix hat. Bis auf die Tatsache, dass es wie Partitionsmagie in der Shell ist, hat dieses Tool so viele Optionen für Festplattenoperationen, dass fdisk nur 10% von dem ist, was dieses Biest hat Typen .. hat Unix das wirklich? in deinen Träumen!! ; D
SystemProfiler - ein großartiges Tool, mit dem Sie alle Hardware-IDs, Namen, Modelle, Sns und ähnliches auf SEHR komfortable Weise anzeigen können.
darwin kernel ist nicht ganz transparent wie unter unix.
Darwin hat killall util = P Unix nicht, nur Geschick
anderes Dateisystem auch .. HFS, HFS +
vielleicht erinnere ich mich später an mehr =)