Open Firmware è uno standard che definisce le interfacce di un firmware per computer, precedentemente approvato dall'Institute of Electrical and Electronics Engineers. Nasce alla Sun Microsystems dove era conosciuto come OpenBoot ed è stato utilizzato da diversi fornitori tra cui Sun, Apple, IBM e ARM.[senza fonte]
Consente a un sistema di caricare dei driver indipendentemente dalla piattaforma direttamente da un dispositivo PCI, migliorandone la compatibilità.
È possibile accedervi grazie alla sua interfaccia a riga di comando, che utilizza il linguaggio di programmazione Forth.
Storia
[modifica | modifica wikitesto]È rappresentato nello standard IEEE come IEEE 1275-1994. Lo standard non è più stato rinnovato dal 1998 da parte dell'Open Firmware Working Group, è stato quindi ufficialmente ritirato dall'IEEE nel maggio 2005.[1]
Caratteristiche
[modifica | modifica wikitesto]L'Open Firmware definisce un modo standard per descrivere la configurazione hardware di un sistema, chiamata device tree.[2] Questo aiuta il sistema operativo a comprendere meglio la configurazione del computer host, facendo meno affidamento sulla configurazione dell'utente e sul polling dell'hardware. Ad esempio, Open Firmware è essenziale per identificare in modo affidabile i dispositivi I²C slave come i sensori di temperatura per il monitor di sistema,[3] mentre è noto che la soluzione alternativa di eseguire un sondaggio cieco del bus I²C, come deve essere fatto da un software come lm_sensors su hardware generico, in determinate circostanze provoca seri problemi hardware.[3]
Open Firmware Forth Code può essere compilato in FCode, un bytecode indipendente dall'architettura dell'instruction set. Una scheda PCI può includere un programma, compilato su FCode, che funziona su qualsiasi sistema Open Firmware. In questo modo, può fornire diagnostica all'avvio, codice di configurazione e driver di dispositivo. FCode è anche molto compatto, tanto che un driver del disco può richiedere solo uno o due kB. Pertanto, molte delle stesse schede I/O possono essere utilizzate su sistemi Sun e Macintosh che utilizzano Open Firmware. FCode implementa ANS Forth e un sottoinsieme della libreria Open Firmware.
Essendo basato su un linguaggio di programmazione interattivo, Open Firmware può essere utilizzato per testare e sviluppare in modo efficiente nuovo hardware. Consente di scrivere e testare i driver in modo interattivo. I driver video e mouse operativi sono l'unico prerequisito per un'interfaccia grafica adatta alla diagnostica dell'utente finale. Apple ha fornito un "sistema operativo" di questo tipo diagnostico in molti Power Macintosh. Sun ha inoltre distribuito una suite di strumenti diagnostici basata su FCode denominata OpenBoot Diagnostics (OBDiag) utilizzata dal supporto del servizio clienti e dai team di produzione dell'hardware.[4]
Implementazioni e licenze
[modifica | modifica wikitesto]Diverse implementazioni commerciali di Open Firmware sono state rilasciate alla comunità Open Source dal 2006, tra cui Sun OpenBoot, Firmworks OpenFirmware e Codegen SmartFirmware. Il codice sorgente è disponibile dal progetto OpenBIOS. L'implementazione di Sun è disponibile con licenze BSD.[senza fonte]
Note
[modifica | modifica wikitesto]- ^ (EN) IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices (PDF), 28 ottobre 1994, pp. 1-262, DOI:10.1109/IEEESTD.1994.89427, ISBN 978-0-7381-1194-0. URL consultato il 17 gennaio 2024.
- ^ (EN) Jim Mauro e Richard McDougall, Solaris Internals: Core Kernel Components (PDF), Sun Microsystems, p. 107, ISBN 0-13-022496-0. URL consultato il 17 gennaio 2024.
- ^ a b (EN) Constantine A. Murenin, OpenBSD Hardware Sensors – Environmental Monitoring and Fan Control, in Università di Waterloo, UWSpace, 21 maggio 2010, ab71498b6b1a60ff817b29d56997a418. URL consultato il 17 gennaio 2024.
- ^ (EN) About OpenBoot Diagnostics (OBDiag), su Oracle Corporation. URL consultato il 17 gennaio 2024 (archiviato dall'url originale il 7 marzo 2021).
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su playground.sun.com (archiviato il 9 luglio 2011).