Welche Funktionen hat Darwin, die andere Unixe nicht ' t haben, oder umgekehrt?
On Februar 16, 2021 by adminVerfügt Darwin über spezifische Funktionen? Haben andere Unixe Funktionen, die Darwin fehlen?
Antwort
OS X ist das einzige verbleibende Betriebssystem basierend auf dem Mach-Mikrokern , der 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 das Übliche Eine Reihe von 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 Nachrichtenwarteschlangencode — ersetzen, der für eine „echte“ System V-Variante und höher geschrieben wurde portiert auf Linux — mit TCP / IP, damit unsere Software unter OS X ausgeführt werden kann. Für unsere Anwendung waren die Unterschiede zwischen diesen beiden IPC-Methoden zum Zeitpunkt unserer Entscheidung von Bedeutung Bei Nachrichtenwarteschlangen war es jedoch aufgrund späterer Architekturänderungen keine große Sache, auf TCP / IP umzusteigen.
Antwort
Wenn es darauf ankommt, ist Darwin nicht nur eine dünne BSD-Schicht auf Mach 2.0?
Ich habe NeXTStep verwendet, ich weiß nicht, von wie viel aktuellem MacOSX abweicht NeXTStep, aber …
Mach 2.0 bot eine andere Reihe von Abstraktionen auf Kernelebene:
- Eine „Aufgabe“: das ist ein Adressraum + eine Menge von „Ports“, möglicherweise mit einem darin laufenden Thread.
- Threads. Dies war die planbare Ausführungseinheit. Eine Aufgabe (Adressraum) konnte h habe mehr als 1 darin laufen. Ich glaube, dass Mach-O-Dateien (Machs ausführbares Dateiformat) zur Prozesslaufzeit mehr als einen Thread angeben könnten: Keine main () -Funktion, die mehr Cthreads gestartet hat, das Betriebssystem würde einen starten.
- Ports Diese sind keine TCP- oder UDP-Ports. Sie wurden getippt und Nachrichtenströme bestellt. Eher RPC-ähnlich. Sie haben eine Protokollspezifikationsdatei erstellt und diese dann über einen Compiler ausgeführt, um Server- und Clientseiten-Stubs, Marshalling- und Unmarshalling-Routinen usw. abzurufen.
- Speicher-Pager auf Benutzerebene. Sie können einen Task + Thread einrichten, um das Paging anderer Aufgaben „Adressräume“ zu handhaben.
Die ursprünglichen CMU-Mach-Leute verwendeten diese Abstraktionen, um BSD-Unix-Prozesse zu emulieren. MS-DOS-Prozesse und in einem fabelhaften Anfall von Freakiness VMS-Aufgaben. Jede VMS-Aufgabe benötigte 2 Mach-Aufgaben plus viele Threads. Jemand verkaufte früher einen Mac OS-Emulator (vor OSX) für NeXTStep, der den User-Space- verwendete. Pager effektiv.
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-Papier: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Kommentare
- Mac OS X (und damit Darwin) verwendet Mach 3.0.
Antwort
Dies ist keine richtige Antwort, aber DTrace ist ein fantastisches System-Debugging-Tool, das für Solaris, Darwin / OS X und * existiert BSD, aber nicht Linux.
Kommentare
- Oracle portierte DTrace auf Linux
- Ab Oktober 2011 gab Oracle die Portierung von DTrace von Solaris auf Linux bekannt. Ab dem 13. Oktober 2014 ist sie jedoch offiziell nicht verfügbar. ( slidehare.net/brendangregg/from-dtrace-to-linux )
Antwort
Darwin hat eine relativ kleine Anzahl unterstützter Dateisystemtypen. Abgesehen von Specials wie devfs und Netzwerktypen wie webdav lautet die Liste:
- HFS / HFS +
- UFS / FFS
- ISO-9660 / UDF / CDDA
- NTFS
- FAT
Von dieser Liste ist nur UFS wurde 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 bei der Erstellung die Groß- und Kleinschreibung angefordert werden kann. Obwohl Mac OS X. wird auf einer Partition ausgeführt, bei der zwischen Groß- und Kleinschreibung unterschieden wird, viele hochkarätige Mac-Anwendungen nicht (z. B. Adobe CS).
Für eine Weile plante Apple, HFS durch ZFS und sogar ZFS mit einigen Versionen von Mac OS X ausgeliefert, aber leider schlug dieses Experiment schließlich aufgrund von unlösbaren Lizenzproblemen fehl.
Kommentare
- Ich glaube, OS X ‚ s / macOS ‚ wird laut immer noch als fehlerhaft gemeldet, da sie experimentell bleibt und, wie ich mich erinnere, nie stabilisiert wurde.
Antwort
Ich denke, es ist am besten, Darwin als eine weitere UNIX-Version . Solaris ist eine. HP / UX ist eine andere. Es gibt viele mehr , möglicherweise nicht so hoch. Profil „aber sie“ sind da. Und mit jedem Geschmack kommen seine eigenen Besonderheiten. Aus diesem Grund gibt es in erster Linie Geschmacksrichtungen. Einige Unternehmen überlegen sich etwas, das beim Verkauf hilft (oder einfach damit arbeitet oder es sogar verwaltet), erstellen es und geben ihm einen eigenen Namen.
Kommentare
- UNIX (in Großbuchstaben) ist in vielen Ländern eine eingetragene Marke von The Open Group, damit etwas “ ist UNIX “ (in Großbuchstaben), Zertifizierung ist erforderlich . Darwin ist nicht ‚ t eine andere “ Version von UNIX “ – aber Mac OS X 10.10 unter Intel x86-64 ist als eine andere UNIX zertifiziert.
Antwort
Wenn ich richtig gehört habe, fungiert Darwin, wie von Apple veröffentlicht, nicht mehr als unabhängiger Betriebssystem, daher möchte ich darauf hinweisen, dass der größte Unterschied darin besteht, dass OS X darüber liegt .: D
Obwohl die Integration zwischen dem alten Mac OS, dem neuen Mac OS X und NeXT ist manchmal lächerlich, kleine Dienstprogramme wie diskutieren und hdiutil sind großartig. Vielleicht sind es einige alte Mach-Kernel-Architekten, die von NeXT übrig geblieben sind, die diese kleinen Dinge verwenden und sich um sie kümmern, die dafür gesorgt haben, dass XCode auch ein so gutes Werkzeug ist.
Antwort
Darwin basiert auf FreeBSD. Eine coole Funktion, die (meiner Erfahrung nach) in anderen Unix-Betriebssystemen nicht vorhanden ist, ist der Berkeley-Paketfilter , auch bekannt als /dev/bpf
. Dies ist ein sehr vielseitiges Gerät , das Sie zur Paketerfassung verwenden können.
Kommentare
- Darwin ist nicht ‚ basiert nicht wirklich auf FreeBSD, obwohl es einige Userland-Dinge daraus entlehnt. Andere Kommentare hier erklären das besser. bpf (4) ist nicht ‚ nicht nur Darwin und FreeBSD / NetBSD / OpenBSD, und ich ‚ habe das Gefühl, dass jemand sogar haben könnte implementiert es für frühere Linux-Kernel. SCO (bekanntermaßen) hatte es in seinem Unixware-Angebot.
Antwort
Faust, die mir in den Sinn kommt ist alles Tools, die OSX in der Konsole hat. Es gibt Unmengen nützlicherer Befehle, die Unix hat. Diskutil es ist wie Partitionsmagie in der Shell, dieses Tool hat so viele Optionen für Festplattenoperationen, dass fdisk wirklich nur 10% von dem ist, was dieses Biest hat … Übrigens unterstützt Osx wirklich großartige Software Raid-Unterstützung, die Sie für JBOD, Strip und Mirror haben können Software-Raid-Typen … hat Unix das wirklich? In Ihren Träumen !!; D
SystemProfiler – ein großartiges Tool, das alle Hardware-IDs, Namen, Modelle, Sn „und ähnliches in a anzeigt Sehr bequem.
Darwin-Kernel ist nicht vollständig transparent wie unter Unix.
Darwin hat killall util = P unix nicht, nur Fähigkeit
auch anderes Dateisystem. HFS, HFS +
Vielleicht erinnere ich mich an mehr =)
Kommentare
- Meinst du, Darwin hat ‚ killall ‚ und andere Unix-Varianten don ‚ t? Das ‚ ist nicht wahr.
- Diese Antwort steht im Verdacht des Trolling. Es ist nicht notwendig, in Ihren Aussagen über * nix außer os X so diffamierend zu sein. Auch das letzte Mal, als ich NIX verwendet habe, war NIX killall in meinem PATH absolut vorhanden. Außerdem verfügt Linux über Systemprofiler. Mach deine Hausaufgaben. ‚ ist kein d é uche. edit: Ich benutze und mag OS X.
- Ich habe Killall unter Linux, daher ist ‚ nicht nur Darwin
- Übrigens: Linux-killall und Solaris-killall sind sehr unterschiedlich
Schreibe einen Kommentar