
Nel primo articolo di questa serie abbiamo accennato a come Apple avesse già in mente di passare (o quanto meno supportare) la piattaforma X86 di Intel.
Una migrazione decisamente lunga se si pensa che dal 1996 occorrono ben 10 anni e la quinta versione di Mac OS X, ovvero “Tiger”, per avere un primo sistema stabile e pubblico per il chip maker di Santa Clara. La presentazione di Mac OS X 10.4 avviene, come di consueto, al WWDC, tenutosi il 28 giugno del 2004.
Il rilascio ufficiale arriva il 29 aprile del …

Nell’articolo precedente abbiamo parlato del meccanismo delle Syscalls, e abbiamo visto come fare per passare il controllo al kernel, per poi tornare al codice utente.
In un sistema del genere, dove i task degli utenti sono separati rispetto al kernel del Sistema Operativo, è possibile eseguire un certo numero di task in modo concorrente. L’alternarsi dei task in rapida successione consente di rendere l’illusione che tali task vengano eseguiti contemporaneamente, anche se il sistema è dotato di una singola unità di calcolo (sistema con singola CPU).
Esistono svariati modi per raggiungere lo …

La prima versione di Mac OS X viene rilasciata il 24 marzo del 2001 ed è indicata come MAC OSX 10.0 “Cheetah”. Apple comincia così ad affiancare al numero di release un suffisso legato al nome di felini, in questo caso un ghepardo, cosa che diventerà ufficiale con Tiger. Questa scelta verrà motivata, solo alcuni anni dopo, come un modo per evidenziare la velocità, la fluidità e soprattutto la reattività di OS X rispetto agli altri sistemi operativi.
MAC OSX 10.0 “Cheetah”
Cheetah fa decisamente tesoro dei feedback raccolti con il programma …

Da diversi mesi avevo deciso di preparare una serie di post per ripercorrere i 10 anni di MacOS X, anche in virtù dell’uscita di Lion.
Ora a questi due fattori se ne è aggiunto un terzo che rende improrogabile l’argomento: l’addio di Steve Jobs al ruolo di CEO di Apple, annunciato tra il 24 e il 25 agosto 2011 a Borse chiuse per evitare ripercussioni sulle quotazioni azionarie.
Nei prossimi post ci concentreremo su MacOS X che trova le sue radici nel rientro di Jobs in Apple con l’acquisizione di NeXT, avvenuta …

Nel precedente articolo abbiamo parlato della separazione tra User e System Mode e abbiamo accennato al meccanismo delle syscalls, neessario per richiedere un servizio al kernel da parte di un task in User Mode.
Vediamo adesso come ciò avvenga concretamente nella piattaforma ARMv5 (tutti gli ARM della famiglia ARM9). Premetto che la piattaforma di riferimento è stata scelta appositamente per mostrare una tecnologia semplice da gestire, ma al tempo stesso molto diffusa sia in ambito industriale che in quello consumer. Architetture altrettanto semplici, come MIPS o AVR32, sono infatti meno note e diffuse, …

In questo appuntamento agostano con la nostalgia informatica, ci piace presentarvi ed invitarvi ad un evento sul sulla storia informatica organizzato dal nostro ottimo Felice Pescatore. Speriamo che, da retro-nostalgici DOC, condividiate con lo staff di Appunti Digitali l’entusiasmo per un’iniziativa del genere – che non mancheremo di dettagliare meglio strada facendo – e l’auspicio che simili attività siano sempre più frequenti, onde mantenere viva la memoria di quanto la nostra nazione ha saputo, in tempi certamente migliori di questi, dare al mondo informatico.
Oggi sfruttiamo l’angolo settimanale dedicato alla nostalgia …

Nel precedente articolo, abbiamo evidenziato la necessità di astrarre dati e codice di un programma, servendoci del concetto di task.
Analizziamo adesso un esempio di implementazione dei task: il modello dei processi introdotto da UNIX, adottato poi in varie forme da tutti gli OS moderni.
I processi di UNIX presentano una struttura molto complessa, che riflette il livello di sofisticazione necessario per un OS come UNIX, dotato di multiutenza e multitasking. In questo articolo non scenderemo nei particolari delle varie implementazioni di UNIX, ma ci limiteremo ad illustrarne a grandi linee alcuni …

Nel precedente articolo abbiamo parlato del KERNAL, un rudimentale OS di Commodore, ed abbiamo spiegato come esso implementi una forma di astrazione dell’hardware.
Tramite tale astrazione, il software può accedere alle funzioni base della macchina, controllarne le periferiche di I/O e gestirne le risorse, senza tuttavia conoscerne i dettagli implementativi. In termini tecnici, quella che si presenta al programmatore è una Interfaccia.
Studiando attentamente le funzioni del KERNAL ci si accorge facilmente che manca una precisa definizione del concetto di programma.
In poche parole, possiamo collocare dati ed istruzioni in modo sostanzialmente arbitrario. …

Nel precedente articolo abbiamo introdotto il Debug Monitor e abbiamo accennato alle funzioni base che dovrebbe avere un sistema operativo minimale, per consentire l’esecuzione di semplici programmi sulla macchina.
Ad essere precisi, su questo genere di macchine non è indispensabile un vero Sistema Operativo, ma torna molto utile avere a disposizione delle funzioni generiche che siano quanto più possibile indipendenti dalla piattaforma. L’indipendenza dalla piattaforma consente, teoricamente, di riutilizzare lo stesso codice su macchine diverse purché queste dispongano di un livello di astrazione compatibile.
In questa ottica di astrazione, parola chiave di …

Eccoci giunti al quarto appuntamento dedicato al DOS
Il DOS senza Microsoft
Se con l’MS DOS 6 è chiaro che Microsoft intende abbandonare lo sviluppo del DOS per concentrarsi su Chicago (alias Windows 95), lo stesso non si può dire per IBM e Novell/Digital Research.
IBM, infatti, vede ormai Microsoft come principale rivale nel mondo dei Personal Computer (anche se non ravvisa ancora quale sarà l’influenza della casa di Redmond nel mondo Server) e a giugno del 1993 rilascia il PC-DOS 6.1 (saltando la versione 6.0 per evitare confronti con l’MS-DOS 6), il …