Articulo de referencia

Darwin (sistema operativo)

Darwin es el sistema operativo principal tipo Unix de macOS , iOS , watchOS , tvOS , iPadOS , audioOS , visionOS y bridgeOS . Anteriormente existía como un sistema operativo ind...

Darwin es el sistema operativo principal tipo Unix de macOS , iOS , watchOS , tvOS , iPadOS , audioOS , visionOS y bridgeOS . Anteriormente existía como un sistema operativo independiente de código abierto , lanzado por primera vez por Apple en 2000. Está compuesto por código derivado de NeXTSTEP , FreeBSD [ 3 ] y otros sistemas operativos BSD , [ 7 ] Mach y código de otros proyectos de software libre , así como código desarrollado por Apple. La mascota no oficial de Darwin es Hexley el ornitorrinco. [ 8 ]

Darwin es mayormente compatible con POSIX , pero nunca ha sido certificado como compatible con ninguna versión de POSIX. A partir de Leopard , macOS ha sido certificado como compatible con la versión 3 de la Especificación UNIX Única (SUSv3). [ 9 ] [ 10 ] [ 11 ]

Historia

Historia simplificada de los sistemas operativos tipo Unix

El legado de Darwin comenzó con derivados de Unix complementados con aspectos del sistema operativo NeXTSTEP de NeXT (más tarde, desde la versión 4.0, conocido como OPENSTEP), lanzado por primera vez en 1989. Después de que Apple comprara NeXT en 1996, anunció que basaría su siguiente sistema operativo en OPENSTEP. Este se desarrolló hasta convertirse en Rhapsody en 1997, Mac OS X Server 1.0 en 1999, Mac OS X Public Beta en 2000 y Mac OS X 10.0 en 2001.

En 1999, Apple anunció que liberaría el código fuente del microkernel Mach 2.5, el sistema operativo BSD Unix 4.4 y los componentes del servidor web Apache de Mac OS X Server. [ 12 ] En ese momento, el director ejecutivo interino Steve Jobs aludió al naturalista británico Charles Darwin al anunciar "porque se trata de la evolución". [ 13 ] En 2000, los componentes principales del sistema operativo Mac OS X se publicaron como software de código abierto bajo la Licencia Pública de Código Fuente de Apple (APSL) como Darwin; los componentes de nivel superior, como los marcos Cocoa y Carbon , permanecieron de código cerrado . [ 14 ]

Hasta Darwin 8.0.1, lanzado en abril de 2005, Apple lanzó un instalador binario (como una imagen ISO ) después de cada lanzamiento importante de Mac OS X que permitía instalar Darwin en sistemas PowerPC e Intel x86 como un sistema operativo independiente. [ 15 ] Las actualizaciones menores se lanzaron como paquetes que se instalaban por separado. Ahora Darwin solo está disponible como código fuente. Desde enero de 2023, Apple ya no menciona a Darwin por su nombre en su sitio web de código abierto y solo publica una colección incompleta de proyectos de código abierto relacionados con macOS e iOS .

Diseño

Diagrama de la arquitectura de macOS

Núcleo

El núcleo de Darwin es XNU , un núcleo híbrido que utiliza Open Software Foundation Mach Kernel (OSFMK) 7.3 [ 16 ] de la OSF , varios elementos de FreeBSD (incluido el modelo de procesos, la pila de red y el sistema de archivos virtual ) [ 17 ] y una API de controlador de dispositivos orientada a objetos llamada IOKit [ 18 ] . El diseño del núcleo híbrido proporciona la flexibilidad de un micronúcleo [ 19 ] y el rendimiento de un núcleo monolítico [ 20 ] .

Soporte de hardware y software

La última versión completa de arranque de Darwin admitía sistemas Apple PowerPC de 32 y 64 bits y PC Intel de 32 bits. [ 21 ]

