RSS
Blog
Hardware aperto adatto a sempre più progetti informatici

Hardware aperto adatto a sempre più progetti informatici

22 giugno 2021 - di Andrew Oram

Il termine "hardware aperto" è entrato in uso diversi anni dopo il software open source. La prima difesa completa e di principio del software libero, per quanto ne so, è stata la Manifesto GNU del 1983. Al contrario, il termine "hardware aperto" è diventato popolare con il prima versione di Arduino nel 2005e il primo Chip RISC-V è arrivato anche dopo in 2011. I progetti etichettati come "software libero" o "hardware aperto" applicano solo nomi per riconoscere una tradizione di condivisione che risale agli inizi del software per computer e anche nell'hardware. Questo articolo copre alcuni dettagli storici sull'hardware aperto e perché così tante persone si stanno affrettando a usarlo.

L'articolo fa parte di una serie mensile sul blog LPI per celebrare gli anniversari di diversi progetti chiave open source, esplorando diverse direzioni e percorsi dell'ampio movimento open source.

Perché usare hardware aperto?

Un utile definizione di hardware aperto proviene dal Associazione hardware open source (OSHWA). La definizione è parallela alle definizioni di software open source e cultura aperta: libertà di creare e distribuire opere derivate, ecc.

An articolo su EET Asia espone alcuni motivi da giardino per l'utilizzo di hardware aperto. Le persone che hanno studiato il software gratuito e open source riconosceranno queste considerazioni:

  • L'hardware aperto è standard, con trasparenza nella definizione dell'hardware in modo che tu possa fidarti che ogni prodotto conforme funzioni come previsto.
  • Eviti il ​​lock-in del fornitore, che ha sempre comportato il rischio di modifiche tecniche non desiderate, aumenti improvvisi dei costi o modifiche alle licenze e la minaccia finale di perdere del tutto l'accesso alla fonte dell'hardware.
  • L'hardware aperto viene fornito senza oneri legali.

Ma perché l'hardware aperto è popolare ora? Forse è perché gli sviluppatori stanno spostando sempre più funzioni dal software all'hardware. Il routing di rete e la crittografia venivano eseguiti dal sistema operativo o dalle utilità; ora vengono spesso eseguite all'interno di un processore fisico. Lo stesso cambiamento sta avvenendo in machine learning. In sostanza, le applicazioni moderne richiedono più elaborazione e tempi di risposta più rapidi rispetto alle precedenti generazioni di applicazioni. E hardware sofisticato viene sviluppato per soddisfare queste esigenze. Gli sviluppatori vogliono le garanzie date dall'hardware aperto, al fine di riporre la loro fiducia nell'hardware.

Sempre più programmatori, sia professionisti che dilettanti, vogliono anche progettare il proprio hardware. Le ricompense di scrivere un programma che sputa un risultato sullo schermo impallidiscono davanti all'eccitazione di creare un dispositivo in grado di proteggere le tue porte, innaffiare il tuo giardino o far volare un drone. Gli sviluppatori cercano dispositivi economici con le garanzie offerte dall'hardware aperto.

I personal computer erano i precedenti

Sebbene nessuno usasse il termine "hardware aperto" negli anni '1970, questo era essenzialmente ciò che il famoso Homebrew Computer Club stava andando di moda. Senza pensare a segreti commerciali o altra proprietà intellettuale, i membri di quel club si sono scambiati i piani per tutti i tipi di hardware. Il loro idealismo è emerso all'inizio di un'era in cui gli individui potevano permettersi di avere un computer. Non avresti molti acquirenti se condividessi i diagrammi per una macchina che costa centomila dollari. Ma se qualcuno potesse implementare il tuo progetto per dieci dollari, la condivisione diventa significativa. Secondo Jon "maddog" Hall, promotore di lunga data di Linux e open source che ha recensito questo articolo, lo storico Altair e ELFO COSMACO erano entrambi progetti aperti.

