Oggi le 3Domande sono per Andrea Righi, relatore al prossimo Better Embedded di Firenze. Esperto in sistemi embedded, architetture e sistemi operativi. Attualmente sviluppatore per BetterLinux.
Andrea: Lavoro come freelance, la mia mansione principale e` quella di sviluppatore sul kernel Linux, o "kernel hacker" come preferisco definirmi io. 🙂
Collaboro prevalentemente con un'azienda americana chiamata BetterLinux. Sono specializzato in sistemi real-time, sistemi embedded e tecnologie di virtualizzazione.
Sono un sostenitore del modello open-source e in passato ho contribuito a vari progetti open, sempre con particolare interesse per il kernel Linux.
Andrea: Al BetterEmbedded cerchero` di introdurre alcune problematiche chiave della programmazione del kernel Linux dal punto di vista dello sviluppatore di sistemi embedded.
Quello che rende Linux appetibile per l'embedded e` sicuramente la sua elevata portabilita`, in particolare la presenza di driver praticamente per qualsiasi dispositivo, e ovviamente la totale possibilita` di customizzazione e integrazione: il codice e` open-source, quindi può essere adattato o portato su qualunque tipo di hardware.
Avere Linux sul proprio dispositivo embedded significa anche poter usare trasparentemente qualsiasi applicazione scritta per girare su Linux. Una volta che un sistema GNU/Linux parte sulla nostra nuova piattaforma embedded abbiamo fatto generalmente il 99% del lavoro. Con Linux abbiamo web server, applicazioni di networking, media center, etc.
Qualunque requisito utente puo` essere soddisfatto a tempo zero, o comunque può` essere soddisfatto in tempi molto piu` rapidi rispetto a scriversi un firmware totalmente custom, o appoggiarsi a qualsiasi altra piattaforma.
Chi investe oggi nelle soluzioni Linux per il mondo embedded? Beh, se pensiamo allo scenario mobile/tablet ad esempio ci viene subito in mente Android.
Android e` divenuta la piattaforma leader del mercato mobile, oggi si contano circa 400 milioni di dispositivi Android (tra tablet e telefonia), con circa 1 milione di nuove attivazioni per giorno (da wikipedia).
E Android non e` altro che un kernel Linux, con alcune modifiche prevalentemente mirate ad una gestione migliore del risparmio energentico.
Ma Android non e` solo mobile, ci sono tablet, addirittura alcune board nell'industria dell'automazione si stanno appoggiando alla piattaforma Android. Questo perche` un sistema usato da molti, e visto da molti, significa anche il piu` possibile libero da bug (cioe` affidabile): in questo il modello open-source funziona bene, c'e` una comunita` che revisiona il lavoro di tutti, se pubblichi il tuo lavoro e sei fortunato puoi ricevere gratuitamente la revisione al tuo codice e le correzioni degli errori che hai fatto. 🙂
In conclusione, considerando tutto cio` che ho detto sopra, la mia idea per BetterEmbedded era di presentare due talk: uno piu` introduttivo e generico sullo sviluppo driver per sistemi embedded Linux-based, un altro piu` specifico sempre sullo sviluppo kernel, ma mirato al kernel di Android, esaminando un po' piu` in dettaglio le problematiche del consumo energetico.
Quali suggerimenti vuoi dare per incentivare chi, pur sposando i principi Open non si sente tutelato dalle varie licenze
ed è tentato dal mito del modello di business closed?
Andrea: Domanda molto interessante.
Per quanto riguarda la mia esperienza personale posso dire che come sviluppatore il modello open funziona molto meglio del modello closed.
Ho iniziato questo lavoro contribuendo a progetti open-source. Venivo poi contattato da aziende sparse in tutto il mondo che mi offrivano lavoro per portare avanti quello che precedentemente avevo pubblicato.
Dal mio punto di vista e` un modello perfetto: posso continuare a fare quello che facevo nel tempo libero e in piu` vengo pagato. 🙂 Dal punto di vista dell'azienda spesso va bene, perche` puo` interagire direttamente con l'autore, o comunque con qualcuno che ha partecipato attivamente allo sviluppo, senza dover formare altre persone. Questo vuol dire partire a tempo zero, magari con qualcosa che soddisfa gia` gran parte dei propri requisiti.
Piu` in generale metterei in evidenza due aspetti vincenti del modello open-source rispetto al modello closed:
1) notorietà: contribuire a progetti open-source noti da` visibilità` allo sviluppatore e all'azienda che lo "finanzia". Il modello closed e`carente da questo punto di vista: bisogna spendere per lo sviluppo e per farsi conoscere.
2) rete di contatti: avere l'opportunita` di contribuire a progetti noti significa spesso interagire con una comunita` formata dai maggiori esperti del settore. Questo si traduce in formazione per chi si occupa di sviluppo, e un buon livello di revisione del codice, che alla fine permette di raggiungere una buona qualita` del prodotto. Queste opportunita` non ci sono nella controparte closed.
Tutto cio` non vale solo per i contributi a grandi progetti, ma anche per le realta` piu` piccole se viene raggiunta una massa critica di utilizzatori e/o esperti del settore che possono vedere "sotto il cofano" e contribuire con correzioni e/o idee innovative.
Per chi e` tentato dal modello di business closed deve scommettere molto sulle proprie capacita` e risorse per raggiungere un buon livello di qualita` e visibilita`. Come modello di business lo vedo molto piu` fragile, specie per le piccole realta` che devono partire da zero.
Il modello di business closed funziona per Apple, perché sostanzialmente se lo puo` permettere. 🙂 Apple non e` un'azienda che parte da zero, sa bene come far parlare di se` e soprattutto sa come invogliare una grande massa di utenti ad acquistare i propri prodotti.
Nello specifico per la recente vicenda legale Apple/Samsung la mia opinione e` che la questione sia centrata molto su questioni di design piu` che sulla tecnologia vere e proprie. Difatti gran parte delle tecnologie usate da Apple non sono di fatto frutto di Apple, ad esempio il kernel di Mac OS X e` stato in gran parte ricavato da progetti open-source (BSD e NetBSD). Forse il modello di business closed si applica bene su questioni di design ad altissimo livello, ma non sulla tecnologia e sul software. Ogni volta che un software diventa closed, cessa l'opportunita` di innovazione da parte della comunita`. Sta tutto nelle mani di chi ne acquisisce la proprieta`.
Grazie Andrea della disponibilità.
Riguardo alla terza domanda/risposta aggiungerei che la diatriba sui due modelli di business open/closed è quanto mai attuale ed accesa con accaniti sostenitori da entrambe le parti. Dopo la morte di Steve Jobs le librerie si sono riempite di libri su Apple e sulla sua icona. Titoli come “nella testa di SJ” oppure “Pensare come SJ” sembrano vogliano imprimerci un modello da seguire per emergere.
Ma forse il modello Apple non è la soluzione alla crisi, piuttosto la causa…..
Speriamo anche i fanatici Apple si facciano una opinione sulla crisi economica, e soprattutto sulle cause. Ovviamente mi riferisco a quelli che vedono Apple soltanto come uno status symbol