Il BIOS è considerato un sistema operativo? [chiuso]


11

Questa domanda viene in mente quando si tratta di array RAID, ma non è necessariamente applicabile all'argomento.

In che modo il BIOS è in grado di leggere da un disco rigido per caricare efficacemente il sistema operativo, quando molti sistemi operativi hanno bisogno di driver per poter fare la stessa cosa? Il BIOS ha un elenco di driver che estrae come uno dei sistemi operativi principali come Windows o Linux?


2
Gli amministratori SU non sono costruttivi
Stumbler,

Risposte:


10

Prima di tutto, il BIOS è il sistema di input / output di base, non tecnicamente un sistema operativo ... Per quanto riguarda il caricamento di RAID e simili, ciò che accade durante l'avvio è che la macchina interroga eventuali schede aggiuntive che chiedono se hanno un BIOS da caricare. La scheda RAID urla "Sì, ho prima qualcosa da fare", quindi avvia il suo "BIOS" (in questo caso, un sistema operativo), esegue alcuni calcoli da solo, quindi restituisce il controllo al BIOS principale ("Ehi, Ho finito, ecco tutte le informazioni che devi sapere su un bisogno di sapere, sai? ").

Una volta che il BIOS principale riprende il controllo, può passare attraverso "Ahhh, vedo che il signor RAID ha un volume di avvio, lo farò scorrere se possibile, quindi provare i miei altri trucchi".

Quindi non "tecnicamente" il BIOS è un sistema operativo, ma è un sistema di input / output per preparare il sistema operativo reale


11
" avvia il suo" BIOS "(in questo caso, un sistema operativo) " - Le estensioni BIOS o BIOS semplicemente non sono un sistema operativo. Lo scopo principale di un sistema operativo è la gestione delle risorse . Il BIOS, come programma di avvio autonomo, non si preoccupa di conservare alcuna informazione di allocazione delle risorse. Non ci sono routine open () o close () fornite dal BIOS per limitare l'accesso all'hardware. Qualsiasi codice in esecuzione può utilizzare le funzioni di lettura / scrittura del BIOS. Il BIOS non riesce a soddisfare lo scopo di base del sistema operativo.
segatura,

@sawdust che ne dici di abilitare o disabilitare i dispositivi di bordo? Ciò limiterebbe l'accesso all'hardware.
Bon Gart,

@BonGart: l'attivazione / disattivazione da parte del BIOS è semplicemente uno strumento di configurazione che sostituisce l'installazione fisica o la rimozione del dispositivo. È un'azione a livello di sistema, e in effetti fino a quando non viene eseguita una riconfigurazione o un errore del dispositivo. In realtà mi riferivo ai concetti del sistema operativo per la sincronizzazione e l'esclusione come mutex e semafori che possono controllare / limitare a livello di processo e / o thread. O ad esempio uno spooler di stampa; il programma di spooling del sistema operativo è proprietario della stampante e non consente l'uso diretto di quella stampante. Devi inviare il tuo lavoro di stampa allo spooler, che accoda le richieste di stampa.
segatura,

10

Il BIOS , letteralmente un "sistema di input / output di base", è un insieme di piccoli programmi codificati nella scheda madre di un computer (di solito memorizzati in una EEPROM ). Questi programmi includono la possibilità di modificare le impostazioni, scrivere testo e prendere l'input dell'utente dai dispositivi I / O di base (la scheda madre deve emularli per dispositivi mouse / tastiera VGA e USB avanzati) e, soprattutto, fornisce le funzionalità per trovare e avviare sistemi operativi presenti su qualsiasi dispositivo di archiviazione attaccato.

Di per sé, il BIOS non è un sistema operativo. Il BIOS è un piccolo programma per caricare effettivamente un sistema operativo. Sebbene in alcuni sistemi operativi sia possibile richiamare i vari sottosistemi BIOS, ciò richiede che la CPU ritorni in modalità reale, poiché il BIOS non fornisce supporto di memoria virtuale, commutazione di attività (e quindi la possibilità di eseguire programmi ) o il supporto del driver del dispositivo (e quindi, non è possibile accedere direttamente all'hardware al di fuori dell'intervallo accessibile dalla mappa diretta, né tutto ciò che non è coperto nelle chiamate di interruzione del BIOS ).

Come diceva Linus Torvalds :

Non che io abbia mai sostenuto che il BIOS sia meraviglioso, ma almeno tutti sanno che il BIOS è solo un bootloader e non cerca di renderlo nient'altro.

Il vantaggio assolutamente più grande di un BIOS è che è così scomodo e ovviamente vecchio stile, che devi essere pazzo per voler fare qualcosa di serio [...] non avere alcuna idea sul fatto che sia un quadro grandioso per qualsiasi altra cosa di "basta caricare il sistema operativo e uscire da lì".

Infine, va notato che un BIOS è significativamente diverso da un UEFI ( Unified Extensible Firmware Interface ), essendo quest'ultimo significativamente più vicino a fornire un'interfaccia di sistema operativo di base (fornendo driver di dispositivo e supporto per applicazioni). È ancora discutibile se anche l'UEFI possa essere considerato un vero sistema operativo da solo, anche se è significativamente più vicino all'essere considerato un sistema operativo di quanto non farebbe un BIOS.


2

Per affrontare i molti commenti e punti sollevati, ho modificato di nuovo la risposta.

Il BIOS è un sistema operativo?

Bene, se un sistema operativo è definito come un software che consente a un utente di interagire con l'hardware di un "computer", allora sì ... tecnicamente e letteralmente è un sistema operativo.

Task Switching definisce ciò che rende un sistema operativo?