Actualmente, Darwin incluye compatibilidad con la variante x86-64 de 64 bits de los procesadores Intel x86 utilizados en los Mac basados ​​en Intel y los procesadores ARM de 64 bits utilizados en el iPhone 5S y posteriores, el iPod Touch de sexta generación , el iPad de quinta generación y posteriores, la familia iPad Air , el iPad Mini 2 y posteriores, la familia iPad Pro , los Apple TV de cuarta generación y posteriores , la familia HomePod y los Mac con Apple Silicon , como los Mac Apple M1 de 2020 , así como la Raspberry Pi 3B. [ 22 ] [ 23 ] Existe una versión de código abierto del kernel XNU que admite Darwin en plataformas Intel y AMD x86 no compatibles oficialmente con Apple, aunque no parece haberse actualizado desde 2009. [ 24 ] También existe una versión de código abierto del kernel XNU para plataformas ARM, aunque no se ha actualizado desde 2016. [ 25 ] Las versiones anteriores admitían algunas o todas las arquitecturas PowerPC de 32 bits , PowerPC de 64 bits, x86 de 32 bits y ARM de 32 bits.

Es compatible con la API POSIX gracias a su linaje BSD (principalmente el entorno de usuario de FreeBSD ), por lo que una gran cantidad de programas escritos para otros sistemas similares a UNIX se pueden compilar en Darwin sin necesidad de modificar el código fuente .

Darwin no incluye muchos de los elementos definitorios de macOS, como las API Carbon y Cocoa o el Compositor Quartz y la interfaz de usuario Aqua , por lo que no puede ejecutar aplicaciones de Mac. Sin embargo, sí admite varias características menos conocidas de macOS, como mDNSResponder, que es el respondedor DNS multicast y un componente central de la tecnología de red Bonjour , y launchd , un marco avanzado de gestión de servicios .

Licencia

En julio de 2003, Apple lanzó Darwin bajo la versión 2.0 de la Licencia Pública de Código Fuente de Apple (APSL), que la Fundación de Software Libre (FSF) califica como una licencia de software libre . [ 26 ] La APSL es similar a la AGPL , incluyendo su incompatibilidad con la Licencia Pública General de GNU . [ 26 ]

Las versiones anteriores de la licencia APSL no cumplían con la definición de software libre de la FSF, aunque sí cumplían con los requisitos de la Definición de Código Abierto . [ 27 ]

Historial de lanzamientos

A continuación se muestra una tabla con las principales versiones de Darwin, sus fechas de lanzamiento y las versiones de sus sistemas operativos derivados. [ 28 ] Tenga en cuenta que las versiones correspondientes pueden haber sido lanzadas en una fecha diferente.

Darwin 0–8 y las versiones correspondientes de Mac OS X

El salto en los números de versión de Darwin 1.4.1 a 5.1 con el lanzamiento de Mac OS X v10.1.1 se diseñó para vincular Darwin con el sistema de numeración de versiones y compilaciones de Mac OS X, que a su vez se hereda de NeXTSTEP. En el sistema de numeración de compilaciones de macOS, cada versión tiene un número de compilación inicial único, que identifica a qué versión completa de macOS pertenece. Mac OS X v10.0 tenía números de compilación que comenzaban con 4, 10.1 tenía números de compilación que comenzaban con 5, y así sucesivamente (los números de compilación anteriores representaban versiones para desarrolladores). [ 33 ]

Darwin 9; se presenta iPhone OS

Darwin 10-11; iPhone OS pasó a llamarse iOS

Darwin 12–15; Mac OS X cambió de nombre a OS X

Darwin 16–19; OS X pasó a llamarse macOS

Darwin 20 en adelante

Nota: las tablas anteriores contienen las fechas de lanzamiento de las versiones correspondientes del sistema operativo. Las fechas de compilación de las versiones de Darwin no están disponibles públicamente; los comandos que aparecen a continuación solo proporcionan la fecha de compilación del kernel XNU.

