DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

A domanda rispondo - sezione MacOSX

Memoria protetta e robustezza del sistema operativo

Si parla tanto di memoria protetta, ovvero di un metodo di controllo in cui
il sistema operativo controlla tutti i processi e chiude quelli che a suo
avviso possono danneggiare il normale funzionamento del computer.

Non sarà un'arma a doppio taglio?

Chi ha avuto esperienze di crash noterà che a volte basta il solo sistema
operativo per bloccare il computer. (Io ho avuto questo tipo di esperienza
con tutte le versioni che ho avuto...) Chi ci assicura che non può succedere
anche con Mac OS X, Windows 2000 eccetera? Anzi, con l'X non potrebbe essere peggio, visto che il nuovo OS
ha più priorità di vita e di morte sugli altri processi? In fondo è una cosa
creata da uomini, non può "ubriacarsi"?

Ricordo che TUTTI
-tutti- gli OS hanno cedimenti e casini propri(chi mi sa dire il
contrario?)... solo che qui si danno più possibilità al sistema di
incasinare tutto quando si impalla...

Keiji Z.

Vero: basta il sistema operativo a mandare in crash un calcolatore: sono famigerati infatti i suicidi occasionalmente commessi da Windows e Mac OS. Per la verità, in Windows diventano sempre più rari. Microsoft parla di un "tempo medio tra i riavvii" di 72 giorni su Windows 2000. Sarei curioso di sapere come l'hanno calcolato e devo aggiungere che nella mia esperienza, su un sistema usato intensamente la cifra vera è molto più vicina alle 72 ore. Poi non è che si pianti, almeno non sempre, ma diventa così lento che è indispensabile riavviarlo.

La memoria protetta serve al sistema operativo per bloccare una applicazione che è "impazzita" prima che possa danneggiare tutte le altre aperte. Leggevo su una rivista per programmatori che il caso statisticamente più frequente è che un programma esegua codice valido ma acceda (per esempio attraverso un puntatore deallocato, lo dico per chi sa programmare) a dati in modo erroneo. In pratica, va a legge e scrivere dati in un punti dove dati non esistono. Se la memoria non è protetta, come in Mac OS classico, il programma bacato può sputtanare altre applicazioni innocenti o addirittura lo stesso sistema operativo.

Quanto a Mac OS X... Alla base di X c'è Unix BSD, il sistema operativo più robusto al mondo. Trent'anni di storia, il più studiato nelle università e nei laboratori di ricerca.

Fai un salto su www.netcraft.com. Troverai alcune interessantissime statistiche sulla "durata in vita" dei sistemi operativi che stanno sotto ai server web. Tu scrivi il nome di un sito (per esempio "db.accomazzi.net") e il sito ti dice che sistema operativo usa e da quanto tempo il calcolatore non viene riavviato. Inoltre, puoi guardare una classifica che elenca tutti i sistemi che funzionano ininterrottamente. Tutte le macchine rimaste in piedi per più tempo (in alcuni casi anche tre anni) sono Unix BSD. Tre anni a frullare, aprire e chiudere applicazioni, gestire milioni di visitatori (e ogni visitatore in Unix è un nuovo processo che parte, sappi).

A me è capitato un paio d'anni fa con il vecchio Mac OS X Server 1.0, montato sul G3/233, di riuscire a creare una condizione di quasi-crash in cui la freccia si muove ma nulla risponde ai clic. Ho lanciato "telnet" sul portatile, mi sono collegato al G3 in rete (ha risposto subito), ho dato ordine di chiudere l'interfaccia utente grafica (che è un processo come tanti altri che girano sopra al nucleo Unix). OS X, tranquillissimo, ha eseguito, poi l'ha ricaricato e ha continuato a lavorare felice. Un po' come quando, dentro al Mac OS classico quando non si è bloccato, tu chiudi il Finder usando un programmino ad hoc e lui riparte da solo dopo un istante.

Unix è una roccia, punto. Tutto il sofwtare Apple che ci gira sopra, dal Finder in giù, è software scritto di fresco e mi posso anche aspettare che si pianti. Ma tutto è una applicazione, non il sistema operativo. Se sei costretto, lo ammazzi e vai avanti.

Un amico mi raccontava che è riuscito a mandare in crash l'ambiente Classic (cioè il simulatore che viene usato per eseguire applicazioni create per Mac OS 9), in modo tale per cui non si voleva più riaprire, e lui ha riavviato il computer per rimediare. Primo, anche qui parliamo della Beta Pubblica, non della versione definitiva. Secondo, resta da vedere se un superesperto di X (non io, che parto con un paio d'anni di vantaggio ma non sono un superesperto) non sarebbe riuscito a venirne a capo.

Per la verità, si può mandare in crash l'intero sistema operativo X caricando un driver mal scritto. I driver in OS X "vivono" insieme al nucleo del sistema operativo e pertanto potrebbero danneggiarlo. Conseguenze. 1. Apple sta cercando di scrivere driver universali (per esempio, non serve software Iomega per vedere uno Zip). 2. I produttori di periferiche stanno andando con i piedi di piombo e ci sono pochissimi driver disponibili. 3. Dobbiamo tutti esercitare la massima prodenza nell'installare un driver (in gergo Mac OS X, un "kext") se ci teniamo alla pellaccia. Per la cronaca, "kext" è la contrazione di "kernel extension".