Quelles sont les fonctionnalités de Darwin que les autres Unix n'ont pas, ou vice versa?


19

Darwin possède-t-il des fonctionnalités qui lui sont spécifiques? Est-ce que d'autres Unixe ont des fonctionnalités qui manquent à Darwin?

Réponses:


20

OS X est le seul système d'exploitation restant basé sur le micro-noyau Mach qui est également toujours commercialement pertinent. Il y a quelques projets de recherche en cours et des systèmes d'exploitation obsolètes qui sont sans aucun doute encore utilisés dans les paramètres de production sur les vieilles machines, mais rien que vous pouvez sortir et acheter sur une nouvelle machine aujourd'hui.

OS X possède l'assortiment habituel d'incompatibilités des fonctionnalités du noyau que tout * ix possède. Le plus grand que je le plus récemment dû travailler est autour d' un manque de files d' attente de messages système V . ( msgget(2)et amis.) Nous avons dû remplacer notre code de file d'attente de messages - qui a été écrit pour une "vraie" variante System V et ensuite porté sur Linux - par TCP / IP pour que notre logiciel fonctionne sous OS X. Pour notre application, le les différences entre ces deux méthodes IPC importaient au moment où nous avons fait le choix d'utiliser des files d'attente de messages, mais en raison de modifications architecturales ultérieures, il n'a pas été très difficile de passer à TCP / IP.


11

En fin de compte, Darwin n'est-il pas simplement une fine couche BSD au-dessus de Mach 2.0?

J'ai utilisé NeXTStep, je ne sais pas dans quelle mesure MacOSX actuel s'écarte de NeXTStep, mais ...

Mach 2.0 offrait un ensemble différent d'abstractions au niveau du noyau:

  1. Une "tâche": c'est un espace d'adressage + un ensemble de "ports", éventuellement avec un thread en cours d'exécution.
  2. Fils. C'était l'unité d'exécution planifiable. Une tâche (espace d'adressage) peut contenir plus d'une exécution. Je crois que les fichiers Mach-O (format de fichier exécutable de Mach) pourraient spécifier plus d'un thread au moment de l'exécution du processus: pas de fonction main () qui a démarré plus de Cthreads, le système d'exploitation en démarrerait un.
  3. Ports. Ce ne sont pas comme des ports TCP ou UDP. Ils ont été dactylographiés, ont ordonné des flux de messages. Plutôt RPC. Vous avez créé un fichier de spécifications de protocole, puis vous l'avez exécuté via un compilateur pour obtenir des stubs côté serveur et client, des routines de marshalling et unmarshalling, etc.
  4. Téléavertisseurs de mémoire de niveau utilisateur. Vous pouvez configurer une tâche + un thread pour gérer la pagination des espaces d'adressage d'autres tâches.

Les utilisateurs originaux de CMU Mach utilisaient ces abstractions pour émuler les processus BSD Unix, les processus MS-DOS et dans un fabuleux ensemble de tâches VMS. Chaque tâche VMS a pris 2 tâches Mach, plus de nombreux threads. Quelqu'un avait l'habitude de vendre un émulateur Mac OS (pré-OSX) pour NeXTStep qui utilisait à bon escient les pagers de l'espace utilisateur.

Ancienne page de publications CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

Le document VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf


2
Mac OS X (et donc Darwin) utilise Mach 3.0.
bahamat

5

Ce n'est pas tout à fait une réponse mais, DTrace est un outil de débogage système génial qui existe pour Solaris, Darwin / OS X et * BSD, mais pas Linux.


3
Oracle a porté DTrace sur Linux en 2011.
MattBianco

1
En octobre 2011, Oracle a annoncé le portage de DTrace de Solaris vers Linux, mais en date du 13 octobre 2014, il reste officiellement indisponible. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy

4

Darwin dispose d'un ensemble relativement petit de types de systèmes de fichiers pris en charge. Mis à part les spéciaux comme devfs et les types de réseaux comme webdav, la liste est la suivante:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • GRAISSE

De cette liste, seul UFS a été conçu pour Unix, bien que HFS + ait été mis à niveau pour prendre en charge toutes les fonctionnalités Unix nécessaires. Depuis Mac OS X 10.6, UFS ne peut pas être utilisé pour la partition racine, bien que cette restriction ne s'applique probablement pas à Darwin. Par défaut, HFS + ne respecte pas la casse, bien que la sensibilité à la casse puisse être demandée au moment de la création. Bien que Mac OS X s'exécute sur une partition sensible à la casse, de nombreuses applications Mac de haut niveau ne le seront pas (par exemple Adobe CS).

