Mac OS X
Mac OS X è il sistema operativo di Macintosh per il nuovo millenio.
Si tratta certamente della più radicale riscrittura del sistema
operativo dal System 1 del 1984, al punto di mantenere del programma originale
solamente il look & feel, la famosa interfaccia amichevole Mac
Mac OS X è costruito attorno a vari strati di componenti, secondo i
dettami più moderni dei sistemi operativi. L'interfaccia con l'utente prende il
nome di Aqua, mentre le interfacce del sistema con i programmi sono ben tre:
Classic, per i programmi che giravano sotto Mac OS 8 e 9, Carbon, per i
programmi aggiornati per Mac OS X e Cocoa, per i programmi scritti
appositamente per X. Sotto il cofano, il motore del sistema è Darwin, un sistema
operativo Open Source basato su Mach 3, un sapore di Unix, e tre nuclei di
routine per la grafica e il multimedia: il noto QuickTime,
OpenGL e Quartz, il nuovo Display Postscript di Mac.
Anche per quanto riguarda l'interfaccia, a dire il vero, ci sono state
non poche modifiche. Il nuovo look si chiama aqua e rivede non solo l'estetica
a cui siamo abituati, ma abbatte anche alcune delle convenzioni di base della
vecchia interfaccia, come, ad esempio, il disco rigido sulla scrivania.
Alla base di tutto c'è il microkernel: il kernel di un sistema
operativo ne costituisce lo scheletro; è quella parte che si occupa di far
girare gli altri moduli del sistema e le applicazioni, assegna ad ognuna di
esse la porzione di memoria di cui necessitano e si preoccupa che nessuna
applicazione possa sconfinare sulla memoria altrui. Il Kernel gestisce fra le
applicazioni la disponibilità del microprocessore, e si occupa di mettere a
disposizione i dispositivi di input/output, cioè, per esempio, registra i dati
sul disco. Il nucleo del nuovo sistema operativo prende il nome di Darwin,
Il microkernel attuale di
NextStep è Unix, o meglio Mach 3, una sua versione alleggerita e semplificata
che di Unix contiene l'essenziale, per avere un sistema veloce e compatto. Ciò
nonostante NextStep, così come Rhapsody, potrebbe funzionare anche con un
kernel differente.
Il formato dei file di NextStep è Unix; in Mac OS ogni file è composto
da due porzioni (non visibili dall'utente, ma disponibili al programma): un
data fork e un resource fork. Il data fork contiene i dati, il resource fork le
risorse, cioè il tipo e il creatore del file, l'icona, il codice del programma,
i menu, le icone, i suoni e altro.
In Unix il resource fork non esiste. Ognuna di queste parti consiste
in un file indipendente. L'utente però non viene confuso, come nel DOS (e in
Windows) da una molteplicità di documenti collegati: in realtà ne vede uno
solo, che per il sistema è una directory (in Mac OS sarebbe una cartella).
Questa directory contiene i differenti file con tutte le componenti
dell'applicazione. Non c'è comunque pericolo che l'utente dia una sbirciata a
queste componenti, perché la cartella è protetta, e ha l'apparenza di una
applicazione, che viene lanciata da un doppio click.
Sopra il kernel, e strettamente sotto la sua direzione, girano le
altre componenti del sistema operativo e i programmi. Gli uni e gli altri sono
collezioni di oggetti, cioè parti di codice indipendenti, che comunicano tra
loro spedendosi e ricevendo messaggi. Nessun oggetto ha la possibilità di
entrare nel contenuto dell'altro, e ogni oggetto funziona indipendentemente dal
modo con cui gli altri oggetti sono stati costruiti. In questo modo ogni
oggetto può essere modificato o sostituito dallo sviluppatore senza
preoccuparsi che il resto del sistema o dell'applicazione smetta di funzionare,
o che insorgano conflitti o incompatibilità fra le applicazioni. In questo modo
creare e aggiornare un programma diventa molto più semplice e alla portata di
sviluppatori più piccoli delle organizzate software house attuali. Per l'utente
questo significa più programmi e più fantasia.
in pratica
Una delle componenti del sistema operativo è il Windows Manager, che
si occupa di stabilire quale fra le applicazioni aperte sia al momento quella
che riceve l'attenzione dell'utente: in pratica a quale applicazione appartiene
la finestra attiva. Windows Manager si preoccupa di far giungere al programma
in primo piano i click del mouse e le parole che vengono battute sulla tastiera,
e fornisce al programma lo spazio su cui disegnare all'interno della finestra,
senza che possa avere accesso ad un'altra finestra. Ogni applicazione gira in
uno spazio ad essa dedicato dal sistema e non ha la possibilità di creare
confusione nello spazio dedicate alle altre, trascinandole in una eventuale
crash di sistema.
Pre-emptive multitasking significa che il tempo del microprocessore è
suddiviso dal sistema fra le varie applicazioni (o meglio, fra i vari processi
attivi); nessun programma può pretendere tutta per se l'attenzione del
processore, né può evitare di restituirne l'attenzione nel caso il programma
finisca in una situazione di errore.
Mac OS System 9 è dotato di Collaborative Multitasking, che significa
che richiedere l'attenzione del microprocessore e restituirlo al sistema è a
discrezione del programma stesso, e che il fatto che il computer funzioni in
multitasking dipende dalla correttezza con cui è stata scritta ognuna delle
applicazioni che gira (e dal fatto che nessuna si blocchi).
La conseguenza pratica più immediata di questa differenza è che OS X è
un sistema assolutamente stabile: niente bombe, niente blocchi, niente riavvii.
Ma anche indipendentemente dalle situazioni di errore, l'utente non è
mai rallentato dalle operazioni del computer, come la stampa, il collegamento
in rete, la copia di un file, un filmato QuickTime che gira sullo sfondo.
condizioni
Windows Manager fa parte di un'altra componente che si occupa di
disegnare le immagini sullo schermo, basato su PDF. Notoriamente PostScript è
un linguaggio di descrizione della pagina molto utilizzato dalle stampanti e
divenuto uno standard nel cosiddetto mercato del desktop publishing. Programmi
come Illustrator, FreeHand, PageMaker, XPress utilizzano questo standard.
Macintosh non usa PostScript per scrivere sullo schermo, bensì un insieme di
routine grafiche che prendono il nome di QuickDraw. Neppure Windows usa una
forma di PostScript a schermo. Perciò i programmatori che creano programmi di
grafica di tipo PostScript devono scrivere un doppio codice per visualizzare le
immagini su schermo e in stampa. Con DPS ciò non è più necessario perché il
linguaggio è il medesimo: ciò renderà il nuovo Macintosh la piattaforma di
scelta per la grafica, come già è stato in passato.
Rispetto al PostScript delle stampanti, il DPS ha una serie di comandi
per comprendere l'input dell'utente. DPS non è veloce come QuickDraw e non ha
tutte le capacità di GX; al momento gli ingenieri di Apple e NeXT stanno
lavorando fianco a fianco con Adobe (la software house proprietaria di
PostScript) per inserire in Rhapsody le tecnologie di ColorSync e QuickDraw GX
(le nuove routine di descrizione della pagina di Mac OS) sempre che risulti
possibile.
Altri moduli del sistema operativo non presenti oggi in NextStep, ma
che lo saranno in Rhapsody, sono QuickTime Media Layer, OpenDoc, Java Runtime,
Speech Manager e forse AppleScript e Apple Guide, tutte tecnologie già presenti
nell'attuale versione di Mac OS.
Java Runtime è analogamente un modulo a oggetti in grado di contenere
applicazioni tipicamente studiate per il World Wide Web. Le applicazioni Java
(dette Applet) possono girare anche all'interno di oggetti OpenDoc.
multiprocessing
NextStep è un sistema portatile, cioè non è stato scritto per nessuna
piattaforma o microprocessore in particolare. Il primo processore su cui
NextStep girava è stato un Motorola 68040, ma oggi ne sono state scritte
versioni per PowerPC, Intel, e workstation Sun.
Mac OS X gira solo su piattaforma Apple basata su PowerPC, ma sarebbe
facilmente in grado di farlo su ogni altro computer.
Cocoa
Cocoa permette di disegnare gli elementi visivi dell'applicazione così
come si fa in HyperCard o in Visual Basic. A ognuno di questi oggetti, creato
automaticamente, si può assegnare del codice in un linguaggio chiamato
Objective C, che è una forma di C semplificato e elegante, simile a Java e a
SmallTalk, a differenza di C++ che del C rappresenta una versione complicata.
Anche
Tramite OpenStep non solo si possono creare programmi per NextStep ma
anche, richiamando le opportune API, per Windows e Solaris. Ciò dovrebbe essere
sufficiente per fare del nuovo Macintosh la piattaforma di sviluppo di scelta,
così come QuickTime Media Layer dovrebbe essere il motivo per farne la
piattaforma di sviluppo per il multimediale.
la compatibilità
Come bonus, un ambiente protetto all'interno della memoria fa girare
le applicazioni scritte a tutt'oggi per Mac OS System 9. Non è un emulatore
perché le applicazioni si rivolgono direttamente al processore PowerPC, e
perciò non sono rallentate in alcun modo. Ogni applicazione che si blocchi in
questo ambiente Mac virtuale può portare al blocco del modulo ma non del
sistema e delle applicazioni che girano al di fuori di esso.
Da ultimo, una rassicurazione per tutti gli utenti Macintosh
impensieriti dal dover cambiare il proprio modo di lavorare: Mac OS X è dotato
ancora di un Finder come quello a cui siamo abituati dal 1984. Solo un bel po'
più moderno.