L'era dei personal computer fornisce un altro esempio di hardware aperto, sorprendente, perché proveniva dall'azienda più sobria, l'IBM. Quando hanno rilasciato il PC che ha rapidamente conquistato un nuovo mercato per tali computer, hanno adottato un'architettura aperta che ha permesso ai concorrenti di produrre cloni. UN Articolo PCMag UK suggerisce che IBM abbia intrapreso questa strada audace perché si è resa conto che non poteva produrre tutto ciò che gli utenti desideravano in un PC e che un'architettura aperta avrebbe creato un mercato secondario di periferiche e software. Oggi parliamo di questo principio come di una "piattaforma" su cui le terze parti possono costruire.

L'attuale hardware aperto è iniziato come progetti di ricerca

È comprensibile che i due principali progetti contemporanei evidenziati in questo articolo, l'Arduino e il processore RISC-V, siano stati rilasciati da ricercatori. Gli inventori di Cablaggio, il predecessore di Arduino, erano designer alla ricerca di uno strumento da utilizzare nei loro progetti di design. RISC-V è stato il culmine di anni di lavoro di ingegneri elettrici, prima alla UC Berkeley e poi ad altri istituti di ricerca, le cui motivazioni e ricompense non erano legate al numero di unità che potevano vendere. UC Berkeley è la fonte di molti importanti contributi all'informatica, non limitati alla Berkeley Software Distribution (BSD) che includeva importanti progressi Unix e software di rete. Come altri buoni progetti aperti, Arduino e RISC-V si sono diffusi ben oltre i loro creatori originali.

Arduino e schede fai da te

Originariamente popolare per la prototipazione, l'istruzione e i progetti amatoriali da grattare, l'Arduino si è fatto strada in molti prodotti commerciali. Il programmatore/hacker hardware Brian Jepson, nella sua recensione di questo articolo, evidenzia uno dei punti di forza di Arduino come un tipico vantaggio offerto dall'hardware aperto: poiché così tante schede si basano sulle specifiche Arduino, gli sviluppatori possono utilizzare lo stesso codice e le stesse librerie su un varietà di fattori di forma (dimensioni della scheda) e dimensioni del chip (8 bit contro 32 bit). Arduino fornisce un ambiente a basso costo e flessibile in cui i programmatori possono creare rapidamente programmi in linguaggi congeniali come Python con ampie librerie piene di funzioni utili ed eseguire i programmi su bare metal. Il supporto è disponibile per altre lingue con i seguenti tra i programmatori incorporati, come prendere e Via.

I prodotti commerciali si basano spesso anche su altre due schede popolari e a basso costo: la BeagleBone (che è hardware aperto) e il Raspberry Pi (che è hardware non aperto). Le ragioni principali della popolarità di queste due schede includono:

  • Sono stati progettati con una varietà di porte e dispositivi di comunicazione utili per il loro mercato di riferimento.
  • Offrono un ricco set di applicazioni e librerie, sfruttando GNU/Linux e tutto il software scritto per esso o portato su di esso.
  • Gli sviluppatori possono controllare i dispositivi tramite linguaggi popolari come Python e Lua, oltre al C++ ad alte prestazioni.

Il concetto di "apertura" deve essere considerato a strati. Ad esempio, un dipinto di Rembrandt è di dominio pubblico, ma se vuoi prendere una foto di quell'immagine dal web, devi controllare i diritti del fotografo. Allo stesso modo, puoi eseguire software proprietario su un sistema operativo gratuito e viceversa. Nel caso del BeagleBone, la scheda stessa è hardware aperto ma il processore integrato non lo è.

RISC-V

RISC-V è un importante progetto hardware aperto a livello di chip. Come sottolinea il progetto, RISC-V è di per sé solo uno standard, che può essere utilizzato sia per implementazioni proprietarie che aperte. Karim Yaghmour, un software open source e sviluppatore di sistemi embedded che ha trascorso un decennio alla ricerca di hardware aperto e RISC-V, mi ha detto che alcuni dei processori aperti più popolari basati su RISC-V sono i Piattaforma PULP di Die ETH Zürich, Chip di razzo, un chip del team UC Berkeley che originariamente ha rilasciato il progetto RISC-V, picorv32 di Claire Wolf, l'autrice dello strumento di sintesi Yosys RTL, e VexRiscv di Charles Papon, l'autore del linguaggio di progettazione hardware SpinalHDL.

