Quelles sont les fonctionnalités de Darwin que les autres Unix ne ' t, ou vice versa?
On février 16, 2021 by adminDarwin a-t-il des fonctionnalités qui lui sont spécifiques? Est-ce que dautres Unixes ont des fonctionnalités qui manquent à Darwin?
Réponse
OS X est le seul système dexploitation 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 dexploitation obsolescents qui sont sans aucun doute encore utilisés dans les paramètres de production sur danciennes machines, mais vous ne pouvez rien acheter sur une nouvelle machine aujourdhui.
OS X a lhabituel assortiment dincompatibilités de fonctionnalités du noyau que nimporte quel * ix a. Le plus gros problème que jai eu le plus récemment à contourner est le manque de files dattente de messages System V . (msgget(2)
et amis.) Nous avons dû remplacer notre code de file dattente de messages — qui a été écrit pour une variante « réelle » de System V et plus tard porté sous Linux — avec TCP / IP pour faire fonctionner notre logiciel sous OS X. Pour notre application, les différences entre ces deux méthodes IPC importaient au moment où nous avons fait le choix de partir avec des files dattente de messages, mais en raison de modifications architecturales ultérieures, le passage à TCP / IP na finalement pas été un problème.
Réponse
En fin de compte, Darwin nest-il pas juste une fine couche BSD au-dessus de Mach 2.0?
Jutilisais NeXTStep, je ne sais pas à quel point MacOSX actuel sécarte de NeXTStep, mais …
Mach 2.0 offrait un ensemble différent dabstractions au niveau du noyau:
- Une « tâche »: cest un espace dadressage + un ensemble de « ports », éventuellement avec un thread en cours dexécution.
- Threads. Cétait lunité dexécution planifiable. Une tâche (espace dadressage) pouvait ave plus de 1 en cours dexécution. Je crois que les fichiers Mach-O (format de fichier exécutable de Mach) pourraient spécifier plus dun thread au moment de lexécution du processus: pas de fonction main () qui a démarré plus de Cthreads, le système dexploitation en démarrerait un.
- Ports Ils ne ressemblent pas aux ports TCP ou UDP. Ils étaient tapés, ordonnés des flux de messages. Plutôt à la RPC. Vous avez créé un fichier de spécification de protocole, puis lavez exécuté via un compilateur pour obtenir des stubs côté serveur et client, des routines de marshalling et de démarshalling, etc. Vous pouvez configurer une tâche + un thread pour gérer la pagination des autres espaces dadressage des tâches.
Les gens de CMU Mach dorigine ont utilisé ces abstractions pour émuler les processus BSD Unix, Processus MS-DOS, et dans un fabuleux mélange de bizarreries, tâches VMS. Chaque tâche VMS nécessitait 2 tâches Mach, plus de nombreux threads. Quelquun vendait un émulateur Mac OS (pré-OSX) pour NeXTStep qui utilisait lespace utilisateur- pagineurs à bon escient.
Ancienne page de publications de CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html
Le papier VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf
Commentaires
- Mac OS X (et donc Darwin) utilise Mach 3.0.
Réponse
Ce nest 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.
Commentaires
- Oracle a porté DTrace sur Linux en 2011.
- Depuis octobre 2011, Oracle a annoncé le portage de DTrace de Solaris vers Linux, mais depuis le 13 octobre 2014, il reste officiellement indisponible. ( slideshare.net/brendangregg/from-dtrace-to-linux )
Réponse
Darwin a un ensemble relativement petit de types de systèmes de fichiers pris en charge. Outre les spéciaux comme les devfs et les types de réseaux comme webdav, la liste est:
- HFS / HFS +
- UFS / FFS
- ISO-9660 / UDF / CDDA
- NTFS
- FAT
De cette liste, uniquement 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. À partir de Mac OS X 10.6, UFS ne peut pas être utilisé pour la partition racine, bien que cette restriction ne sapplique probablement pas à Darwin. Par défaut, HFS + est insensible à la casse, bien que la sensibilité à la casse puisse être demandée au moment de la création. Bien que Mac OS X fonctionnera sur une partition sensible à la casse, contrairement à de nombreuses applications Mac de haut niveau (par exemple Adobe CS).
Pendant un moment, Apple prévoyait de remplacer HFS par ZFS , et 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 irrésolu .
Commentaires
- Je crois que OS X ‘ s / macOS ‘ est signalé comme étant toujours bogué, car il reste expérimental et na jamais été stabilisé, si je me souviens bien.
Réponse
Je pense quil est préférable de décrire Darwin comme un simple saveur dUNIX . Solaris en est un. HP / UX en est un autre. Il y a beaucoup plus , peut-être pas aussi « élevé- profil « mais ils » sont là. Et chaque saveur a ses propres spécificités. Cest pourquoi il y a des saveurs en premier lieu. Certaines entreprises imaginent quelque chose qui aiderait à le vendre (ou simplement à travailler avec lui ou même à ladministrer) et le crée et lui donne son propre nom.
Commentaires
- UNIX (en majuscules) est une marque déposée de The Open Group dans de nombreux pays; pour que quelque chose soit » UNIX » (en majuscules), la certification est requise . Darwin nest pas ‘ t une autre » version UNIX » – mais Mac OS X 10.10 sur Intel x86-64 est certifié comme un autre UNIX.
Réponse
Si jai bien entendu Darwin, publié par Apple, ne fonctionne plus comme un indépendant système d’exploitation, je ferais donc remarquer que la plus grande différence est OS X en plus.: D
Bien que l’intégration entre l’ancien Mac OS, le nouveau Mac OS X et les éléments NeXT est parfois risible, de petits utilitaires comme diskutil et hdiutil sont super. Ce sont peut-être danciens architectes du noyau Mach restés de NeXT qui utilisent ces petites choses et se soucient deux qui ont également fait de XCode un si bon outil.
Réponse
Darwin est basé sur FreeBSD. Une fonctionnalité intéressante qui nest pas présente dans dautres systèmes dexploitation Unix (daprès mon expérience) est le Berkeley Packet Filter , alias /dev/bpf
. Cest un périphérique très polyvalent que vous pouvez utiliser pour la capture de paquets.
Commentaires
- Darwin isn ‘ t vraiment basé sur FreeBSD, bien quil lui emprunte des éléments du userland. Dautres commentaires ici expliquent mieux cela. bpf (4) nest ‘ t que Darwin et FreeBSD / NetBSD / OpenBSD, et jai ‘ limpression que quelquun pourrait avoir la implémenté pour les noyaux Linux antérieurs. SCO lavait (in) célèbre dans son offre Unixware.
Réponse
Ce qui me vient à lesprit est tous les outils quOSX a dans la console .. il y a des tonnes de commandes plus utiles quUnix a. Diskutil cest comme la magie des partitions dans le shell, cet outil a tellement doptions pour les opérations de disque que fdisk ne représente en réalité que 10% de ce que cette bête a … btw osx prend en charge un très bon support Software Raid, vous pouvez avoir JBOD, Strip et Mirror types de raid de logiciels .. est-ce que vraiment unix a ça? Méthode TRÈS confortable.
Le noyau de darwin nest pas totalement transparent comme sous unix.
darwin a killall util = P unix don « t, seulement skill
système de fichiers différent également .. HFS, HFS +
peut-être plus tard je me souviendrai plus =)
Commentaires
- Voulez-vous dire que Darwin a ‘ killall ‘ et dautres variantes Unix don ‘ t? Ce ‘ nest pas vrai.
- cette réponse est suspecte de trolling. Il nest pas nécessaire dêtre aussi diffamatoire dans vos déclarations sur * nix autre que os X. De plus, la dernière fois que JAI JAMAIS UTILISÉ * NIX killall était absolument présent dans mon PATH. Aussi, linux a des profileurs système. Fais tes devoirs. Ne ‘ être un d é uche. edit: Jutilise et jaime beaucoup OS X.
- Jai killall sur linux, donc ‘ nest pas unique à Darwin
- Cette réponse est vague et inexacte. Quelles sont les fonctionnalités utiles qui manquent à fdisk? Le RAID Linux (mdadm) possède la concaténation (LINEAR), le striping (RAID0) et la mise en miroir (RAID1), entre autres. Linux prend également en charge HFS et HFS +.
- BTW: Linux-killall et Solaris-killall sont assez différents
Laisser un commentaire