Type a search term to find related articles by LIMS subject matter experts gathered from the most trusted and dynamic collaboration tools in the laboratory informatics industry.
OS-9 sistema operativo | |
---|---|
Sviluppatore | Microware (ora di proprietà di RadiSys Corporation) |
Famiglia | Unix-like |
Release iniziale | (1980) |
Release corrente | 4.10 (Q1 2009) |
Tipo di kernel | Sistema operativo real-time |
Piattaforme supportate | Motorola 6809 e Motorola 680x0 in linguaggio nativo. ColdFire, SuperH, ARM/XScale, MIPS, PowerPC, Intel architettura x86 nella variante OS-9000 scritte in C |
Tipo licenza | Software proprietario |
Licenza | Software proprietario |
Stadio di sviluppo | Attivo |
Sito web | www.microware.com |
OS-9 è una famiglia di sistemi operativi multitasking, sistema real-time, basato sui processi, multiutenza e Unix-like sviluppati negli anni 1980, originariamente da Microware Systems Corporation per il microprocessore Motorola 6809. Successivamente acquisito da RadiSys Corporation, è dal 2013 di proprietà di Microware LP [1]
La famiglia OS-9 era popolare per computer general-purpose e rimane in uso nei sistemi embedded commerciali e tra gli hobbisti. Oggi, OS-9 è il "nome di prodotto" usato sia per i sistemi operativi scritti in linguaggio macchina per la serie Motorola 68000 e sia per la versione portabile (PowerPC, x86, ecc.) scritta in C, originariamente conosciuto come OS-9000.
La prima versione ("OS-9 Level One"), datato 1979–80, era scritto in linguaggio assembly per la CPU Motorola 6809, e forniva un singolo spazio di indirizzamento di 64 kB in cui erano eseguiti tutti i processi. Era stato sviluppato come sistema operativo di supporto per il progetto BASIC09, attraverso un contratto con Motorola che lo vedeva come parte dello sviluppo per il 6809. Una successiva versione per il 6809 ("Level Two") si avvantaggiava dell'hardware per il mapping della memoria, supportando nella maggior parte delle implementazioni fino a 2 MB di memoria (nel 1980) e includendo in alcune piattaforme anche una GUI (interfaccia grafica).
Nel 1999, diciannove anni dopo il rilascio di OS-9, Apple rilascia Mac OS 9. Microware quell'anno citò in giudizio la Apple per violazione dei diritti d'autore. Sebbene il giudice sentenziò che ci sarebbe stata poca probabilità di confondersi tra i due nomi registrati, alcuni utenti del Macintosh, che non erano a conoscenza del relativamente sconosciuto OS-9 di Microware, avevano postato messaggi sul newsgroup news://comp.os.os9 non realizzando cosa fosse l'OS-9.
Nel 2000, RadiSys acquistò Microware vicina alla bancarotta per entrare in possesso delle risorse riguardanti il network tra processori Intel IXP-1200. L'acquisizione infuse i capitali necessari e permise a Microware di continuare lo sviluppo ed il supporto di OS-9. Nel 2009, OS-9 è ancora supportato da RadiSys e Microware.
OS-9 (specialmente dalla versione 68K in avanti) si distingue chiaramente dalla precedente generazione di sistemi operativi embedded in parecchi aspetti:
Invece, quando lo si paragona con sistemi operativi più moderni:
Il kernel real-time di OS-9 permette l'esecuzione simultanea di applicazioni indipendenti multiple, attraverso le feature di task switching e comunicazioni inter-processo. Tutti i programmi OS-9 vengono eseguiti come processi che contengono almeno un processo "leggero" (thread) ma effettivamente può contenere un illimitato numero di thread. All'interno di un processo, questi processi "leggeri" condividono la memoria, path di ingresso e di uscita e altre risorse, in accordo con le specifiche e le API dei thread POSIX. OS-9 schedula i thread usando un algoritmo a schedulazione pre-rilascio (preemptive) con priorità fisse e con schedulazione round-robin tra i thread con la stessa priorità. È supportato il time slicing (a quanti di tempo). I livelli di priorità possono essere suddivisi in range che supportano l'"invecchiamento" e la schedulazione a più alta priorità. Ogni processo può accedere a qualsiasi risorsa di sistema chiedendo ad OS-9 l'appropriata richiesta di servizio. Ad ogni momento di schedulazione, OS-9 confronta la priorità del thread in testa alla coda di priorità correntemente attiva con la priorità del thread corrente. OS-9 fa lo switch di contesto verso il thread nella coda attiva se la sua priorità è più alta della priorità del processo corrente. L'invecchiamento incrementa artificialmente l'effettiva priorità dei thtread nella code attiva al passare del tempo. A intervalli definiti, il time slicing rimette il thread correntemente in esecuzione nella coda attiva dietro gli altri thread che hanno la medesima priorità.
La nozione dei processi e dei percorsi di I/O da parte di OS-9 è abbastanza simile a quella di UNIX in quasi tutti gli aspetti, ma ci sono alcune differenze significative. Prima di tutto il file system non è un singolo albero ma una foresta, dove ogni albero corrisponde ad un differente dispositivo. Secondo, OS-9 non ha una chiamata di sistema alla Unix come la 'fork()'; ha invece una chiamata di sistema che crea un processo per eseguire uno specifico programma, facendo quindi un lavoro simile ad una fork-exec o ad una spawn. Inoltre i processi di OS-9 tengono traccia di due "directory correnti" anziché una sola; la "directory corrente di esecuzione" è la directory dove cercherà per default di caricare i programmi da eseguire (che è ovviamente simile all'uso della variabile d'ambiente PATH sotto UNIX). L'altra è la directory corrente per i dati. OS-9 ha avuto una progettazione modulare fin dalla nascita, influenzato dalle idee dei progettisti del 6809 e di come si aspettavano sarebbe stato distribuito il software nel futuro (si veda la serie di articoli in tre parti pubblicati da Byte di Gen-Mar 1979 scritti da Terry Ritter e altri progettisti della CPU di Motorola).
Lo OS-9 (non-68000) supporta i POSIX threads. Un singolo processo può far partire un qualsiasi numero di thread. La rivalità tra Unix ed OS-9 divenne così aspra che nella versione 2.4 del manuale "Using Professional OS-9" era presente questa voce che descriveva UNIX nel glossario della appendice C:
UNIX: An operating system similar to OS-9, but with less functionality and special features designed to soak up excess memory, disk space and CPU time on large, expensive computers.
La voce può essere così tradotta: Unix, sistema operativo simile ad OS-9 ma con minori funzionalità e con speciali caratteristiche progettate per saturare la memoria in eccesso, lo spazio su disco e il tempo di CPU di grandi e costosi computer. Questa voce fu poi rimossa nella versione 3.0 del manuale.
La shell di OS-9 aveva una easter egg nella sua command history, invocata con CTRL-A. Appena dopo un reboot, la command history sarebbe dovuta essere vuota; se però l'utente digitava un singolo spazio seguito da un backspace e poi premeva CTRL-A, venivano visualizzati i nomi degli autori: 'by K. Kaplan, L. Crane, R. Doggett'.