Domanda sui firmware

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

Domanda sui firmware

Messaggio da mordecai »

Salve a tutti avrei un dubbio riguardante i firmware.
I firmware sono quei software scritti in linguaggi macchina,che consentono all'hardware di funzionare col sistema operativo.Spero di aver dato una buona definizione e soprattutto corretta.
La domanda che mi pongo è la seguente:perchè si realizzano i firmware in linguaggio macchina?Non sarebbe più facile programmarli in un linguaggi ad alto livello?

Forse perchè l'interazione con l'hw deve essere istantanea e quindi solo il linguaggio di basso livello permette questa velocità? :-k

Avatar utente
JohnnyMnemonic
Staff
Staff
Messaggi: 2733
Iscritto il: dom 5 set 2004, 0:00
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos
Località: Bologna
Contatta:

Re: Domanda sui firmware

Messaggio da JohnnyMnemonic »

Dalla definizione che da Wikipedia:
Il termine deriva dall'unione di "firm" (stabile) e "ware" (componente), indica che il programma non è immediatamente modificabile dall'utente finale e che si tratta del punto di incontro fra componenti logiche e fisiche, ossia fra hardware e software.
Essendo il firmware uno "strato" di collegamento tra hw e sw deve essere scritto in un linguaggio (sw) il più possibile vicino al linguaggio macchina (hw)

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Domanda sui firmware

Messaggio da Mario Vanoni »

JohnnyMnemonic ha scritto:Dalla definizione che da Wikipedia:
Il termine deriva dall'unione di "firm" (stabile) e "ware" (componente), indica che il programma non è immediatamente modificabile dall'utente finale e che si tratta del punto di incontro fra componenti logiche e fisiche, ossia fra hardware e software.
Essendo il firmware uno "strato" di collegamento tra hw e sw deve essere scritto in un linguaggio (sw) il più possibile vicino al linguaggio macchina (hw)
Nel 1985/6 firmware era _interpretato_:
firm == azienda
ware == software
quindi software proprietaria del costruttore della HW,
tempi AT&T 3B2/310 e 3B2/400, storia oramai ...

Senza la firmware non si installava il sistema operativo,
allora AT&T UNIX SVR3[.012].
La firmware era su un floppy 5 1/4" singolo!
Primo floppy per poter bootare la macchina.

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: Domanda sui firmware

Messaggio da 414N »

mordecai ha scritto: I firmware sono quei software scritti in linguaggi macchina,che consentono all'hardware di funzionare col sistema operativo.Spero di aver dato una buona definizione e soprattutto corretta.
Wikipedia (EN) ha scritto: In computing, firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash memory or as a binary image file that can be uploaded onto existing hardware by a user.

As its name suggests, firmware is somewhere between hardware and software. Like software, it is a computer program which is executed by a microprocessor or a microcontroller. But it is also tightly linked to a piece of hardware, and has little meaning outside of it.
Non è detto che il firmware venga scritto in linguaggio macchina: io ho programmato il software di alcuni microcontrollori PIC (quindi il loro firmware) e, a parte il loro linguaggio Assembly, avevo a disposizione anche un compilatore C apposito. Ovviamente -- indipendemente dal linguaggio usato -- si andava a produrre un programma nel linguaggio macchina del microcontrollore.
mordecai ha scritto: La domanda che mi pongo è la seguente:perchè si realizzano i firmware in linguaggio macchina?Non sarebbe più facile programmarli in un linguaggi ad alto livello?

Forse perchè l'interazione con l'hw deve essere istantanea e quindi solo il linguaggio di basso livello permette questa velocità? :-k
Dato che si parla di dispositivi con una quantità limitata sia di memoria sia di risorse computazionali (architettura RISC il più delle volte), è probabile che il compilatore C (o di un qualsiasi altro linguaggio di più alto livello dell'Assembly) tenda ad inserire istruzioni ridondanti e/o inutili, più il firmware che si va a programmare aumenta di complessità. Questo è inevitabile quando si aumenta l'astrazione dall'architettura fisica.

Rispondi