Darwin es un sistema operativo de código abierto similar a Unix lanzado por primera vez por Apple Inc. en 2000. Está compuesto de código derivado de NeXTSTEP , BSD , Mach y otros códigos de proyectos de software libre , así como también desarrollado por Apple.
Desarrollador | Apple Inc. |
---|---|
Escrito en | C , C ++ , Objective-C , lenguaje ensamblador |
Familia OS | Similar a Unix [1] [2] |
Estado de trabajo | Actual |
Modelo fuente | Fuente abierta |
Versión inicial | 15 de noviembre de 2000 |
Último lanzamiento | 20.4.0 (26 de abril de 2021 [±] | )
Repositorio | github |
Plataformas | Actual: x86-64 , ARM de 64 bits , ARM de 32 bits (la compatibilidad con ARM de 32 bits es de código cerrado) Histórico: PowerPC (32 y 64 bits), IA-32 |
Tipo de grano | Híbrido |
Interfaz de usuario predeterminada | Interfaz de línea de comandos ( shell de Unix ) |
Licencia | Principalmente licencia de fuente pública de Apple (APSL), con controladores de código cerrado [3] |
Página web oficial |
Darwin forma el conjunto central de componentes basado en Unix en el que se basan macOS (anteriormente OS X y Mac OS X), iOS , watchOS , tvOS y iPadOS . Es principalmente compatible con POSIX , pero nunca, por sí solo, ha sido certificado como compatible con ninguna versión de POSIX. A partir de Leopard , macOS ha sido certificado como compatible con la Especificación Única de UNIX versión 3 (SUSv3). [4] [5] [6]
Historia
La herencia de Darwin comenzó con derivados de Unix complementados por los aspectos de NeXT 's NeXTSTEP sistema operativo (más tarde, desde la versión 4.0, conocida como OPENSTEP), lanzado por primera vez en 1989. Después de que Apple compró NeXT en 1997, se anunció que basar su próxima operación sistema en OPENSTEP. Esto se desarrolló 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 lanzaría el microkernel Mach 2.5, el sistema operativo BSD Unix 4.4 y los componentes del servidor Web Apache de Mac OS X Server. [7] En ese momento, el director ejecutivo interino Steve Jobs aludió al naturalista británico Charles Darwin al anunciar "porque se trata de evolución". [8] En 2000, los componentes centrales del sistema operativo de Mac OS X se lanzaron como software de código abierto bajo la Licencia de fuente pública de Apple (APSL) como Darwin; los componentes de nivel superior, como los marcos Cocoa y Carbon , permanecieron de código cerrado .
Hasta Darwin 8.0.1, Apple lanzó un instalador binario (como una imagen ISO ) después de cada versión importante de Mac OS X que permitía instalar Darwin en los sistemas PowerPC e Intel x86 como un sistema operativo independiente. [9] Las actualizaciones menores se publicaron como paquetes que se instalaron por separado. Darwin ahora solo está disponible como código fuente.
Diseño
Núcleo
El kernel de Darwin es XNU , un kernel híbrido que usa OSFMK 7.3 [10] (Open Software Foundation Mach Kernel) de OSF , varios elementos de FreeBSD (incluido el modelo de proceso, la pila de red y el sistema de archivos virtual ), [11] y una API de controlador de dispositivo orientada a objetos llamada I / O Kit. [12] El diseño del kernel híbrido proporciona la flexibilidad de un microkernel [13] [ verificación fallida - ver discusión ] y el rendimiento de un kernel monolítico . [14]
Soporte de hardware y software
Darwin incluye actualmente soporte para el 64-bit x86-64 variante de los x86 de Intel procesadores utilizados en basados en Intel Macs y los 64 bits de ARM procesadores utilizados en el iPhone 5S y más tarde, la sexta generación del iPod Touch , la séptima generación del iPad y más tarde, 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 silicona de Apple , como los Apple M1 Macs 2020 . Existe un puerto de código abierto del kernel XNU que admite Darwin en plataformas Intel y AMD x86 que no son oficialmente compatibles con Apple, aunque no parece haber sido actualizado desde 2009. [15] También hay un puerto de código abierto del kernel XNU existe para plataformas ARM. [16] Las versiones anteriores admitían algunos o todos los PowerPC de 32 bits , PowerPC de 64 bits, x86 de 32 bits y ARM de 32 bits.
Es compatible con la API POSIX a través de su linaje BSD (en gran parte el espacio de usuario de FreeBSD ) y una gran cantidad de programas escritos para varios otros sistemas similares a UNIX se pueden compilar en Darwin sin cambios en el código fuente .
Darwin no incluye muchos de los elementos que definen macOS, como las API Carbon y Cocoa o la interfaz de usuario Quartz Compositor y Aqua , por lo que no puede ejecutar aplicaciones Mac. Sin embargo, sí admite una serie de características menos conocidas de macOS, como mDNSResponder, que es el respondedor de DNS de multidifusión y un componente central de la tecnología de red Bonjour , y lanzó un marco de gestión de servicios avanzado .
Licencia
En julio de 2003, Apple lanzó Darwin bajo la versión 2.0 de Apple Public Source License (APSL), que la Free Software Foundation (FSF) clasifica como una licencia de software libre incompatible con la GNU General Public License . [17] Las versiones anteriores se publicaron bajo una versión anterior de la licencia APSL, que no cumplía con la definición de software libre de la FSF, aunque sí cumplía con los requisitos de la definición de código abierto . [18]
Historial de versiones
La siguiente es una tabla de los principales lanzamientos de Darwin con sus fechas de lanzamiento y sus correspondientes lanzamientos de macOS . [19] Tenga en cuenta que la versión de macOS correspondiente puede haber sido lanzada en una fecha diferente; consulte las páginas de macOS para esas fechas.
Versión | Fecha | Lanzamientos correspondientes | Notas |
---|---|---|---|
0,1 | 16 de marzo de 1999 | Versiones de Mac OS X Server 1.0 |
|
0,2 | 14 de abril de 1999 | Mac OS X Server 1.0.1 | |
0,3 | 5 de agosto de 1999 | Basado en Rhapsody 5.5
| |
1.0 | 12 de abril de 2000 | Vista previa para desarrolladores 3
| |
1.1 | 5 de abril de 2000 | Vista previa para desarrolladores 4 | |
1.2.1 | 15 de noviembre de 2000 | Mac OS X Public Beta (nombre en código "Kodiak") | |
1.3.1 | 13 de abril de 2001 | Mac OS X v10.0 (nombre en código "Cheetah") |
|
1.4.1 | 2 de octubre de 2001 | Mac OS X v10.1 (nombre en código "Puma") |
|
5.1 | 12 de noviembre de 2001 | Mac OS X v10.1.1
| |
5.5 | 5 de junio de 2002 | Mac OS X v10.1.5 | |
6.0.1 | 23 de septiembre de 2002 | Mac OS X v10.2 (nombre en código "Jaguar") |
|
6,8 | 3 de octubre de 2003 | Mac OS X v10.2.8 | |
7.0 | 24 de octubre de 2003 | Mac OS X Panther | Mac OS X v10.3.0
|
7,9 | 15 de abril de 2005 | Mac OS X v10.3.9 | |
8.0 | 29 de abril de 2005 |
| Mac OS X v10.4.0
|
8.11 | 14 de noviembre de 2007 | Mac OS X v10.4.11 | |
9.0 | 26 de octubre de 2007 |
| Mac OS X v10.5.0
|
9,8 | 5 de agosto de 2009 | Mac OS X v.10.5.8 | |
10.0 | 28 de agosto de 2009 |
| Mac OS X v10.6.0
|
10,8 | 23 de junio de 2011 | Mac OS X v10.6.8 | |
11.0.0 | 20 de julio de 2011 |
| Mac OS X v10.7.0
|
11.4.2 | 4 de octubre de 2012 | Mac OS X v10.7.5 (complementario) | |
12.0.0 | 16 de febrero de 2012 | OS X Mountain Lion | OS X v10.8.0
|
12.6.0 | 27 de de enero de, el año 2015 | OS X v10.8.5 (con actualización de seguridad 2015-001) | |
13.0.0 | 11 de Junio de 2013 |
| OS X v10.9.0
|
13.4.0 | 17 de septiembre de 2014 | OS X v10.9.5 | |
14.0.0 | 18 de septiembre de 2014 |
| OS X v10.10.0 |
14.5.0 | 13 de agosto de 2015 | OS X v10.10.5 | |
15.0.0 | 16 de septiembre de 2015 |
| OS X v10.11.0 y iOS 9.0
|
15.6.0 | 18 de julio de 2016 | OS X v10.11.6 y iOS 9.3.3 | |
16.0.0 | 13 de septiembre de 2016 |
| macOS v10.12.0 y iOS 10.0.1 (versión de lanzamiento inicial)
|
16.5.0 | 27 de marzo de 2017 | macOS v10.12.4 y iOS 10.3
| |
16.6.0 | 19 de julio de 2017 | macOS v10.12.6 y iOS 10.3.3 | |
17.0.0 | 19 de septiembre de 2017 |
|
|
17.5.0 | 29 de marzo de 2018 | macOS 10.13.4
| |
17.6.0 | 1 de junio de 2018 | macOS v10.13.5 | |
17.7.0 | 9 de julio de 2018 | macOS v10.13.6 y iOS 11.4.1 | |
18.0.0 | 24 de septiembre de 2018 |
| |
18.2.0 | 30 de octubre de 2018 | macOS v10.14.1 y iOS 12.1
| |
19.0.0 | 19 de septiembre de 2019 |
| |
19.2.0 | 10 de diciembre de 2019 | macOS 10.15.2 y iOS 13.3 | |
19.3.0 | 28 de enero de 2020 | macOS 10.15.3 y iOS 13.3.1
| |
19.4.0 | 24 de marzo de 2020 | ||
19.5.0 | 30 de abril de 2020 | macOS 10.15.5 y iOS 13.5 | |
19.6.0 | 1 de junio de 2020 | macOS 10.15.6 beta 2 y iOS 13.6.0 beta 2 | |
20.0.0 | 22 de junio de 2020 |
| macOS 11.0 beta 1 y iOS 14.0 beta 1 |
20.1.0 | 3 de septiembre de 2020 | macOS 11.0 y iOS 14.0 | |
20.2.0 | 12 de noviembre de 2020 | macOS 11.1 y iOS 14.3 | |
20.3.0 | 1 de febrero de 2021 | macOS 11.2, iOS 14.4, iPadOS 14.4, watchOS 7.3 y tvOS 14.4. | |
20.4.0 | 20 de abril de 2021 | macOS 11.3, iOS 14.5, iPadOS 14.5, watchOS 7.4 y tvOS 14.5. | |
20.5.0 | 21 de abril de 2021 | macOS 11.4 beta 1 y iOS 14.6 beta 1 |
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 fue diseñado para vincular a Darwin con la versión de Mac OS X y compilar el sistema de numeración, que a su vez se hereda de NeXTSTEP. En el sistema de numeración de compilación de macOS, cada versión tiene un número de compilación inicial único, que identifica de qué versión completa de macOS forma parte. 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 de desarrolladores). [31]
El comando uname -r en 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, ha habido proyectos que tienen como objetivo modificar o mejorar el sistema operativo.
OpenDarwin
OpenDarwin era un sistema operativo dirigido por la comunidad basado en el sistema Darwin. Fue fundada en abril de 2002 por Apple Inc. 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 en las versiones de Darwin; y la comunidad de código abierto / libre se benefició de tener un control total sobre su propio sistema operativo, que luego podría usarse en distribuciones de software libre como GNU-Darwin. [32]
El 25 de julio de 2006, el equipo de OpenDarwin anunció que el proyecto se cerraría, ya que sentían que OpenDarwin se había "convertido en una mera instalación de alojamiento para proyectos relacionados con Mac OS X" y que los esfuerzos para crear un sistema operativo independiente de Darwin habían fracasado. También afirman: "La disponibilidad de fuentes, la interacción con los representantes de Apple, la dificultad para crear y rastrear fuentes y la falta de interés de la comunidad han contribuido a esto". [33] La última versión estable fue la versión 7.2.1, lanzada el 16 de julio de 2004. [34]
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. [35] Desde el cese 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 vuelven de código cerrado. En 2015, el proyecto creó una versión preliminar basada en Darwin 9 con una GUI X11, [36] seguida de una línea de comandos de 17.4 Beta basada en Darwin 17. [37]
Otros proyectos derivados
- MacPorts (anteriormente DarwinPorts), Fink y Homebrew son proyectos para portar programas UNIX al sistema operativo Darwin y proporcionar administración de paquetes . Además, varios administradores de paquetes UNIX estándar, como RPM , pkgsrc y Portage, tienen puertos Darwin. Algunos de estos operan en su propio espacio de nombres para no interferir con el sistema base.
- GNU-Darwin es un proyecto que transfiere paquetes de software libre a Darwin. Empaquetan las imágenes del sistema operativo de una manera similar a una distribución de Linux .
- El proyecto Darwine fue un puerto de Wine que permite ejecutar software de Microsoft Windows en Darwin.
- SEDarwin es un puerto del marco de control de acceso obligatorio de TrustedBSD y partes del marco de SELinux para Darwin. [38] Se incorporó a Mac OS X 10.5. [39]
- El proyecto Darbat es un puerto experimental de Darwin para la familia de microkernel L4 . Su objetivo es ser compatible con los binarios binarios existentes de Darwin. [40]
- El proyecto Darling es una capa de compatibilidad para ejecutar binarios macOS en sistemas Linux. Utiliza algún código fuente de Darwin. [41]
- Hay varios proyectos que se centran en el soporte de controladores: por ejemplo, controladores inalámbricos, [42] [43] controladores de NIC cableados [44] [45] [46] controladores de módem, [47] lectores de tarjetas, [48] y ext2 y ext3 sistemas de archivos. [49] [50]
Ver también
- A / UX
- mkLinux
- OSF / 1
Referencias
- ^ "Descripción general de la arquitectura del núcleo" . Guía de programación del kernel .
- ^ "darwin-xnu / README.md en el maestro" . Archivado desde el original el 31 de marzo de 2019 . Consultado el 21 de noviembre de 2019 .
- ^ "Controladores binarios necesarios para PureDarwin" . Archivado desde el original el 18 de noviembre de 2009 . Consultado el 20 de julio de 2009 .
- ^ "Mac OS X Leopard - Tecnología - UNIX" . Descripción general de la tecnología Leopard . Apple Inc. Archivado desde el original el 27 de diciembre de 2008.
Leopard es ahora un producto registrado de marca abierta UNIX 03, conforme a las especificaciones SUSv3 y POSIX 1003.1 para API C, utilidades de Shell y subprocesos.
- ^ The Open Group (18 de mayo de 2007). "Mac OS X versión 10.5 Leopard en la certificación de equipos Macintosh basados en Intel" . Consultado el 11 de febrero de 2013 .
- ^ "macOS versión 10.13 High Sierra en computadoras Mac basadas en Intel" . El grupo abierto . Consultado el 19 de noviembre de 2017 .
- ^ Walsh, Jeff (22 de marzo de 1999). "Apple se convierte en código abierto con componentes clave del sistema operativo" . InfoWorld . Vol. 21 no. 12. IDG InfoWorld. pag. 40 . Consultado el 17 de febrero de 2020 .
- ^ Kahney, Leander. "Apple abre el código del sistema operativo" . Cableado . Condé Nast . Consultado el 17 de febrero de 2020 .
- ^ web .archive .org / web / 20161007041552 / https: // opensource .apple .com / static / iso /
- ^ Jim Magee. WWDC 2000 Sesión 106 - Mac OS X: Kernel . 14 minutos en.
- ^ "Descripción general de la tecnología Mac: capa de controladores de dispositivo y kernel" . Conexión de desarrollador de Apple . Consultado el 11 de febrero de 2013 .
- ^ Singh, Amit (7 de enero de 2004). "XNU: El núcleo" . Consultado el 11 de febrero de 2013 .
- ^ Roch, Benjamin. "Núcleo monolítico vs. Microkernel". CiteSeerX 10.1.1.89.9877 . Cite journal requiere
|journal=
( ayuda ) - ^ "Funciones adicionales" . Portabilidad de UNIX / Linux para aplicaciones de OS X . Apple Inc.
- ^ "Fuente del núcleo de Voodoo XNU" . Requiere un cliente Apache SVN.
- ^ "XNU en ARMv7" .
- ^ "Opinión de la FSF sobre la licencia de fuente pública de Apple (APSL) 2.0" .
- ^ "Los problemas con las versiones anteriores de la licencia de fuente pública de Apple (APSL)" .
- ^ "Versiones de código abierto" . Conexión de desarrollador de Apple . Consultado el 11 de febrero de 2013 .
- ^ "Nota técnica TN2029: Mac OS X v10.1" . Conexión de desarrollador de Apple . Archivado desde el original el 14 de noviembre de 2001.
- ^ Siracusa, John (5 de septiembre de 2002). "Mac OS X 10.2 Jaguar" . Ars Technica . Consultado el 31 de mayo de 2008 .
- ^ Siracusa, John (9 de noviembre de 2003). "Mac OS X 10.3 Panther" . Ars Technica . Consultado el 31 de mayo de 2008 .
- ^ Siracusa, John (28 de abril de 2005). "Mac OS X 10.4 Tiger" . Ars Technica . Consultado el 30 de mayo de 2008 .
- ^ Siracusa, John (28 de octubre de 2007). "Mac OS X 10.5 Leopard: la revisión de Ars Technica" . Ars Technica . Consultado el 30 de mayo de 2008 .
- ^ Siracusa, John (31 de agosto de 2009). "Mac OS X 10.6 Snow Leopard: la revisión de Ars Technica" . Ars Technica . Consultado el 29 de noviembre de 2009 .
- ^ Como se encuentra en un iPhone 4S con jailbreak
- ^ https://developer.apple.com/videos/play/wwdc2019/702/
- ^ "SystemExtensions" . Documentación para desarrolladores de Apple .
- ^ "DriverKit" . Documentación para desarrolladores de Apple .
- ^ Extensiones del sistema y DriverKit . Documentación para desarrolladores de Apple .
- ^ Prabhakar, Ernie (9 de noviembre de 2001). "Versión de Darwin - Nuevo esquema en la actualización de software 1" . darwin-development (lista de correo). Archivado desde el original el 14 de enero de 2009 . Consultado el 2 de junio de 2008 .
- ^ "OpenDarwin" . Proyecto OpenDarwin. Archivado desde el original el 6 de enero de 2006.
- ^ OpenDarwin Core Team and Administrators (25 de julio de 2006). "OpenDarwin cerrando" . Proyecto OpenDarwin. Archivado desde el original el 4 de agosto de 2006.
- ^ "OpenDarwin 7.2.1 lanzado" . 5 de agosto de 2004. Archivado desde el original el 5 de agosto de 2004 . Consultado el 7 de octubre de 2019 .
- ^ "PureDarwin" .
- ↑ PureDarwin Xmas (2015)
- ^ "PureDarwin 17.4 Beta" . GitHub . PureDarwin. 30 de noviembre de 2019 . Consultado el 11 de enero de 2020 .
- ^ "Seguridad mejorada Darwin" . SEDarwin. 22 de enero de 2007. Archivado desde el original el 5 de octubre de 2011.
- ^ "Novedades de Mac OS X: Mac OS X v10.5" . Biblioteca de Referencia Mac OS X . Apple Inc. 13 de noviembre de 2009. Archivado desde el original el 8 de diciembre de 2009.
- ^ "L4 / Darwin (también conocido como Darbat)" . Ertos.nicta.com.au. 9 de mayo de 2007. Archivado desde el original el 19 de diciembre de 2013.
- ^ "Cariño: capa de traducción de macOS para Linux" . www.darlinghq.org . Consultado el 11 de enero de 2020 .
- ^ yuriwho (5 de mayo de 2002). "Página de inicio de WirelessDriver" . Wirelessdriver.sourceforge.net . Consultado el 12 de julio de 2010 .
- ^ "iwi2200 Darwin" . SourceForge . 27 de marzo de 2009 . Consultado el 13 de junio de 2010 .
- ^ "Port BSD tulip driver (s) a Darwin OS | Descargue los controladores Port BSD tulip al software Darwin OS de forma gratuita en" . Sourceforge.net . Consultado el 12 de julio de 2010 .
- ^ "Controlador de red RealTek para Mac OS X / Darwin" . SourceForge . 15 de marzo de 2006 . Consultado el 3 de junio de 2010 . Proyecto inactivo desde el 15 de marzo de 2006.
- ^ fansui; et al. (1 de agosto de 2007). "RTL8150LMEthernet" . SourceForge . Consultado el 13 de junio de 2010 .
- ^ "Controladores de módem ZyXEL para OS X / Darwin | Descargue los controladores de módem ZyXEL para el software OS X / Darwin de forma gratuita en" . Sourceforge.net. 14 de mayo de 2002 . Consultado el 12 de julio de 2010 .
- ^ "Controlador ATA de tarjeta de PC para Mac OS X" . Pccardata.sourceforge.net. 20 de diciembre de 2001 . Consultado el 12 de julio de 2010 .
- ^ "Mac OS X Ext2 Filesystem | Descargar el software Mac OS X Ext2 Filesystem gratis en" . Sourceforge.net. 14 de octubre de 2002 . Consultado el 12 de julio de 2010 .
- ^ "sistema de archivos ext2 en el espacio de usuario" . SourceForge . 14 de julio de 2008 . Consultado el 13 de junio de 2010 .
enlaces externos
- Lanzamientos de Darwin en Apple Developer Connection
- código fuente de paquetes individuales
- Hexley, la mascota de Darwin
- PureDarwin.org
- The Apple Museum "MacOS X Build Numbers" en Wayback Machine (archivado el 25 de diciembre de 2011)