it-swarm-es.tech

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

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

19
Am1rr3zA

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 utilizan en entornos de producción en máquinas antiguas, pero nada que pueda salir a comprar en una máquina nueva hoy.

OS X tiene la variedad habitual de incompatibilidades de funciones del kernel que tiene cualquier * ix. El más grande que tuve que solucionar más recientemente es la falta de colas 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" de System V y luego portado a Linux, con TCP/IP para que nuestro software se ejecute en el sistema operativo X. Para nuestra aplicación, las diferencias entre estos dos métodos IPC importaban en el momento en que tomamos la decisión de ir con las colas de mensajes, pero debido a cambios arquitectónicos posteriores, terminó no siendo un gran tratar para cambiar a TCP/IP.

20
Warren Young

Cuando se trata de eso, ¿no es Darwin solo una fina capa BSD encima de Mach 2.0?

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

Mach 2.0 ofreció un conjunto diferente de abstracciones a nivel del kernel:

  1. Una "tarea": ​​es un espacio de direcciones + un conjunto de "puertos", posiblemente con un hilo ejecutándose en él.
  2. Hilos. Ésta era la unidad de ejecución programable. Una tarea (espacio de direcciones) podría tener más de 1 ejecutándose. 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 iniciaría uno.
  3. Puertos. Estos no son como TCP o puertos UDP. Fueron escritos, ordenados 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 el servidor y talones del lado del cliente, rutinas de clasificación y desorganizació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 de CMU Mach original utilizó estas abstracciones para emular procesos BSD Unix, procesos MS-DOS y, en un fabuloso ajuste de extravagancia, tareas VMS. Cada tarea de VMS tomó 2 tareas de Mach, más muchos subprocesos. Alguien solía vender un emulador de 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

11
Bruce Ediger

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

5
kbyrd

Darwin tiene un conjunto relativamente pequeño de tipos de sistemas de archivos compatibles. Aparte de los 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 fue diseñado para Unix, aunque HFS + se ha actualizado para admitir todas las funciones necesarias 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 forma predeterminada, HFS + no distingue entre mayúsculas y minúsculas, aunque se puede solicitar la distinción entre mayúsculas y minúsculas en el momento de la creación. Aunque Mac OS X se ejecutará en una partición que distinga entre mayúsculas y minúsculas, muchas aplicaciones de Mac de alto perfil no lo harán (por ejemplo, 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 sin solución .

4
Neil Mayhew

Creo que es mejor describir a Darwin simplemente 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 vienen sus propios detalles. Por eso, en primer lugar, hay sabores. Alguna empresa piensa en algo que ayudaría a venderlo (o simplemente trabajar con él o incluso administrarlo) y lo crea y le da su propio nombre.

3
reiche

Si he escuchado bien que Darwin, tal como lo lanzó Apple, ya no funciona como un sistema operativo independiente, entonces señalaría que la mayor diferencia que tiene es OS X en la parte superior. :RE

Aunque la integración entre el antiguo Mac OS, el nuevo Mac OS X y NeXT a veces es ridícula, pequeñas utilidades como diskutil y hdiutil son geniales. Tal vez sean algunos viejos arquitectos del kernel de Mach que quedaron de NeXT que usan estas pequeñas cosas y se preocupan por ellas quienes se han asegurado de que XCode también sea una herramienta tan buena.

0
Kevin Cantu