Darwin
Darwin è un sistema operativo open source POSIX-compliant rilasciato da Apple Inc. nel 2000. E’ composto da codice sviluppato da Apple, e anche da codice derivato da NeXTSTEP, BSD e altri progetti software free.
Darwin forma il core delle componenti sulle quali OS X e iOS sono basati. Esso è compatibile con la Single UNIX Specification versione 3 (SUSv3) e gli applicativi ed utility UNIX POSIX.
Storia
L’eredità di Darwin iniziò con il sistema operativo NeXTSTEP di NeXT (successivamente noto come OPENSTEP), rilasciato per la prima volta nel 1989. Dopo l’acquisizione di NeXT da parte di Apple nel 1997, essa annunciò che avrebbe basato il proprio sistema operativo seguente su OPENSTEP. Questo portò a Rhapsody nel 1997, Mac OS X Server 1.0 nel 1999, Mac OS X Public Beta nel 2000, e Mac OS X 10.0 nel 2001. Nel 2000, le componenti core del sistema operativo di Mac OS X furono rilasciare come software open-source sotto la licenza Apple Public Source License (APSL) come Darwin; le componenti di alto livello, come i framework Cocoa e Carbon, rimasero sorgenti chiusi.
Fino a Darwin 8.0.1, Apple rilasciava un installer binario (in forma di immagine ISO) dopo ogni major release di Mac OS X, e ciò consentiva a chiunque di installare Darwin su computer PowerPC e Intel x86 come sistema operativo autonomo. Gli aggiornamenti minori venivano rilasciati come pacchetti da installare separatamente. Darwin è adesso disponibile solo come codice sorgente, eccetto la variante ARM, la quale non è stata rilasciata sotto nessuna forma separatamente da iOS. Comunque, le vecchie versioni di Darwin sono ancora disponibili in forma binaria, ed uno sviluppatore hobbysta ha preso i sorgenti ufficiali di Darwin e li ha portati su ARM.
Design
Kernel. Darwin è costruito su XNU, un kernel ibrido che combina il microkernel Mach 3, vari elementi di BSD (incluso il modello dei processi, il network stack e il virtual file system), e una API di device driver object-oriented denominata I/O Kit. Il design di kernel ibrido crea un compromesso tra la flessibilità di un microkernel e le prestazioni di un kernel monolitico.
Supporto hardware e software. Darwin attualmente include il supporto per la variante 64-bit x86-64 dei processori Intel x86 utilizzati nei pc Mac e i processori ARM 64-bit usati nell’iPhone 5S, così come i processori ARM 32-bit usati nell’iPhone, nell’iPod Touch, nell’iPad e nella seconda e terza generazione delle Apple Tv. Un port open-source di XNU esiste per il supporto di Darwin su piattaforme AMD e Intel x86 (32-bit) senza l’appoggio ufficiale di Apple, sebbene non sembra essere stato aggiornato dal 2009. Esiste un porting open-source di XNU anche per le piattaforme ARM. Le versioni più vecchie supportavano alcune o tutte le architetture PowerPC 32-bit, PowerPC 64-bit e x86 32-bit.
Darwin supporta la POSIX API per mezzo della sua eredità BSD e una grande quantità di programmi scritti per vari altri sistemi Unix-like può essere compilata su Darwin senza modifiche al codice sorgente.
Darwin non include molti degli elementi identificativi di Mac OS X, come le API Carbon e Cocoa, o il Quartz Compositor e l’interfaccia utente Aqua, e quindi non può eseguire applicazioni Mac. Esso comunque supporta un numero di feature meno conosciute di Mac OS X, come mDNSResponder, che è il risponditore multicast DNS e una componente core della tecnologia network Bonjour, e Launchd, un framework avanzato di gestione servizi.
Licenza
Nel luglio 2003, Apple ha rilasciato Darwin sotto la versione 2.0 della Apple Public Source License (APSL), la quale è approvata come licenza free software dalla Free Software Foundation. Le versioni precedenti erano state rilasciate sotto una versione precedente della APSL, che non incontrava la definizione di free software della FSF, sebbene corrispondeva ai requisiti della definizione di Open Source.
Mascot
Gli sviluppatori Darwin decisero di adottare una mascot nel 2000, e scelsero Hexley l’ornitorinco, tra altri contendenti quali un pesce Aqua Darwin, Clarus il Dogcow (“muccane”) e un’orca. Hexley è un ornitorinco animato che generalmente indossa un cappello che assomiglia alle corna di un demone. Porta un tridente, simile a quello del demone BSD, per simbolizzare il forking dei processi daemon. Hexley è stato disegnato da Jon Hooper. Apple non riconosce Hexley come logo di Darwin.
Il nome di Hexley è stato un errore: avrebbe dovuto essere originariamente nominato in onore di Thomas Henry Huxley, un biologo inglese del 19° secolo che era un famoso sostenitore della teoria dell’evoluzione di Charles Darwin (soprannominato “il bulldog di Darwin”). Comunque, l’ignoranza ha portato non solo a un errore nel nome di Hexley, ma anche su chi si pensava che fosse. Gli sviluppatori apparentemente pensarono che fosse semplicemente l’assistente di Darwin, quando in effetti egli era un eminente biologo per proprio conto. Quando l’errore venne scoperto, era ormai troppo tardi per cambiare, e il nome errato “Hexley” venne mantenuto.
Storia delle release
Questa è una tabella delle major release di Darwin con le rispettive date di rilascio e la corrispondente versione di Mac OS X. Si noti che la versione corrispondente di Mac OS X può essere stata rilasciata in una data diversa.
Versione | Data | Release corrispondente | Note |
0.1 | 16 marzo 1999 | Mac OS X DP | 0.1 è contratto (per ordinamento e identificazione) dato che la versione effettiva interna è Mac OS 10.0 |
0.2 | 10 novembre 1999 | Mac OS X DP2 | |
1.0 | Febbraio 2000 | Mac OS X DP3 | |
1.1 | 5 aprile 2000 | Mac OS X DP4 | |
1.2.1 | 15 novembre 2000 | Mac OS X Public Beta | Nome in codice "Kodiak" |
1.3.1 | 13 aprile 2001 | Mac OS X v10.0 | Prima release commerciale di Darwin |
1.3.1 | 21 giugno 2001 | Mac OS X v10.0.4 | Tutte le release di "Cheetah" (10.0–10.0.4) avevano la stessa versione di Darwin |
1.4.1 | 2 ottobre 2001 | Mac OS X v10.1 | Miglioramenti alle prestazioni nel "tempo di boot, threat real-time, gestione thread, cache flushing, gestione della preemption". Il supporto per network file system SMB. Wget sostituito con cURL. |
5.1 | 12 novembre 2001 | Mac OS X v10.1.1 | Cambio schema di numerazione per corrispondere allo schema di build di Mac OS X. (es. Mac OS X v10.1 contiene build number a partire da 5 così Mac OS X v10.1.1 è adesso basato su Darwin 5.1; es: 10.1 significa 5, 10.1.1 significa 5.1, ecc.) |
5.5 | 5 giugno 2002 | Mac OS X v10.1.5 | Ultima release di "Puma" |
6.0.1 | 23 settembre 2002 | Mac OS X v10.2(Darwin 6.0.2) | GCC aggiornato da 2 a 3.1, supporto IPv6 e IPSec, servizio mDNSResponder discovery daemon (Rendezvous), aggiunta di CUPS, Ruby e Python, supporto journaling in HFS+ (Darwin 6.2), profili applicazione ("pre-heat files) per avvio programmi pià rapido. |
6.8 | 3 ottobre 2003 | Mac OS X v10.2.8 | Ultima release di "Jaguar" |
7.0 | 24 ottobre 2003 | Mac OS X v10.3 | Layer BSD sincronizzato con FreeBSD 5, deframmentazione file automatica, hot-file clustering, e case sensitivity opzionale in HFS+, bash invece di tcsh come shell di default, supporto sola lettura NTFS (Darwin 7.9) |
7.9 | 15 aprile 2005 | Mac OS X v10.3.9 | Ultima release di "Panther" |
8.0 | 29 aprile 2005 | Mac OS X v10.4 Mac OS X forApple TV(Darwin 8.8.2) | Interfaccia stabile di programmazione kernel, finer-grained kernel locking, strato BSD 64-bit, framework launchd per gestione servizi, attributi file estesi, access control lists, comandi come cp e mv aggiornati per preservare attributi estesi e resource forks. |
8.11 | 14 Novembre 2007 | Mac OS X v10.4.11 | Ultima release di"Tiger" |
9.0 | 26 ottobre 2007 | iPhone OS 1(Darwin 9.0.0d1) Mac OS X v10.5 | Piena compatibilità POSIX, aggiornato modello di scheduling gerarchico dei processi, file di swap allocati dinamicamente, limiti risorse dinamici (per file e processi), sandboxing dei processi, randomizzazione addres space layout, framework DTrace, demone eventi file system, directory hard links, Apache 1.3 e PHP 4 aggiornati ad Apache 2.2 e PHP 5, supporto sola lettura ZFS. |
9.8 | 5 agosto 2009 | Mac OS X v10.5.8 | Ultima release di "Leopard" |
10.0 | 28 agosto 2009 | Mac OS X v10.6 iOS 4 | Fine supporto ufficiale per architettura PowerPC (nonostante numerosi binari fat, come il kernel, contengono ancora immagini PPC), driver e kernel a 64-bit, framework di parallelizzazione libdispatch, OpenCL, framework heterogeneous computing, supporto per blocks in C, compressione file trasparente in HFS+. |
10.8 | 23 giugno 2011 | Mac OS X v10.6.8 | Ultima release di "Snow Leopard" |
11.0.0 | 20 luglio 2011 | Mac OS X v10.7iOS 5[21] | XNU non supporta più binari PPC (fat binary solo per i386, x86-64). XNU richiede processore x86_64. Migliorato sandboxing applicazioni. |
11.4.0 | 1 febbraio 2012 | Mac OS X v10.7.4 | "Lion" |
11.4.2 | 4 ottobre 2012 | Mac OS X v10.7.5 | "Ultima versione supplementare di Lion" |
12.0.0 | 16 febbraio 2012 | OS X v10.8 | Nome in codice "Mountain Lion", la parola "Mac" è stata rimossa dal nome. |
12.3.0 | 6 gennaio 2013 | OS X v10.8.2 | Nuova versione di Darwin in OS X 10.8.2 |
12.4.0 | 4 giugno 2013 | OS X v10.8.4 | Nuova versione di Darwin in OS X 10.8.4 |
12.5.0 | 12 settembre 2013 | OS X v10.8.5 | Nuova versione di Darwin in OS X 10.8.5 |
13.0.0 | June 11, 2013 | iOS 6 and OS X v10.9 | OS X v. 10.9 è denominato "Mavericks" |
14.0.0 | 18 settembre 2013 | iOS 7 |
Fonte: Wikipedia