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

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

¿Tiene Darwin alguna característica que le sea específica? ¿Tienen otros Unixe características de las que carece Darwin?

Respuesta1

OS X es el único sistema operativo que quedabasado en el micronúcleo Machque también sigue siendo comercialmente relevante. Hay algunos proyectos de investigación en curso y sistemas operativos obsoletos que sin duda todavía se utilizan en entornos de producción en máquinas antiguas, pero nada que se pueda comprar en una máquina nueva hoy en día.

OS X tiene la variedad habitual de incompatibilidades de funciones del kernel que tiene cualquier *ix. El mayor problema que tuve que solucionar recientemente es la falta deColas de mensajes del Sistema V. ( msgget(2)y amigos.) Tuvimos que reemplazar nuestro código de cola de mensajes, que fue escrito para una variante "real" del System V y luego portado a Linux, con TCP/IP para que nuestro software se ejecutara en OS X. Para nuestra aplicación, el Las diferencias entre estos dos métodos IPC eran importantes en el momento en que tomamos la decisión de utilizar colas de mensajes, pero debido a cambios arquitectónicos posteriores, no fue gran cosa cambiar a TCP/IP.

Respuesta2

A fin de cuentas, ¿no es Darwin sólo una fina capa de BSD encima de Mach 2.0?

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

Mach 2.0 ofrecía 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 era la unidad de ejecución programable. Una tarea (espacio de direcciones) podría tener más de una ejecutándose en ella. Creo que los archivos Mach-O (el formato de archivo ejecutable de Mach) podrían especificar más de un subproceso en el tiempo de ejecución del proceso: ninguna función main() que iniciara más Cthreads, el sistema operativo iniciaría uno.
  3. Puertos. Estos no son como los puertos TCP o UDP. Eran flujos de mensajes escritos y ordenados. Más bien parecido a RPC. Creó un archivo de especificaciones de protocolo y luego lo ejecutó a través de un compilador para obtener códigos auxiliares del lado del servidor y del cliente, rutinas de clasificación y desclasificación, etc.
  4. Buscapersonas con memoria a 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 utilizó estas abstracciones paraemularProcesos BSD Unix, procesos MS-DOS y, en un fabuloso ataque de locura, tareas VMS. Cada tarea de VMS requirió 2 tareas de Mach, además de muchos subprocesos. Alguien solía vender un emulador de Mac OS (anterior a OSX) para NeXTStep que utilizaba 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 artículo de VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf

Respuesta3

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

Respuesta4

Creo que es mejor describir a Darwin como simplemente otrosabor de UNIX. Solaris es uno. HP/UX es otro. Hay muchosmás, tal vez no tan "alto perfil", pero están ahí. Y cada sabor tiene sus propias particularidades. Por eso, en primer lugar, existen los sabores. A alguna empresa se le ocurre algo que ayudaría a venderlo (o simplemente a trabajar con él o incluso a administrarlo) y lo crea y le da su propio nombre.

información relacionada