In informatica il BIOS (acronimo dell'inglese Basic Input-Output System, lett. "sistema di input/output di base", pronuncia inglese: ˈbaɪəʊs) il primo programma che viene eseguito dopo l'accensione, coinvolto pertanto nella fase di avvio (boot) del sistema di elaborazione. A partire dal 2010 stato progressivamente sostituito da UEFI[1].
Quando verso la fine degli anni 1970 Intel e IBM iniziarono a produrre i primi PC basati sul processore 8088 alla fine, Intel stipul un accordo con Microsoft per la messa a punto di un sistema operativo. Microsoft decise di dividere il sistema operativo in due parti, la prima che comprendeva le operazioni di base per far dialogare le componenti hardware del PC e che risiedeva in un chip di memoria ROM (Read Only Memory). La seconda parte del sistema operativo risiedeva su un floppy disk e veniva caricato ad ogni avvio del PC ed era composto da un insieme di programmi che interfacciavano il computer con l'utente permettendo di svolgere una serie di operazioni di base. La Intel decise allora di sviluppare in modo indipendente le due parti: la prima fu chiamata BIOS e la seconda DOS (acronimo di Disk Operative System).
Nei primi PC di IBM, il BIOS supportava tutte le periferiche e il DOS faceva completo affidamento su di esso per le operazioni a basso livello, ma con l'evoluzione tecnologica successiva le capacit offerte dalle routine di gestione del BIOS (al tempo non aggiornabili, poich scritte su memoria ROM) divennero presto insufficienti. I moderni sistemi operativi, come Microsoft Windows o Linux, per le loro operazioni di Input/Output, non fanno pi uso del BIOS, e accedono direttamente all'hardware.
Con la diffusione dei personal computer in ambito lavorativo e domestico, a partire dagli anni 1980, si svilupp un mercato parallelo di PC compatibili con quelli IBM-Intel. Poich IBM deteneva i diritti del BIOS e non concesse licenze, i produttori furono costretti a sviluppare il BIOS in proprio. Il primo caso fu quello della Compaq Computer seguito da alcune ditte specializzate come la Phoenix Software Associate, Award e AMI.[2]
Si tratta di un insieme di routine software, generalmente scritte su memoria ROM, FLASH o altra memoria non volatile (firmware)[N 1], che forniscono una serie di funzioni di base per l'accesso all'hardware del computer e alle periferiche integrate sulla scheda madre da parte del sistema operativo e dei programmi. Nei computer IBM-compatibili la ROM del BIOS contiene anche il POST, un test che verifica che tutti i componenti e le periferiche del computer funzionino correttamente. Sovente compilato in linguaggio assembly nativo della famiglia di CPU utilizzata. La compilazione informatica dei BIOS per i PC recenti realizzata su memorie EEPROM riscrivibili, quindi pu essere aggiornata tramite modifica. I costruttori mettono a disposizione nuove versioni di BIOS per correggere difetti rilevati oppure aggiungere supporto a nuove periferiche hardware non previste al momento della produzione del BIOS.
L'operazione di aggiornamento (flash in inglese) richiede cautela poich, qualora non andasse a buon fine, a causa di un black out per esempio, o altri inconvenienti elettrici, potrebbe rendere inutilizzabile la scheda madre[N 2].
L'acronimo apparve per la prima volta con il sistema operativo CP/M e descriveva quella parte di CP/M che veniva caricata all'avvio, che si interfacciava direttamente con l'hardware. I computer che utilizzavano il CP/M avevano infatti soltanto un boot loader nella ROM. Anche le successive versioni del DOS avevano un file, nominato IBMBIO.COM o IO.SYS del tutto analoghi.
A partire dall'introduzione dei primi IBM PC XT e compatibili nell'agosto del 1981, il BIOS ha il compito di dare, durante la fase di avvio, detta boot process, i primi comandi al sistema. In questa fase, dopo i controlli preliminari sulla funzionalit dei componenti fondamentali (interrupt, RAM, tastiera, dischi, porte), per elencare e inizializzare correttamente le periferiche presenti, il BIOS legge alcuni parametri, come l'ora e la data corrente, da una piccola memoria RAM CMOS[N 3] tamponata, ossia mantenuta sotto tensione elettrica anche a PC spento[N 4] da una batteria, del tutto separata dalla RAM principale del computer.
Nelle moderne implementazioni del BIOS possono essere selezionati differenti tipi di supporto per l'avvio e sono presenti numerose funzioni per la diagnostica e la personalizzazione di importanti funzioni relative all'utilizzo della RAM, alle opzioni per l'overclocking e sono presenti segnali acustici di allarme in caso di malfunzionamenti delle ventole atte al raffreddamento del CPU o l'eccessivo aumento della temperatura generale dell'intera scheda madre.
Un computer pu integrare il proprio BIOS con altri moduli; esistono schede di espansione che possono impiegare estensioni proprietarie del BIOS in aggiunta al contenuto di quello collocato sulla scheda madre, come la scheda video, o un controller SCSI.
Il BIOS della scheda madre, durante la fase di boot, pu individuare nella memoria reale da 0xC8000 a 0xF0000 saltando di 2 kilobyte e cercando una firma "0x55 0xaa", che seguita immediatamente da un byte che indica il numero di blocchi da 512 byte che l'espansione occupa nella memoria reale; il BIOS effettua una chiamata all'indirizzo successivo, che la prima istruzione della subroutine di startup del BIOS della periferica e registra gli interrupt necessari, svolge le funzioni diagnostiche e mostra a video informazioni sulla scheda di espansione installata.
Il BIOS normalmente in grado di caricare un sistema operativo da diversi dispositivi di memorizzazione di massa, come dischi fissi, floppy, CD-ROM, memorie di massa USB, e talvolta anche di eseguire un boot da rete, attraverso PXE.
La navigazione visiva fra le schede nelle impostazioni del BIOS avviene da tastiera tramite tasti direzionali sulle schede madri per computer normali, mentre avviene tramite mouse e tastiera sulle schede madri per pc con UEFI al posto del BIOS.
Su alcuni vecchi BIOS di notebook nativi Windows 98 vi la possibilit di disattivare la comparsa dell'errore (appena terminato il caricamento del BIOS) "save to disk partition not found" relativo alla non esistenza (o dimensione insufficiente) della partizione dedicata alla memorizzazione del file di sospensione/ibernazione, collegato alle impostazioni di risparmio energia. In questi casi o si disabilita il messaggio di errore o si disabilita la sospensione oppure occorre sistemare la partizione sul disco dedicata al file di memorizzazione dello stato del PC in fase di ibernazione.
Il BIOS il firmware del computer, pur essendo composto da istruzioni software, una parte integrante dell'hardware. Prima del 1990, il BIOS veniva memorizzato su una o pi ROM, non riprogrammabili. Con l'aumentare della complessit, di pari passo con la necessit di aggiornamenti, si diffusa la memorizzazione del firmware BIOS dapprima su EPROM, poi su EEPROM o flash memory, per permettere un rapido aggiornamento anche dall'utente inesperto. L'esistenza di BIOS aggiornabili dall'utente finale, permette di ottenere il supporto per CPU pi aggiornate o per dischi fissi pi capienti. Per effettuare tali operazioni indispensabile consultare il manuale d'uso fornito con la scheda madre, il sito web del produttore o entrambe le modalit.
Giacch eventuali errori nell'aggiornamento del BIOS rendono il computer inutilizzabile, alcune schede madri sono dotate di un doppio BIOS che consente di ripristinarne l'uso della macchina a seguito di una riprogrammazione erronea. Sono noti alcuni virus in grado di sovrascrivere il BIOS (come il famigerato CIH o Cernobyl virus). Tuttavia, nel BIOS stesso, la maggior parte dei sistemi dotata di un'opzione per disabilitare le funzioni di scrittura e, talvolta, di un ponticello che disabilita le tensioni di programmazione necessarie per l'alterazione della EPROM, denominata ROM riscrivibile.
Con l'avvento del firmware basato su tecnologia UEFI e la successiva introduzione sul mercato (all'incirca a partire dal 2010), il BIOS, inteso come vecchia interfaccia utente del firmware, stato destinato a progressivi rimpiazzi e quindi alla definitiva uscita di scena[5].
Hello LS, Microsoft Scripting Guy Ed Wilson here. I received a real nice email message this morning from my friend Jit who lives in Canberra, Australia. He was telling me that with the holidays, his children are out of school for a while, and he is afraid they will drive him crazy. I suggested he teach them Windows PowerShell. It will keep them entertained for hours. The kids can work their way through the Scripting Wife articles, and solve all the Beginner events from the 2010 Scripting Games. Even as the year 2010 comes to a close, have no fear, the events from the 2010 Scripting Games will remain posted, and you are free to work them at your leisure. In fact, when I was writing the events, I had this this very scenario in mind (well, ok, not the cheap babysitter scenario, but I did envision something interesting enough that a non-computer professional would enjoy solving.) Anyway, my last trip over to Australia, I wrote an article that talked about using Windows PowerShell to track items in a list. During that flight, I stopped in Nadi, Fiji and I still have some change from Fiji. The best souvenirs I have from the month long trip are the pictures I took, such as this one of a string ray.
In the article about packing for an Australian trip I hard-coded items into an array. That is, actually, one approach to your problem of running a script against multiple computers. If you have a fairly small collection of computers which you routinely work with, an array of computer names works very well. What makes the array of computer names work especially well for WMI queries is the ability of the computername (CN is an alias for this parameter) to accept an array of computer names. This script shows the technique.