Quali sono le differenze tra firmware e software / sistema operativo?


15
  1. Mi chiedevo quali differenze ci sono tra firmware e software?
  2. Quali sono le differenze tra firmware e sistema operativo?
  3. I firmware dei caricatori di avvio sono? Il bios è. Che ne dici di GNU grub? Grub è un software o un firmware?

Risposte:


13

Tradizionalmente, il firmware è un codice CPU che risiede su una ROM non modificabile, necessaria per l'avvio e il caricamento di un sistema operativo o di un binario (software) di un dispositivo hardware. A volte non viene fornita alcuna scelta di un binario e viene utilizzato uno collegato al firmware della porzione di avvio.

Tutte le CPU hanno il classico problema in quanto, poiché recuperano le istruzioni dalla memoria, una sorta di memoria preprogrammata deve esistere a un indirizzo fisso all'avvio della CPU, in modo che possa fare qualcosa automaticamente all'avvio. Il firmware esiste per questo scopo. Alcuni firmware hanno anche codice che i programmi successivi possono utilizzare per i servizi. Il firmware del BIOS espone molte funzioni utilizzate da DOS per l'input e l'output di base (quindi perché BIOS è l'acronimo di Basic Input Output System).

La distinzione non è del tutto chiara. Alcune (la maggior parte) delle schede WLAN richiedono il caricamento del firmware prima di iniziare a funzionare. Tuttavia, di solito c'è un piccolo firmware sul dispositivo il cui compito non è altro che accettare un "firmware" principale sul bus USB quando il dispositivo viene avviato dal sistema operativo e consegnare il controllo quando viene caricato. Molte persone direbbero che tutto è firmware.

Poiché le EEPROM e la memoria flash sono diventate più comuni, il firmware di solito non risiede più in una ROM non scrivibile ma nella memoria flash e può essere modificato. La distinzione tra firmware e software è sfocata oggi con l'avvento della memoria flash. Tuttavia, una cosa non è cambiata nel corso degli anni e cioè che le CPU sono ancora CPU e richiedono un po 'di codice, o firmware, per essere visibili all'avvio, beh, per avviarsi.

Le CPU si trovano su più dispositivi che mai, quindi lo sviluppo e consentire l'aggiornamento del firmware in caso di bug è un grosso problema ora e molti dispositivi hardware con una CPU hanno interfacce di aggiornamento del firmware, a volte prive di documenti.

Un firmware può essere utilizzato per caricare un sistema operativo. Può contenere un caricatore di avvio o un codice che carica un caricatore di avvio. È possibile memorizzare un'immagine del sistema operativo nella stessa posizione del firmware e lasciare che il codice di avvio del firmware carichi il sistema operativo (i telefoni cellulari lo fanno). I BIOS del PC di regola non includono i boot loader. U-boot (non per PC) è un esempio di firmware "compatibile con filesystem" che carica direttamente un sistema operativo.

I software di solito non hanno tutte le funzionalità di un sistema operativo completo a causa del principio che più semplice è più affidabile. I firmware più semplici inizializzano semplicemente un minimo di hardware, caricano un settore o bloccano un dispositivo di archiviazione e lanciano l'esecuzione su di esso. Questo è semplice da programmare e quindi facile da verificare come privo di bug. In particolare, i bug nel firmware del tempo di avvio possono provocare un disastro per un dispositivo.


Grazie! In cosa differiscono il firmware e il driver del dispositivo, in quanto entrambi i dispositivi di controllo?
Tim

Per dispositivi come le schede WLAN: i driver sono progettati per interfacciarsi tra un dispositivo hardware e il sistema operativo stesso. I driver funzionano sul PC. Il firmware è costruito per interfacciarsi tra un dispositivo hardware e un driver su un bus (USB, IDE, PCI-E, ecc.). Il firmware funziona sul dispositivo stesso.
LawrenceC,

5

Il firmware è un software, tranne che per essere archiviato su disco, è archiviato in una EEPROM che di solito è flashable per consentire gli aggiornamenti.

Il firmware è in un certo senso un sistema operativo, ma molto più restrittivo e univoco perché è solo per il controllo di quel dispositivo, mentre un sistema operativo è un sistema generico che consente l'esecuzione di qualsiasi tipo di software su più dispositivi hardware.

No, i bootloader non sono firmware perché sono software presenti sul disco. Sì, il BIOS è perché esiste su un chip (flashable). No, GRUB non è neanche un firmware perché, di nuovo, non è stabile (non vi è alcun componente hardware), è un software che esiste sul disco, anche se potrebbe (e potrebbe) essere installato su un chip, nel qual caso sarebbe essere firmware.


4
  1. La differenza sta fondamentalmente in dove risiede il codice. Generalmente, il firmware viene masterizzato in una sorta di EPROM o memoria flash incorporata, mentre il software viene archiviato su un dispositivo di strozzatura di massa.

  2. Il sistema operativo di un dispositivo può risiedere in firmware o software. Su un PC il firmware (BIOS) fornisce solo servizi di basso livello che possono essere utilizzati da un sistema operativo software (Windows / Linux / ecc.). Nei dispositivi mobili il sistema operativo entrie è generalmente nel firmware.

  3. Per definizione in (1) il BIOS del computer è firmware, ma i bootloader, che risiedono sul disco rigido, sono software.


3

I confini possono essere un po 'sfocati.

Il software in genere è qualsiasi istruzione o routine che un computer può eseguire.

Il firmware è in genere istruzioni specifiche (software) che vengono caricate in / su hardware per consentire loro di svolgere la propria funzione.

Direi che praticamente ogni componente hardware include una sorta di firmware.

Ancora una volta, non penso che ci sia una guida definitiva su dove si inizia e si ferma - tutto ciò che è firmware, è un software che viene compilato per qualunque chip si trovi nel dispositivo.

Per quanto riguarda la tua seconda domanda su cos'è il firmware, direi che i bootloader non lo sono, ma il BIOS lo è e grub non lo è.

Questo è molto difficile da tracciare, ma ... il modo in cui lo vedo è che il BIOS (ora EFI) è il firmware della scheda madre e il disco rigido ha il proprio firmware.

Quindi, il bootloader / grub è un software puro: può svolgere attività con il disco rigido, ma non controlla direttamente alcun hardware.

Se prendi un dispositivo incorporato come un Iphone / Ipad, dove finiscono il firmware e inizia il software !? Se consideri IOS come firmware, perché non Windows o simili.

Per me, questo dimostra che i confini sono i produttori o i distributori di qualsiasi dispositivo che ti consentono di assumere il controllo e in realtà non è una cosa fissa / scienza esatta.

Per esempio,

  • Una scheda madre è per l'avvio: il firmware è il BIOS, quando passa alla parte successiva
  • I dischi rigidi e ottici sono componenti per la lettura / scrittura dei dati, il firmware è la parte che fa questo lavoro su richiesta.
  • La scheda grafica è un componente per la visualizzazione della grafica, il firmware è la parte che su richiesta disegna l'output.

Per complicare ulteriormente - quando dico su richiesta, questo può provenire da un driver all'interno di altri software

Ora, un Ipad o un Iphone o qualsiasi altro dispositivo incorporato ...

  • Un dispositivo acquistato dallo scaffale per eseguire una funzione limitata (ad es. Eseguire IOS) è il firmware in quanto non lo si modifica (o non si deve) manualmente. Può contenere altri pezzi di hardware all'interno, ma è presentato come un unico dispositivo e non si acquista l'hardware separatamente, lì, qualsiasi aggiornamento disponibile aggiornerà tutto in modo invisibile (ad esempio un telefono, non si aggiorna manualmente il controller GSM, alimentazione variabili e altro, hai solo un aggiornamento che può modificare queste cose).

Quindi .... Per riassumere ...

Per me, direi che firmware = il software che viene fornito sui dispositivi in ​​cui viene acquistato il software puro come dati, ma sono sicuro che altri potrebbero dire diversi!


Spero che questo appaia ok ... L'ho trovato un argomento molto interessante di cui scrivere, ma mi ci è voluto più di mezz'ora ed è molto presto la mattina / Sono molto stanco ... e non sono sempre chiaro il migliore dei tempi! ... Felice di rispondere alle domande e spero solo di non essermi ripetuto troppo!
William Hilsum,

0

Voglio dare una risposta in poche parole. Entrambi i sistemi operativi e di firmware sono molto importanti per qualsiasi sistema digitale per avviarsi e funzionare correttamente e discuteremo di come entrambi funzionano. Supponiamo di aver spento il nostro smartphone e di accenderlo dopo aver acceso il pulsante di accensione nel nostro smartphone questo comando passerà al chip BIOS che è una memoria non volatile e contenente un programma di firmware. Questo firmware del BIOS inizia a funzionare e il firmware dà il comando in entrambe le direzioni verso RAM e ROM dà il comando ram per togliere i codici del sistema operativo da Rom e un altro comando per ROM per dare una copia del suo sistema operativo alla RAM per attivare tutti gli altri componenti di quel Sistema.

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.