Considerando che MS-DOS era un sistema operativo valido e fino al passaggio 5 alla commutazione delle attività non era supportato, la commutazione delle attività non influisce sul fatto che il software sia un sistema operativo.

La virtualizzazione della memoria definisce ciò che rende un sistema operativo?

Ancora una volta, usando MS-DOS come esempio, sebbene sia possibile aggiungere supporto per la virtualizzazione della memoria eseguendo gli extender durante il processo di caricamento, non è stato necessario usarli. Pertanto, anche la virtualizzazione della memoria non è un prerequisito per ciò che costituisce un sistema operativo.

Se è memorizzato nel firmware, è un sistema operativo?

Alcuni sosterrebbero che un router non utilizza un sistema operativo. Ad esempio, sembra che vi sia contesa sul fatto che DD-WRT sia considerato un sistema operativo. Esistono dispositivi che memorizzano un sistema operativo nel firmware? Telefoni moderni, iPod e altri sistemi operativi complessi che possono avere programmi aggiunti in Firmware. Quindi, solo perché un SO è caricato nel Firmware, ciò non esclude che il software in questione sia considerato un Sistema Operativo.

Se non puoi aggiungere programmi, non è un sistema operativo.

Allontanati da uno smartphone moderno. Guarda un cellulare usa e getta economico. Ha un sistema operativo memorizzato nel firmware, ma non è possibile aggiungere programmi. Funziona così com'è e solo con la funzionalità che viene offerta. Navighi attraverso i menu come faresti con qualsiasi altro sistema operativo, scegli cosa vuoi fare (giocare, ecc.) E con un buon numero di essi da qualche anno fa, non avevano la possibilità di aggiungere alcun software aggiuntivo.

Se non è moderno, non è un sistema operativo?

Il punto nella storia in cui il sistema operativo è stato creato e lanciato non ha alcuna influenza sul fatto che si tratti o meno di un sistema operativo.

Quindi, il BIOS potrebbe non essere carino e potrebbe non offrire funzionalità estreme. Tuttavia, è ancora un sistema operativo.


3
La definizione di Sistema operativo su Wikipedia è discutibile in sé. (Ne ho sentito altri) Ma comunque ti stai perdendo totalmente [...] nella fornitura di servizi comuni per programmi per computer , che ritengo sia essenziale per un sistema operativo.
Baarn,

1
Mi rivolgo più al firmware che al sistema operativo. Un bios non ha intelligenza, comunica solo con hardware a un livello molto basso e trasmette tali informazioni al sistema operativo. UEFI sta cambiando il gioco però.
Moab,

1
È una linea sottile tra firmware e sistema operativo, soggettiva da morire.
Moab,

1
OK, mi arrendo, è un biOS, ora potresti staccarmi la testa .. ;-)
Moab,

2
@BonGart un BIOS manca del supporto di memoria virtuale e della pianificazione delle attività - e quindi, non ha la capacità di eseguire programmi (cioè non può essere eseguito contemporaneamente ad altro). Mentre sono d'accordo che fornisce supporto I / O di base, è un piccolo programma e non un sistema operativo ... O classificheresti il ​​piccolo pezzo di codice sul mio microcontrollore che riceve una password e accende un LED (fornendo così I di base / O supporto) anche un sistema operativo?
Sfondamento

2

Ciò che è o non è un "sistema operativo" è una questione di giudizio. Probabilmente (e l'ho discusso nel 1980), il PC / MS DOS originale non era un "sistema operativo" (nonostante il suo nome), poiché forniva solo servizi di I / O (e un analizzatore di comandi grezzi) e nessuna vera struttura di gestione del sistema .

OTOH, molte implementazioni del BIOS ora includono un certo grado di funzione hypervisor che gestisce le risorse di sistema in un modo abbastanza sofisticato.

Per quanto riguarda il modo in cui il BIOS riesce a caricare da disco, ecc., Senza driver, per convenzione / standard i dispositivi "avviabili" includono una serie di operazioni che possono essere utilizzate senza dover configurare una sofisticata infrastruttura di gestione. In alcuni casi questa è solo la capacità di leggere alcuni settori in una posizione relativamente fissa, ma è tutto ciò che serve nella maggior parte dei casi.


Quindi, accendi il computer, carichi MS-DOS e quindi riesci a eseguire i programmi. Dici che MS-DOS non era un sistema operativo ... dov'era allora il sistema operativo? Sembra che tu stia dicendo che MS-DOS non è quello che consideri un vero sistema operativo, anche se tecnicamente funzionava come uno (e quindi era uno).
Bon Gart,

1
C'erano molti computer senza "sistema operativo", solo un "dirigente di runtime" o alcuni che fornivano servizi di file e un analizzatore di comandi. Non li hanno mai chiamati "sistemi operativi".
Daniel R Hicks,

2
@bonGart " dov'era allora il sistema operativo? " non è necessario disporre di un sistema operativo, ovvero un allocatore / gestore di risorse, per eseguire programmi su un computer. I primi (o semplici) computer (inclusi i micro che eseguivano CP / M) avevano semplicemente un programma caricatore residente e il programma caricato aveva pieno accesso a tutte le risorse del computer. Non vi è stata contesa per le risorse, quindi non è necessario un sistema operativo.
segatura,

@sawdust - Corretto. E un passo avanti rispetto al "caricatore di programma residente" era una libreria di runtime residente (nastro di carta, dischetto e funzioni tastiera / display - forse stampante) e un "monitor" o "esecutivo" o qualcosa del genere che avrebbe rilevato quando un programma finito per caricare il prossimo. DOS non era molto più sofisticato di questi.
Daniel R Hicks,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.