Dove sono memorizzate le istruzioni necessarie per avviare un computer?
Tutti i computer o iniziano a leggere a particolari istruzioni di posizione. Una CPU x86 (usata su Personal Computer e Mac) legge prima la posizione xFFFF:0000, altre CPU tipicamente l'indirizzo 0. In alcuni casi, ho conosciuto processori che iniziano in modo casuale, dove mai il Program Counter (PC) è impostato in modo casuale dopo l'accensione. In quei casi, per il primo paio di cicli, un'istruzione è forzata sul bus di memoria (mentre la memoria stessa è disabilitata) per caricare un'istruzione Jump che essenzialmente inizializza il PC.
A quel punto, la maggior parte dei sistemi moderni (dopo il 1978) avrebbe una Read-Only-Memory (ROM) che è stata programmata con le istruzioni per iniziare. Prima di allora, gli esseri umani avrebbero caricato manualmente attraverso un sacco di interruttori ogni indirizzo manualmente un byte o giù di lì alla volta. Questo sarebbe un boot loader di solito da 12 a 20 byte di lunghezza. Dopo di che, si leggeva un dispositivo di memoria di massa, sia esso un nastro di carta, una cassetta, un floppy, ecc. e si caricava un boot loader più esteso che leggeva ancora di più per caricare eventualmente un sistema operativo o un'applicazione.
Le ROM oggi sono generalmente chiamate BIOS (di cui l'UEFI è un BIOS più avanzato e moderno). Per saperne di più sui BIOS e su cosa fanno vedi le mie risposte qui sotto;
- Come è stato scritto un BIOS, con enfasi sul BIOS Phoenix (ma anche Compaq e IBM)
Come viene scritto il BIOS per una scheda madre? Come è stato scritto il primo BIOS? - Cosa fa un BIOS -
Cos'è il BIOS? Quali sono le sue caratteristiche e funzioni? - Qual è la sequenza di boot, post e bios? Quale viene prima?