Pendant un certain temps, Apple prévoyait de remplacer HFS par ZFS et a même livré ZFS avec certaines versions de Mac OS X, mais malheureusement, cette expérience a finalement échoué en raison de problèmes de licence insolubles .


Je pense que le support d'écriture NTFS d'OS X / macOS serait toujours bogué, car il reste expérimental et n'a jamais été stabilisé, si je me souviens bien.
RandomDSdevel

3

Je pense qu'il est préférable de décrire Darwin comme une autre version d'UNIX . Solaris en est un. HP / UX en est un autre. Il y en a beaucoup plus , peut-être pas aussi «prestigieux» mais ils sont là. Et avec chaque saveur vient ses propres spécificités. C'est pourquoi il y a des saveurs en premier lieu. Certaines entreprises imaginent quelque chose qui pourrait les aider à vendre (ou simplement travailler avec elles ou même les administrer), les créer et leur donner leur propre nom.


2
UNIX (en toutes majuscules) est une marque déposée de The Open Group dans de nombreux pays; pour que quelque chose soit "UNIX" (en toutes majuscules), la certification est requise . Darwin n'est pas une autre "saveur d'UNIX" - mais Mac OS X 10.10 sur Intel x86-64 est certifié comme un autre UNIX.
user314104

0

Si j'ai bien compris, Darwin, tel que publié par Apple, ne fonctionne plus comme un système d'exploitation indépendant, alors je soulignerais que la plus grande différence est OS X en plus. :RÉ

Bien que l'intégration entre l'ancien Mac OS, le nouveau Mac OS X et NeXT soit parfois risible, de petits utilitaires comme diskutil et hdiutil sont excellents. Peut-être que ce sont d'anciens architectes du noyau Mach laissés par NeXT qui utilisent ces petites choses et se soucient d'eux qui ont fait en sorte que XCode soit aussi un bon outil.


-1

Darwin est basé sur FreeBSD. Une fonctionnalité intéressante qui n'est pas présente dans les autres systèmes d'exploitation Unix (d'après mon expérience) est le Berkeley Packet Filter , alias /dev/bpf. Il s'agit d'un appareil très polyvalent que vous pouvez utiliser pour la capture de paquets.


1
Darwin n'est pas vraiment basé sur FreeBSD, bien qu'il lui emprunte des choses de l'espace utilisateur. D'autres commentaires ici expliquent cela mieux. bpf (4) n'est pas uniquement Darwin et FreeBSD / NetBSD / OpenBSD, et j'ai le sentiment que quelqu'un pourrait même l'avoir implémenté pour les noyaux Linux précédents. SCO (in-) l'avait dans son offre Unixware.
jrg

-11

Le premier qui me vient à l'esprit est tous les outils qu'OSX a dans la console .. il y a des tonnes de commandes plus utiles qu'Unix a. Diskutil c'est comme la magie des partitions dans le shell, cet outil a tellement d'options pour les opérations sur disque que fdisk n'est vraiment que 10% de ce que cette bête a ... types .. est-ce vraiment unix? dans tes rêves!! ;RÉ

SystemProfiler - un excellent outil qui affiche tous les identifiants matériels, noms, modèles, sn et tout ça de manière TRÈS confortable.

Le noyau darwin n'est pas totalement transparent comme sous Unix.

darwin ont killall util = P unix pas, seulement la compétence

système de fichiers différent également .. HFS, HFS +

peut-être ce dernier je m'en souviendrai plus =)


2
Voulez-vous dire que Darwin a 'killall' et d'autres variantes Unix ne le font pas? Ce n'est pas vrai.
kbyrd

2
cette réponse est suspecte de pêche à la traîne. Il n'est pas nécessaire d'être aussi diffamatoire dans vos déclarations à propos de * nix autre que os X. De plus, la dernière fois que j'ai utilisé * NIX killall était absolument présent dans mon CHEMIN. De plus, linux a des profileurs système. Fais tes devoirs. Ne sois pas déuche. edit: J'utilise et j'aime beaucoup OS X.
Eli Frey

2
J'ai killall sur linux, donc ce n'est pas unique à darwin
xenoterracide

2
Cette réponse est vague et inexacte. De quelles fonctionnalités utiles manque fdisk? Linux RAID (mdadm) n'ont concaténation (LINEAR), striping (RAID0) et la mise en miroir (RAID1), entre autres. Linux prend également en charge HFS et HFS +.
Matthew Flaschen

3
BTW: Linux-killall et Solaris-killall sont assez différents
EricSchaefer
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.