Come far funzionare un computer senza sistema operativo

A2A!

Prima di tutto, un computer è perfettamente felice senza una tastiera. La tua macchina ne ha facilmente qualche dozzina - senza tastiere. Ma hai ragione sulla necessità di comunicare - anche se, come puoi vedere nella tua auto, un fascio di sensori per l'input e qualche attuatore come output è abbastanza OK.

Per quanto riguarda la più elementare di tutte le necessità, questa è normalmente già a bordo di quasi tutti i sistemi e si chiama "monitor" per la versione più primitiva o "bios" per qualcosa di un po' più elaborato.

Se hai un sistema completamente nuovo e vuoto il primo passo sarebbe quello di creare un assemblatore. potresti naturalmente fare come i primissimi programmatori con il manuale del Prozessor e costruire le tue istruzioni a mano, scriverle su un pezzo di carta (o due o qualche pila) e poi inserirle in un file che puoi poi trasferire alla tua macchina. La maggior parte dei chip Prozessor embedded hanno un'interfaccia chiamata JTAG che permette di programmare la memoria flash interna direttamente senza bisogno di un programma monitor.

Ma oggi, il processo chiamato bootstrapping (costruire un nuovo set di strumenti per la tua macchina) è molto più facile, in quanto è possibile scrivere un cross-assembler per lo più in una sorta di sistema di building blocks e i compilatori C sono scritti in C e un cross-compiler è quasi fatto se hai il cross-assembler.

Oggi tutto questo è normalmente fatto dal produttore del chip. Così si comprano i chip e una scheda prototipo e si ottengono gli strumenti per sviluppare il software. Un compilatore C sarà quasi sempre disponibile, ma per esempio NON avrà lo stdio.h o altri header che avrebbero bisogno di un sistema operativo.

Per un sistema un po' più sofisticato a volte sono disponibili sistemi operativi (in tempo reale). Questo facilita il vostro lavoro se avete bisogno di thread multipli per esempio.

Non tutti gli strumenti sono necessariamente gratuiti, ma cosa sono 1000 dollari per un compilatore se poi costruite un milione di schede?

Un buon esempio per questo tipo di processori: PIC microcontroller - Wikipedia

Il passo successivo verso l'alto è per esempio Arduino - Wikipedia dove non si compra solo il Prozessor e si costruisce il proprio hardware intorno ad esso; qui si comprano schede già costruite. Il software qui fornisce un kernel assolutamente minimo su cui far girare i tuoi programmi. Sta a te decidere se chiamarlo sistema operativo o no.

Passo successivo: Raspberry Pi - Wikipedia una serie di schede basate su un "System on a Chip" che assomiglia più da vicino a un PC. Quindi la maggior parte del software gira su un sistema operativo sulla scheda. È possibile collegare una tastiera se si desidera (connettore USB multiplo su quasi tutte le schede), ma non è necessario. I prodotti finali tipici non ce l'hanno. (Pensa per esempio ai Router-Box ecc.)

Spero che questo aiuti ad elevare la tua confusione.