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.
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à?
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)
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.
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à?
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.