¿Qué características tiene Darwin que otros Unixes no tienen, o viceversa?


19

¿Darwin tiene alguna característica específica? ¿Otros Unixe (s) tienen características de las que Darwin carece?

Respuestas:


20

OS X es el único sistema operativo restante basado en el microkernel Mach, que también sigue siendo comercialmente relevante. Hay algunos proyectos de investigación en curso y sistemas operativos obsoletos que, sin duda, todavía se están utilizando en entornos de producción en máquinas antiguas, pero nada que pueda salir y comprar en una nueva máquina hoy.

OS X tiene la variedad habitual de incompatibilidades de funciones del núcleo que tiene cualquier * ix. El más grande que la más reciente tuvo que trabajar en torno a una falta de colas de mensajes System V . ( msgget(2)y amigos). Tuvimos que reemplazar nuestro código de cola de mensajes, que fue escrito para una variante "real" del Sistema V y luego portado a Linux, con TCP / IP para que nuestro software se ejecute en OS X. Para nuestra aplicación, el Las diferencias entre estos dos métodos de IPC eran importantes en el momento en que elegimos ir con las colas de mensajes, pero debido a cambios arquitectónicos posteriores, no fue un gran problema cambiar a TCP / IP.


11

A fin de cuentas, ¿no es Darwin solo una capa delgada de BSD sobre Mach 2.0?

Solía ​​usar NeXTStep, no sé cuánto sale MacOSX actual de NeXTStep, pero ...

Mach 2.0 ofreció un conjunto diferente de abstracciones a nivel del núcleo:

  1. Una "tarea": ​​es un espacio de direcciones + un conjunto de "puertos", posiblemente con un hilo ejecutándose en él.
  2. Hilos. Esta fue la unidad de ejecución programable. Una tarea (espacio de direcciones) podría tener más de 1 ejecutándose en ella. Creo que los archivos Mach-O (formato de archivo ejecutable de Mach) podrían especificar más de un hilo en el tiempo de ejecución del proceso: ninguna función main () que inició más Cthreads, el sistema operativo comenzaría uno.
  3. Puertos. Estos no son como los puertos TCP o UDP. Fueron mecanografiados, ordenaron flujos de mensajes. Más bien como RPC. Creó un archivo de especificaciones de protocolo, luego lo ejecutó a través de un compilador para obtener stubs del lado del servidor y del cliente, las rutinas de clasificación y de clasificación, etc.
  4. Buscapersonas de memoria de nivel de usuario. Puede configurar una tarea + hilo para manejar la paginación de los espacios de direcciones de otras tareas.

La gente original de CMU Mach usó estas abstracciones para emular procesos BSD Unix, procesos MS-DOS y en un fabuloso ajuste de tareas VMS extrañas. Cada tarea de VMS tomó 2 tareas de Mach, más muchos hilos. Alguien vendía un emulador Mac OS (pre-OSX) para NeXTStep que usaba los buscapersonas de espacio de usuario con buenos resultados.

La antigua página de publicaciones de CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

El documento VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf


2
Mac OS X (y, por lo tanto, Darwin) usa Mach 3.0.
bahamat

5

Esto no es una respuesta, pero DTrace es una herramienta de depuración del sistema increíble que existe para Solaris, Darwin / OS X y * BSD, pero no para Linux.


3
Oracle portó DTrace a Linux en 2011.
MattBianco

1
A partir de octubre de 2011, Oracle anunció la transferencia de DTrace de Solaris a Linux, pero a partir del 13 de octubre de 2014, oficialmente no está disponible. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy

4

Darwin tiene un conjunto relativamente pequeño de tipos de sistemas de archivos compatibles. Además de especiales como devfs y tipos de red como webdav, la lista es:

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

De esta lista, solo UFS se diseñó para Unix, aunque HFS + se ha actualizado para admitir toda la funcionalidad necesaria de Unix. A partir de Mac OS X 10.6, UFS no se puede utilizar para la partición raíz, aunque esta restricción probablemente no se aplique a Darwin. De manera predeterminada, HFS + no distingue entre mayúsculas y minúsculas, aunque se puede solicitar mayúsculas y minúsculas en el momento de la creación. Aunque Mac OS X se ejecutará en una partición que distingue entre mayúsculas y minúsculas, muchas aplicaciones Mac de alto perfil no (p. Ej. Adobe CS).

