[an error occurred while processing this directive]
diff logo Informatica e sistemi alternativi
su questo sito sul Web
    Home   Chi siamo    Contattaci    Scrivi per diff    Proponi un argomento 14/10/24
    Cos'è diff    Come accedere    F.A.Q.    Promuovi    Dicono di diff    Amici di diff    
AmigaOS
Linux
FreeBSD
BeOS
OpenSource
Java
Database
Informatica
Hardware
E-Commerce
Narrativa

Introduzione a Darwin
di Rob Braun
traduzione di Pietro Leone

Prefazione alla traduzione italiana

Il Mac OS X sta riscuotendo commenti e critiche non sempre lodevoli quanto meriterebbe, abbiamo ritenuto corretto prendere un articolo apparso su Daemon News  e tradurlo per far chiarezza su una parte di questo nuovo sistema operativo.
Per chi desideri leggerlo in lingua originale, ecco il link: Introduction to Darwin pubblicato su Deamon News nel mese di ottobre 2000.



Articolo

Ultimamente c'è stato molto interesse nei confronti di Darwin e del MacOSX, ma essi sono stati trattati dalla comunità del BSD come niente di più di una curiosità. La maggior parte delle persone con cui ho parlato a riguardo di Darwin o non sanno cosa sia oppure dicono: "Ah, sì, è il MacOSX, vero?" Questo articolo è una breve introduzione a Darwin, sui motivi della sua importanza e su come egli differisca dal resto dei sistemi operativi BSD.

Darwin è il cuore del MacOSX, cuore che deriva dal FreeBSD e dal Mach. Questa è la definizione che gli è stata attribuita su tutto il web, ma cosa ciò effettivamente significa? Darwin deriva dalla versione 3.0 di Mach e dalla 3.2 di FreeBSD, amalgamati insieme in uno stile che ricorda molto NeXT. Una variante del suo kernel e delle utilità dell'utente formano il cuore del MacOSX, ma Darwin è un vero e proprio sistema operativo a sè stante: ha un programma di installazione, tutte le normali utilità ed è stato convertito anche XFree86, quindi da tutti i punti di vista Darwin è un sistema operativo completo.

Quale è la differenza fra Darwin e MacOSX? Il primo è la versione a sola linea di comando del secondo, il suo kernel è la versione di sviluppo di quello del MacOSX (senza alcuni driver proprietarii). Se elimini l'interfaccia grafica e tutti i relativi programmi e le librerie dal OSX, avrai Darwin.
I sorgenti di tutto ciò che sta alla base di Darwin sono stati rilasciati sotto la licenza APSL (Apple Public Source License).

Perché una persona dovrebbe voler lavorare su Darwin? È controllato dalla Apple ed è parte di un prodotto commerciale, quindi perché investire in esso il tuo tempo ed i tuoi sforzi?
Vi sono dei vantaggi e degli svantaggi nel lavorare su un progetto controllato da una compania commerciale. Uno dei grandi vantaggi è che vi sono molte persone che lavorano al progetto a tempo pieno. Uno degli svantaggi è che se la tua idea per il miglioramento non è gradita, non sarà accettata né sviluppata. Comunque questo modello di sviluppo non è molto diverso da quello che attualmente utilizza BSD. C'è un gruppo di sviluppatori ed i cambiamenti all'archivio dei sorgenti deve essere approvato da uno o più di essi. Se non fai parte di questo team di programmatori che sviluppano il sistema ed essi non gradiscono la tua idea essi hanno il diritto di non implementarla o di non aggiungere il codice che eventualmente hai già scritto. Quindi non c'è molta differenza rispetto al lavorare su uno degli altri sistemi BSD.

La più ovvia ragione per cui la gente vuole utilizzare Darwin è quella di avere una prima impressione del MacOSX prima del suo rilascio. Questo può includere lo sviluppo di driver od anche semplicemente giocarci ed abituarsi alle sue idiosincrasie prima di dover lavorare con MacOSX. Questo per la gente è il motivo più comune per utilizzare Darwin.

Inoltre Darwin è un BSD che funziona su hardware Macintosh e spesso questa è l'unica scelta ragionevole per le nuove macchine della Apple. La maggior parte dei componenti forniti dall'Apple sono supportati e lo saranno in futuro e non dovrete più preoccuparti del fatto che l'autore di un determinato driver abbia o meno del tempo libero questo fine-settimana per lavorare sugli errori del programma. Per molte persone questo è un motivo più che valido per utilizzare Darwin: il supporto dell'hardware e l'interazione con MacOSX sono molto utili.

La cosa più interessante però è che Darwin mantiene la compatibilità verso BSD, ma con un approccio ai problemi differente. Il sistema operativo BSD è in circolazione oramai da decenni e non ha subito sostanziali cambiamenti ne corso del tempo. C'è, ovviamente, un continuo sviluppo, la conversione verso differenti architetture ed aggiunte di nuove caratteristiche, ma gli aspetti fondamentali non sono stati cambiati. FreeBSD, per esempio, ha fatto un enorme lavoro per supportare i moduli caricabili del kernel, ma è stato fatto molto lentamente ed è stata fatta molta attenzione perchè ciò avesse un impatto minimo sul design del kernel. Darwin ha avuto avanti un approccio molto più radicale, che ha portato a grandi modifiche del design del kernel. Ogni strada percorsa ha i suoi svantaggi ed i suoi meriti ed a questo punto è impossibile dire quale dei due sia il migliore, ma sarà molto interessante osservare le differenze fra i due e la loro evoluzione.