L'idea di un computer con set di istruzioni ridotto (RISC) risale agli anni '1980. Era interessante perché i comuni processori dell'epoca erano in competizione per la quota di mercato aggiungendo istruzioni sempre più complesse, riducendo in definitiva le prestazioni e aumentando i costi. RISC è stato inventato come un audace rifiuto di questa tendenza. RISC ha spostato più lavoro nel compilatore e ha mantenuto il set di istruzioni il più semplice possibile. La teoria ha convalidato l'approccio RISC: significava chip più piccoli e veloci che richiedevano meno energia ed erano più facili da testare. Eppure sono trascorsi decenni mentre vari progetti hanno lottato per affermarsi.

Uno dei primi fornitori di RISC è stato MIPS, che ha fornito chip a Silicon Graphics, un'azienda che ha avuto un breve incendio prima di crollare. Silicon Graphics era abbastanza ricca da costruire un enorme campus di tre edifici nel cuore della Silicon Valley, ora Googleplex. In vari momenti, i chip Alpha di Digital Equipment, SPARC di Sun Microsystems e ora i chip POWER di IBM hanno svolto ruoli importanti nell'industria dei computer, compresi i data center della loro epoca. Il design della SPARC è stato infine reso aperto.

Sebbene i primi sistemi RISC abbiano avuto solo un successo di nicchia, i loro concetti sono diventati gradualmente mainstream. Molte innovazioni dei primi progettisti RISC si sono fatte strada in chip complessi come Intel.

Alpha di Digital ha giocato un ruolo importante nell'evoluzione di Linux, come spiegato da maddog. Stava lavorando per Digital quando hanno sviluppato il chip Alpha e ha esortato Linus Torvalds a portare Linux sul chip, il che ha richiesto profonde modifiche al codice in modo che potesse supportare sia l'architettura Intel originale a 32 bit per cui Torvalds l'ha scritto sia il Alfa a 64 bit. Dato il supporto di Digital e di maddog, una volta che Torvalds ha generalizzato il design del kernel per supportare entrambi i chip, il porting su altre architetture è diventato molto più semplice.

La maggior parte dei dispositivi mobili esegue un chip RISC di ARM, che lo rende l'architettura di processore più comune al mondo. RISC è anche iniziando a farsi strada nei laptop e data center.

E ora lo standard RISC-V. Il design e il primo chip basato su di esso erano rilasciato in 2011, Sebbene l' celebrazione del decimo anniversario conteggiato fino al lancio del progetto nel 2010.

Altri design RISC vanno e vengono, ma il design RISC-V è qui per restare. È diventato particolarmente importante in India, raccogliendo entrambi finanziamento del governo e adozione significativa sia nella ricerca che nell'industria. I sostenitori si aspettano che RISC-V porti il ​​concetto RISC a grandi altezze, occupando ambienti informatici che vanno dall'Internet of Things ai data center.

I BeagleV riunisce i due filoni principali di questo articolo: è una scheda hardware aperta basata su un chip RISC-V di SiFive.

Oltre alla specifica "base" aperta, il progetto RISC-V ha un meccanismo per definire estensioni per cose come la manipolazione dei bit e l'elaborazione parallela di singole istruzioni, dati multipli (SIMD), in modo che gli sviluppatori possano lavorare separatamente su progetti che renderanno lo standard aperto adatto a nuove esigenze e opportunità.

Open Manufacturing e Tooling

Proprio come gli sviluppatori dovrebbero potersi fidare del compilatore e delle librerie durante la creazione dei loro programmi, i progettisti di chip vorrebbero fidarsi dei loro produttori. Nel software, i compilatori e le librerie open source forniscono la fiducia. Secondo maddog, il processo di produzione può diventare più trasparente aprendo il Process Design Kit (PDK) utilizzato dal produttore. Google ha fatto un passo verso l'open PDK, che ha chiesto al suo fornitore di chip, SkyWater, di pubblicare un PDK aperto.

