# Apple SOS

Il Sophisticated Operating System, abbreviato in SOS (pronunciato ˈsɔːs), è il sistema operativo dei personal computer Apple III. È stato sviluppato da Apple Computer, Inc. e pubblicato nel 1980, l'ultima versione è del 1982.

## Dettagli tecnici

Nato come Sara's Operating System, dal nome in codice con cui era noto l'Apple III durante il suo sviluppo, a sua volta derivato dal nome della figlia di Wendell Sanders, il primo responsabile del progetto, il sistema operativo fu ridenominato più professionalmente "Sophisticated Operating System" prima della sua distribuzione.
Il SOS introduceva per la prima volta il concetto di driver, ossia dei programmi che venivano caricati all'avvio del sistema e che permettevano al computer di dialogare con le periferiche ad esso collegate. Questo sistema permetteva ad Apple di commercializzare un nuovo dispositivo dotandolo del suo driver da installare senza dover rilasciare una nuova versione dell'intero sistema operativo.
Il file system utilizzato era una via di mezzo tra i file system utilizzati nei precedenti sistemi operativi Apple, vale a dire l'Apple Pascal e l'Apple DOS. Dall'Apple Pascal riprendeva la suddivisione dei dischi in "blocchi" piuttosto che in settori (i dischi erano formattati con 35 tracce da 8 blocchi di 512 byte l'uno, per un totale di 143.360 byte), la presenza del codice di avvio (il "system loader") nei blocchi 0 e 1, e la directory, ossia l'elenco dei file del disco, nei blocchi dal 2 al 5. Dall'Apple DOS riprendeva invece la possibilità di scrivere i file anche su blocchi non sequenziali, evitando perciò la necessità di deframmentare il disco con l'utilità Krunch come sull'Apple Pascal, che invece non permetteva la scrittura frammentata.
Il SOS identificava i tipi dei file mediante l'uso di un byte marcatore; i nomi dei file potevano essere lunghi al massimo 15 caratteri e contenere solo lettere, numeri ed il punto. Il SOS supportava file grandi fino a 16 MB e dischi grandi fino a 32 MB. La "directory" poteva contenere solo 51 nomi di file: siccome l'Apple III era nato come macchina da ufficio ed il SOS poteva supportare anche i capienti dischi rigidi, per ovviare al limite dei 51 file fu introdotto il concetto delle "sotto-cartelle" per aumentarne il numero memorizzabile ed organizzarli al meglio.
Il SOS differiva dagli altri sistemi del periodo che operavano con un'interfaccia a riga di comando perché le risorse del computer potevano essere offerte all'utente sotto forma di un'interfaccia semi-grafica con menu a tendina, il cosiddetto pacchetto di programmi "System Utilities" suddivisi in 3 categorie:
* Comandi per la gestione dei dispositivi: questa categoria comprendeva i comandi per copiare, rinominare, formattare e verificare i dischi nonché per elencare le unità collegate e per impostare la data e l'ora.
* Comandi per la gestione dei file: in questa categoria erano inseriti i comandi per copiare, cancellare, rinominare e mostrare l'elenco dei file, per creare delle cartelle secondarie, per proteggere dalla scrittura i file, per cambiare la cartella corrente.
* SCP (System Configuration Program): serviva per configurare le unità a dischi della macchina..
Il SOS era un sistema operativo monotasking, ossia poteva eseguire un solo programma per volta. Al momento del suo avvio il SOS eseguiva un programma chiamato "interprete". L'interprete, una volta in esecuzione, chiamava le API del SOS per eseguire le operazioni richieste dall'utente. Le API erano suddivise in 4 gruppi:
* "File Calls": servivano per eseguire le operazioni legate alla gestione dei file (creazione, cancellazione, ridenominazione, apertura, chiusura, lettura e scrittura), impostavano la cartella corrente, leggevano le informazioni inerenti al disco.
* "Device Calls": servivano per acquisire lo stato, il numero ed altre informazioni dell'unità a dischi.
* "Memory Calls": gestivano le richieste per ottenere, trovare, cambiare e rilasciare i segmenti di memoria, per avere informazioni o per impostare il numero del segmento usato.
* "Utility Calls": gestivano l'ora, leggevano la porta joystick, impostavano gli eventi.
Il SOS poteva comunicare con 2 tipi di dispositivi: quelli a caratteri, come la tastiera o la porta seriale, e quelli a blocchi, come un'unità a dischi. I primi venivano gestiti un carattere alla volta, i secondi leggendo e scrivendo 1 o più blocchi da 512 byte per volta..

## Sequenza di avvio

Quando venivano accesi, gli Apple III eseguivano prima di tutto la diagnosi del sistema e poi copiavano in memoria il contenuto dei blocchi di avvio del disco inserito nell'unità a dischi integrata e ne eseguivano il codice. Il SOS formattava i dischi inserendo nel blocco 1 un programma di avvio: tale programma, una volta lanciato, cercava nella cartella del disco un file di nome SOS.KERNEL, che conteneva il kernel e le API del sistema operativo. Una volta avviato, il SOS.KERNEL cercava e caricava i file di nome SOS.INTERP (l'interprete, o il programma, da eseguire) e SOS.DRIVER (il driver per l'unità a dischi in uso). Quando tutti questi file erano stati caricati, il controllo passava al file SOS.INTERP.
Apple continuò ad utilizzare il codice di avvio dell'Apple SOS anche sul suo successore, il ProDOS: i dischi formattati sull'Apple II con il ProDOS avevano nel blocco 1 il codice di avvio dell'Apple SOS, permettendo al disco di essere avviato sia su un Apple II che su un Apple III.

## L'insuccesso degli Apple III e del SOS

Il SOS non era retrocompatibile con l'Apple DOS 3.2/3.3 degli Apple II: fortunatamente l'Apple III era stato progettato per essere abbastanza compatibile a livello di hardware con i suoi predecessori per cui gli utenti che volevano utilizzare i programmi scritti per gli Apple II potevano caricare l'Apple DOS da un disco separato. In questa maniera, però, perdevano i vantaggi offerti dal SOS. Ma nel 1980 l'utente medio dei computer non era preparato ad usare un sistema con le capacità e le possibilità di configurazione del SOS.
Inoltre, la fredda accoglienza degli Apple III da parte dell'utenza, e conseguentemente la scarsa diffusione del SOS, era legata anche ad altri fattori, primo fra tutti la fama di computer inaffidabili che si erano guadagnati a causa dei problemi hardware di cui erano afflitti i modelli della prima serie messa in vendita. Altri fattori che limitarono la diffusione di questi computer e del loro sistema operativo furono il prezzo di vendita elevato, la mancanza nel SOS degli strumenti necessari ai programmatori per sviluppare applicazioni per gli Apple III e la disponibilità di un ridotto parco software, un fattore, questo, cruciale per il successo commerciale di un computer nato ed offerto come macchina da ufficio. Solo agli inizi del 1983 iniziarono ad essere pubblicati importanti software quali Great Plains, Super Visicalc, Pagemaker, Quark Word Processing e Three Easy Pieces, il predecessore di AppleWorks.
Da questi fattori si capiscono i motivi per cui questo sistema non si impose rispetto agli altri prodotti di Apple..