El comando `uname -r` en la terminal mostrará el número de versión de Darwin ("20.3.0"), y el comando `uname -v` mostrará la cadena de versión de compilación de XNU , que incluye el número de versión de Darwin. El comando ` sw_vers` mostrará el ProductName correspondiente ("macOS"), el número de ProductVersion ("11.2.3") y la cadena BuildVersion ("20D91").

Proyectos derivados

Debido a la naturaleza de software libre de Darwin, han surgido proyectos que pretenden modificar el sistema operativo o utilizar partes de Darwin para sus propios fines.

Entre ellas, DarwinBSD, OpenDarwin y PureDarwin pueden denominarse "distribuciones alternativas de Darwin" en un sentido análogo al de las distribuciones de Linux .

OpenDarwin

GNOME ejecutándose en GNU-Darwin

OpenDarwin fue un proyecto para desarrollar un sistema operativo comunitario basado en el sistema Darwin. Fue fundado en abril de 2002 por Apple e Internet Systems Consortium . Su objetivo era aumentar la colaboración entre los desarrolladores de Apple y la comunidad de software libre . Apple se benefició del proyecto porque las mejoras de OpenDarwin se incorporarían a las versiones de Darwin; y la comunidad de software libre/de código abierto se benefició al obtener el control total sobre su propio sistema operativo, que luego podría usarse en distribuciones de software libre como GNU-Darwin . [ 41 ]

El 25 de julio de 2006, el equipo de OpenDarwin anunció el cierre del proyecto, ya que consideraban que OpenDarwin se había convertido en una mera plataforma de alojamiento para proyectos relacionados con Mac OS X, y que los esfuerzos por crear un sistema operativo Darwin independiente habían fracasado. [ 42 ] También declararon: «La disponibilidad de fuentes, la interacción con representantes de Apple, la dificultad para compilar y rastrear las fuentes, y la falta de interés de la comunidad han contribuido a esto». [ 43 ] La última versión estable fue la 7.2.1, publicada el 16 de julio de 2004. [ 44 ]

PureDarwin

PureDarwin es un proyecto para crear una imagen de sistema operativo de arranque a partir del código fuente publicado por Apple para Darwin. [ 45 ] Desde la interrupción de OpenDarwin y el lanzamiento de imágenes de arranque desde Darwin 8.x, ha sido cada vez más difícil crear un sistema operativo completo, ya que muchos componentes se convirtieron en código cerrado. En 2015, el proyecto creó una versión preliminar basada en Darwin 9 con una GUI X11, [ 46 ] seguida de una versión beta 17.4 solo de línea de comandos basada en Darwin 17 en 2019. [ 47 ]

ravynOS

ravynOS es un proyecto para desarrollar un sistema operativo libre y de código abierto que pretende ser compatible tanto a nivel de código fuente como, eventualmente, a nivel binario con el sistema operativo macOS de Apple . Aunque originalmente se basaba en FreeBSD y NextBSD , la desarrolladora principal, Zoë Knox, anunció [ 48 ] el 28 de octubre de 2025 que el sistema operativo se migraría a una base Darwin. Desde este cambio, se ha trabajado en lograr que las fuentes Darwin heredadas se compilen, [ 49 ] así como en modernizar el sistema de compilación y partes del sistema operativo.

Otros proyectos derivados

"Distribuciones Darwin" (véanse también los demás gestores de paquetes a continuación):

  • GNU-Darwin fue un proyecto que adaptó paquetes de software libre a Darwin. Empaquetaban imágenes de sistemas operativos de forma similar a una distribución de Linux .
  • El proyecto DarwinBSD era una distribución de Darwin que utilizaba el gestor de paquetes pkgsrc de NetBSD. [ 50 ]

Otros tipos de derivados:

Proyectos destinados a trabajar con Darwin

Creador de ventanas en XDarwin

Los siguientes ejemplos no son derivados de Darwin, al menos no más allá del hecho de que cualquier programa escrito para un sistema operativo se deriva en parte de su interfaz de programación de aplicaciones y otras restricciones.