Quindi, che cosa distingue Darwin dagli altri BSD?
Quale è la nicchia di Darwin nel mondo dei sistemi BSD?
Il neonato kernel della Apple non ha alcuna caratteristica particolare che lo distingua dagli altri BSD, come, OpenBSD, il più sicuro, e NetBSD, il più facilmente portabile su altre architetture. La cosa di Darwin più vicina ad una peculiarità è l'essere il "cuore del MacOSX", ci sono, comunque, grandi differenze fra Darwin e gli altri BSD, sia al livello del kernel, sia a quello della gestione dell'utente.


Ho detto precedentemente che Darwin deriva da un unione in stile NeXT di Mach e FreeBSD. Nonostante l'integrazione con Mach, Darwin non è un sistema operativo dotato di microkernel puro. Tutte le altre porzioni del kernel dividono lo spazio di indirizzamento con Mach. Ciò previene un abbattimento delle prestazioni quando le altre parti devono comunicare con Mach ed permette anche una maggiore integrazione di tutti i componenti.

Oltre ai componenti nel kernel di Mach e BSD, l'interfaccia dei driver funziona tramite un componente chiamato IOKit. Questo è un modello per la creazione di driver orientato agli oggetti, sfortunatamente ciò significa che tutti i driver esistenti per BSD devono essere convertiti per IOKit prima che possano essere utilizzati da Darwin, ma significa anche che verranno fornite molte caratteristiche che attualmente mancano a BSD. Con IOKit, potenzialmente ogni driver, e classe di driver, può essere caricato e rimosso dinamicamente. La natura ad oggetti riduce anche il codice ridondante e semplifica lo sviluppo dei driver. L'interfaccia è stata posta lì apposta per te quindi i nuovi sviluppatori avranno una maggiore facilità a capire cosa è a loro richiesto. Io non sono un programmatore "orientato agli oggetti", ma trovo che lo IOKit sia molto interessante.

Quindi possiamo riassumere la relazione fra tutti questi differenti componenti in poche parole, Mach fornisce l'ambiente per la memoria virtuale e molto del codice di partenza specifico della macchina, IOKit i driver per le varie periferiche e BSD fornisce le interfacce a tutte queste cose, come i file-system, le chiamate di sistema e praticamente tutto ciò di cui hanno bisogno le utilità dell'utente. Questa è ovviamente una grossa semplificazione della relazione fra i diversi componenti, ma dovrebbe fornirti una vaga idea su come interoperino le varie parti.

In effetti la parte dell'ambiente che l'utente vede è molto simile agli altri BSD, avrai ancora /etc, /bin/sh e tutto ciò che ti sia famigliare su una macchina BSD. Comunque Darwin ha un approccio differente nel gestire tutti i lavori comuni del sistema; come le vecchie macchine NeXT, Darwin utilizza NetInfo per buona parte della configurazione del sistema, del resolver e le informazioni degli utenti. L'obiettivo è quello di centralizzare la base dati delle informazioni per la configurazione della macchina piuttosto che averla sparsa in molti file distribuiti un po' da tutte le parti. Per gli utenti che preferiscono fare le cose nella maniera tradizionale è possibile eliminare i servizi di NetInfo ed utilizzare /etc/passwd, /etc/resolv.conf e così via. Personalmente trovo che l'interfaccia di NetInfo sia confusa e di difficile utilizzo, quindi ho scelto una configurazione di Darwin priva di NetInfo.

Darwin è un BSD con molte deviazioni dal design tradizionale, queste sono sia la sua forza sia la sua debolezza, anche se non utilizzi Darwin, puoi, però, imparare molto anche solamente seguendone l'evoluzione.

La prova definitiva per Darwin come un sistema operativo a sè stante non è molto distante nel futuro, molti suoi attuali utilizzatori lo considerano come un'anteprima di MacOSX, quanto si sarà evoluto Darwin quando MacOSX verrà rilasciato?

Per maggiori informazioni su Darwin, vedi Darinfo.

Darwin può essere scaricato dal sito della Apple.

BSD
OPENSOURCE


Pietro Leone
Studente di Scienze Naturali all'Universita degli Studi di Torino.
Appassionato di informatica, utente Amiga, Linux e programmatore dilettante in C.
Altri hobby: storia militare, strategia e Giochi di Ruolo.

Puoi contattare l'autore scrivendo a:
leone@diff.org


Altri articoli tradotti da Pietro Leone:
Troppo Linux
Linux è come la pizza?
Migliaia di cittadini morti e milioni privati dei diritti civili?
L'idiozia brevettabile
Unix vs. Microsoft Windows NT Server 4
Introduzione a Darwin
X Window deve morire!
Che cosa Linux può imparare da FreeBSD?
Cosa c'è di nuovo in Gnome 1.2


 


La tua opinione su quest'articolo ci sarà utile per la scelta dei contenuti dei prossimi articoli, per cortesia lasciaci un tuo parere su quello che hai letto:
nome:
email:
Commento:
Gradimento:
Utile Interessante Continuate con quest'argomento

© 1999,2000,2001,2002 NonSoLoSoft di Ferruccio Zamuner (Italia)- tutti i diritti sono riservati