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.