Ni se basa sustancialmente en Darwin ni pretende principalmente trabajar sobre él.

Los siguientes proyectos reimplementan partes de la API de macOS que están por encima del nivel de Darwin.

Véase también

Referencias

  1. "Descripción general de la arquitectura del kernel" . Guía de programación del kernel . Archivado del original el 9 de mayo de 2019. Consultado el 27 de mayo de 2019 .
  2. "darwin-xnu/README.md en master" . GitHub . Archivado del original el 31 de marzo de 2019. Recuperado el 21 de noviembre de 2019 .
  3. 1 2 "Introducción a Apple BSD" . Apple. 2002. Archivado del original el 7 de noviembre de 2018. Consultado el 1 de enero de 2002 .
  4. "Apple - Fuente pública - Preguntas frecuentes sobre Darwin" . Archivado del original el 19 de noviembre de 2004. Consultado el 9 de agosto de 2021 .
  5. "Descripción general de la arquitectura del kernel" .
  6. "Controladores binarios necesarios para PureDarwin" . Archivado del original el 18 de noviembre de 2009. Consultado el 20 de julio de 2009 .
  7. "1. Descripción general del sistema" . Conceptos de NeXTstep . NeXT . Archivado del original el 21 de noviembre de 2021. Consultado el 26 de marzo de 2021 .
  8. "Página principal de Hexley, la mascota de DarwinOS" .
  9. "Mac OS X Leopard - Tecnología - UNIX" . Descripción general de la tecnología Leopard . Apple . Archivado del original el 27 de diciembre de 2008. Leopard es ahora un producto registrado UNIX 03 de marca abierta, que cumple con las especificaciones SUSv3 y POSIX 1003.1 para la API C, las utilidades de shell y los subprocesos.
  10. The Open Group (18 de mayo de 2007). "Certificación de Mac OS X versión 10.5 Leopard en ordenadores Macintosh con procesador Intel" . Archivado del original el 25 de octubre de 2019. Consultado el 11 de febrero de 2013 .
  11. "macOS versión 10.13 High Sierra en ordenadores Mac con procesador Intel" . The Open Group. Archivado del original el 28 de septiembre de 2017. Consultado el 19 de noviembre de 2017 .
  12. Walsh, Jeff (22 de marzo de 1999). "Apple adopta el código abierto con componentes clave del sistema operativo" . InfoWorld . Vol. 21, n.º 12. IDG InfoWorld. pág. 40. Consultado el 17 de febrero de 2020 .   
  13. Kahney, Leander. "Apple abre el código del sistema operativo" . Wired . Condé Nast. Archivado del original el 17 de febrero de 2020. Recuperado el 17 de febrero de 2020 .
  14. "Descripción general de la arquitectura del kernel" . developer.apple.com . Consultado el 31 de mayo de 2026 .
  15. "Directorio de descarga de imágenes ISO de Apple" . Archivado del original el 7 de octubre de 2016.
  16. Jim Magee. Sesión 106 de la WWDC 2000: Mac OS X: Núcleo . Minuto 14. Archivado del original el 11 de diciembre de 2021.
  17. "Descripción general de la tecnología Mac: capa del kernel y de los controladores de dispositivos" . Apple Developer Connection . Archivado del original el 9 de marzo de 2014. Consultado el 11 de febrero de 2013 .
  18. Singh, Amit (7 de enero de 2004). "XNU: El núcleo" . Archivado del original el 2 de junio de 2020. Recuperado el 11 de febrero de 2013 .
  19. Roch, Benjamin. "Núcleo monolítico frente a micronúcleo". CiteSeerX 10.1.1.89.9877 . 
  20. "Funciones adicionales" . Portando aplicaciones UNIX/Linux a OS X. Apple . Archivado del original el 14 de noviembre de 2017. Recuperado el 13 de noviembre de 2017 .
  21. "Notas de la versión Darwin 8.0.1" . 29 de abril de 2005. Archivado del original el 28 de octubre de 2023. Consultado el 16 de agosto de 2023 .
  22. "Configuración de placa XNU para BCM2837" . GitHub . 16 de diciembre de 2021. Archivado del original el 5 de diciembre de 2021. Recuperado el 5 de diciembre de 2021 .
  23. "Raspberry Pi 3 Modelo B" . Archivado del original el 5 de diciembre de 2021. Consultado el 5 de diciembre de 2021. Procesador de cuatro núcleos Broadcom BCM2837 de 1,2 GHz .
  24. "Código fuente del kernel Voodoo XNU" . Archivado del original el 30 de septiembre de 2015. Consultado el 25 de abril de 2014 .Requiere un cliente Apache SVN.
  25. "XNU en ARMv7" . GitHub . 25 de enero de 2022.
  26. 1 2 "Opinión de la FSF sobre la Licencia de Código Público de Apple (APSL) 2.0" . Archivado del original el 4 de mayo de 2020. Recuperado el 22 de julio de 2016 .
  27. "Los problemas con las versiones anteriores de la Licencia Pública de Código Fuente de Apple (APSL)" . Archivado del original el 19 de abril de 2020. Consultado el 22 de julio de 2016 .
  28. "Lanzamientos de código abierto" . Apple Developer Connection . Consultado el 11 de febrero de 2013 .
  29. "Nota técnica TN2029: Mac OS X v10.1" . Apple Developer Connection . Archivado del original el 14 de noviembre de 2001.
  30. ^ Siracusa, John (5 de septiembre de 2002). "Mac OS X 10.2 Jaguar" . Ars Técnica . Consultado el 31 de mayo de 2008 .
  31. ^ Siracusa, John (9 de noviembre de 2003). "Mac OS X 10.3 Pantera" . Ars Técnica . Consultado el 31 de mayo de 2008 .
  32. ^ Siracusa, John (28 de abril de 2005). "Mac OS X 10.4 Tigre" . Ars Técnica . Consultado el 30 de mayo de 2008 .
  33. Prabhakar, Ernie (9 de noviembre de 2001). "Versión Darwin: nuevo esquema en la actualización de software 1" . darwin-development (lista de correo). Archivado del original el 14 de enero de 2009. Recuperado el 2 de junio de 2008 .
  34. Siracusa, John (28 de octubre de 2007). "Mac OS X 10.5 Leopard: la reseña de Ars Technica" . Ars Technica . Consultado el 30 de mayo de 2008 .
  35. Siracusa, John (31 de agosto de 2009). "Mac OS X 10.6 Snow Leopard: la reseña de Ars Technica" . Ars Technica . Consultado el 29 de noviembre de 2009 .
  36. Tal como se encontró en un iPhone 4S con jailbreak .
  37. "Extensiones del sistema y DriverKit - WWDC19 - Vídeos" .
  38. "SystemExtensions" . Documentación para desarrolladores de Apple .
  39. "DriverKit" . Documentación para desarrolladores de Apple .
  40. Extensiones del sistema y DriverKit . Documentación para desarrolladores de Apple .
  41. "OpenDarwin" . Proyecto OpenDarwin. Archivado del original el 6 de enero de 2006.
  42. Schofield, Jack (26 de julio de 2006). "OpenDarwin cierra sus puertas" . The Guardian . Consultado el 18 de marzo de 2023 .
  43. Equipo principal y administradores de OpenDarwin (25 de julio de 2006). "Cierre de OpenDarwin" . Proyecto OpenDarwin. Archivado del original el 4 de agosto de 2006.
  44. "OpenDarwin 7.2.1 lanzado" . 5 de agosto de 2004. Archivado del original el 5 de agosto de 2004. Consultado el 7 de octubre de 2019 .
  45. "PureDarwin" . Archivado del original el 1 de abril de 2024. Consultado el 1 de abril de 2024 .
  46. PureDarwin Xmas Archivado el 3 de diciembre de 2019 en Wayback Machine (2015)
  47. "PureDarwin 17.4 Beta" . GitHub . PureDarwin. 30 de noviembre de 2019. Archivado del original el 13 de diciembre de 2019. Consultado el 11 de enero de 2020 .
  48. ravynsoft. "Es hora de tomar una decisión. Por favor, léanlo. · ravynsoft ravynos · Discusión #529" . GitHub . Consultado el 20 de mayo de 2026 .
  49. ravynsoft. "Después de 6 meses, ¡ya tenemos un kernel xnu que arranca! · ravynsoft ravynos · Discusión #554" . GitHub . Consultado el 20 de mayo de 2026 .
  50. "DarwinBSD" . darwinbsd.tk . Archivado del original el 23 de marzo de 2023. Consultado el 7 de abril de 2023 .
  51. "L4/Darwin (también conocido como Darbat)" . Ertos.nicta.com.au. 9 de mayo de 2007. Archivado del original el 19 de diciembre de 2013.
  52. "Darling: capa de traducción de macOS para Linux" . Darling . Archivado del original el 21 de abril de 2020. Consultado el 11 de enero de 2020 .
  53. "Security Enhanced Darwin" . SEDarwin. 22 de enero de 2007. Archivado del original el 5 de octubre de 2011.
  54. "Novedades de Mac OS X: Mac OS X v10.5" . Biblioteca de referencia de Mac OS X. Apple. 13 de noviembre de 2009. Archivado del original el 8 de diciembre de 2009.
  55. yuriwho (5 de mayo de 2002). "Página principal de WirelessDriver" . Wirelessdriver.sourceforge.net. Archivado del original el 28 de julio de 2020. Recuperado el 12 de julio de 2010 .
  56. "iwi2200 Darwin" . SourceForge . 27 de marzo de 2009. Archivado del original el 18 de agosto de 2009. Consultado el 13 de junio de 2010 .
  57. "Adaptar controladores Tulip de BSD a Darwin OS | Descargue gratis el software para adaptar controladores Tulip de BSD a Darwin OS en" . SourceForge.net. Archivado del original el 16 de julio de 2010. Recuperado el 12 de julio de 2010 .
  58. "Controlador de red RealTek para Mac OS X/Darwin" . SourceForge . 15 de marzo de 2006. Archivado del original el 24 de julio de 2010. Consultado el 3 de junio de 2010 .Proyecto inactivo desde el 15 de marzo de 2006.
  59. fansui; et al. (1 de agosto de 2007). "RTL8150LMEthernet" . SourceForge. Archivado del original el 7 de septiembre de 2008. Recuperado el 13 de junio de 2010 . 
  60. "Controladores de módem ZyXEL para OS X/Darwin | Descargue gratis el software de controladores de módem ZyXEL para OS X/Darwin en" . SourceForge.net. 14 de mayo de 2002. Archivado del original el 7 de enero de 2009. Consultado el 12 de julio de 2010 .
  61. "Controlador ATA de tarjeta PC para Mac OS X" . Pccardata.sourceforge.net. 20 de diciembre de 2001. Archivado del original el 5 de agosto de 2020. Consultado el 12 de julio de 2010 .
  62. "Sistema de archivos Ext2 para Mac OS X | Descarga gratuita del software del sistema de archivos Ext2 para Mac OS X en" . SourceForge.net. 14 de octubre de 2002. Archivado del original el 22 de julio de 2010. Consultado el 12 de julio de 2010 .
  63. "Sistema de archivos ext2 en el espacio de usuario" . SourceForge . 14 de julio de 2008. Archivado del original el 26 de julio de 2010. Consultado el 13 de junio de 2010 .
  • Darwin se lanza en Apple Developer Connection
  • código fuente de paquetes individuales
  • Hexley, la mascota de Darwin
  • PureDarwin.org
  • El Museo de Apple: "Números de compilación de macOS X" en Wayback Machine (archivado el 25 de diciembre de 2011).