Durante un tiempo, Apple planeaba reemplazar HFS con ZFS e incluso envió ZFS con algunas versiones de Mac OS X, pero lamentablemente este experimento finalmente fracasó debido a problemas de licencia irresolubles .


Creo que se informa que el soporte de escritura NTFS de OS X / macOS todavía tiene errores, ya que sigue siendo experimental y nunca se estabilizó, según recuerdo.
RandomDSdevel

3

Creo que es mejor describir a Darwin como otro sabor de UNIX . Solaris es uno. HP / UX es otro. Hay muchos más , tal vez no como "de alto perfil", pero están ahí. Y con cada sabor viene sus propios detalles. Es por eso que hay sabores en primer lugar. Algunas compañías piensan en algo que ayudaría a venderlo (o simplemente trabajan con él o incluso lo administran) y lo crea y le da su propio nombre.


2
UNIX (en mayúsculas) es una marca registrada de The Open Group en muchos países; para que algo sea "UNIX" (en mayúsculas), se requiere certificación . Darwin no es otro "sabor de UNIX", pero Mac OS X 10.10 en Intel x86-64 está certificado como otro UNIX.
user314104

0

Si he escuchado bien, Darwin, como lo lanzó Apple, ya no funciona como un sistema operativo independiente, por lo que señalaría que la mayor diferencia que tiene es OS X además. :RE

Aunque la integración entre el viejo Mac OS, el nuevo Mac OS X y el material NeXT a veces es ridículo, las pequeñas utilidades como diskutil y hdiutil son geniales. Tal vez sean algunos de los antiguos arquitectos de kernel de Mach que quedan de NeXT quienes usan estas pequeñas cosas y se preocupan por ellos, quienes también se han asegurado de que XCode sea una herramienta tan buena.


-1

Darwin está basado en FreeBSD. Una característica interesante que no está presente en otros sistemas operativos Unix (en mi experiencia) es el Berkeley Packet Filter , también conocido como /dev/bpf. Este es un dispositivo muy versátil que puede usar para capturar paquetes.


1
Darwin no se basa realmente en FreeBSD, aunque toma prestados algunos elementos del usuario. Otros comentarios aquí explican eso mejor. bpf (4) no es únicamente Darwin y FreeBSD / NetBSD / OpenBSD, y tengo la sensación de que alguien podría haberlo implementado incluso para núcleos Linux anteriores. SCO (in) famoso lo tenía en su oferta de Unixware.
jrg

-11

Lo primero que me viene a la mente son todas las herramientas que OSX tiene en la consola ... hay toneladas de comandos más útiles que tiene Unix. Diskutil es como partición mágica en shell, esta herramienta tiene tantas opciones para las operaciones de disco que fdisk es realmente solo el 10% de lo que tiene esta bestia ... por cierto, OSX admite un gran soporte de Software Raid, puede tener una incursión de software JBOD, Strip y Mirror tipos ... ¿realmente Unix tiene esto? ¡¡en tus sueños!! ;RE

SystemProfiler: gran herramienta que muestra todos los identificadores de hardware, nombres, modelos, sn y cosas así de una manera MUY cómoda.

Darwin Kernel no es totalmente transparente como en Unix.

darwin tiene killall util = P unix no, solo habilidad

sistema de archivos diferente también ... HFS, HFS +

tal vez más tarde recordaré más =)


2
¿Quieres decir que Darwin tiene 'killall' y otras variantes de Unix no? Eso no es cierto.
kbyrd

2
esta respuesta es sospechosa de trolling. No es necesario ser tan difamatorio en sus declaraciones sobre * nix que no sea OS X. Además, la última vez que UTILIZÉ * NIX killall estuvo absolutamente presente en mi RUTA. Además, Linux tiene perfiladores del sistema. Haz tu tarea. No seas un déuche. editar: Yo uso y soy muy aficionado a OS X.
Eli Frey

2
Tengo Killall en Linux, así que no es exclusivo de Darwin
xenoterracide

2
Esta respuesta es vaga e inexacta. ¿Qué características útiles le falta a fdisk? Linux RAID (mdadm) hace que la concatenación (lineal), la creación de bandas (RAID 0) y el espejo (RAID 1), entre otros. Linux también es compatible con HFS y HFS +.
Matthew Flaschen

3
Por cierto: Linux-killall y Solaris-killall son bastante diferentes
EricSchaefer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.