Diversi vantaggi derivano dai PDK aperti:

  • Rendono difficile per un produttore infilarsi in un errore o in una backdoor dannosa. Il progettista del chip può confrontare il loro design con il foglio prodotto dal produttore per dimostrare cosa stanno facendo e verificare che corrispondano.
  • Gli utenti che vengono tagliati fuori dalle forniture (vedere la sezione seguente per un esempio) possono aumentare più facilmente la produzione a livello locale.
  • Le nuove strutture possono diventare molto più veloci imparando dai PDK di produttori avanzati.

E con a attuale carenza globale di chip per computer, qualsiasi nuova capacità produttiva sarebbe apprezzata.

Secondo Yaghmour, anche gli strumenti per la produzione di maschere da fornire ai produttori per la produzione di chip devono evolversi. Ha citato la SkyWater-based OpenLane come un passo verso strumenti open source. Yaghmour attende con impazienza una maggiore innovazione nella progettazione dei chip che gli strumenti open source potrebbero facilitare. La velocità di sviluppo del software è aumentata nel corso dei decenni, dal momento che non è più necessario inviare un mazzo di schede perforate e attendere i risultati fino al giorno successivo: è possibile compilare ed eseguire un programma in pochi minuti. Ma portare un chip dalla progettazione alla produzione richiede ancora anni e gli strumenti open source possono ridurre notevolmente i cicli e aiutare con l'ottimizzazione dei progetti.

Alcuni progetti hardware aperti da tenere sul tuo radar

Un hacker cubano open hardware di nome Pavel Milanes (con un secondo Sito GitHub per progetti) ha creato soluzioni radio e strumenti per radioamatori sulla piattaforma Arduino, tra cui:

Milanes, in uno scambio di email per questo articolo, mi ha detto che Arduino e relativi shield e componenti non possono essere acquistati facilmente a Cuba e che gli hacker possono ottenerli solo tramite un costoso mercato nero o tramite acquisti esteri con metodi di spedizione incerti. Inoltre, non aveva accesso alle radio Yaesu, quindi il suo codice era basato interamente sulle schede tecniche dei produttori, ma è stato convalidato da altri radioamatori che possiedono quelle radio.

Ora Milanes è uno degli sviluppatori sul Progetto Chirp, un sistema software unificato per controllare e programmare molte radio di diversi fornitori con una sola app.

Altri tipi di hardware aperto

Un'area in cui l'hardware aperto è stato a lungo popolare è stampanti 3D. Alcune stampanti 3D possono persino stampare altre stampanti 3D, portando la Singolarità più vicina alla fruizione. E se vuoi un vero hardware aperto, puoi stampare in 3D tutti i tipi di strumenti, come martelli, estensioni del morsettoe oggetti più pericolosi.

L'Open Source Hardware Association certifica i progetti aperti e sostiene gli sforzi verso l'hardware aperto. C'è anche un Fondazione FPGA open source portando il movimento dell'hardware aperto a questo importante aspetto della progettazione hardware.

Così, l'open hardware ha fatto il viaggio di tante buone idee: prima una pratica senza nome, poi un ideale segnato da implementazioni sparse, e ora un'organizzazione consolidata con certificazioni. Come il software, l'hardware è diventato un ambiente complesso in cui le offerte proprietarie si sovrappongono all'open source e ne beneficiano.
 

Leggi il post precedente | Leggi il prossimo post

Informazioni su Andrew Oram:

Andrea Oram

Andy è uno scrittore ed editor nel settore IT. I suoi progetti editoriali presso O'Reilly Media vanno da una guida legale sulla proprietà intellettuale a una graphic novel su hacker adolescenti. Andy scrive spesso anche sull'impatto dell'IT in ambito sanitario, su questioni politiche relative a Internet e sulle tendenze che incidono sull'innovazione tecnologica e i suoi effetti sulla società. Pubblicazioni stampate in cui è apparso il suo lavoro includono The Economist, Communications of the ACM, Copyright World, Journal of Information Technology & Politics, Vanguardia Dossier, and Internet Law and Business. Le conferenze cui ha presenziato includono la Open Source Convention di O'Reilly, FISL (Brasile), FOSDEM (Bruxelles), DebConf e LibrePlanet. Andy partecipa all'organizzazione politica della Association for Computing Machinery, USTPC.