„Free Software”, sau „software libre”, e un concept cu care cititorul de cărămizi este, bănuiesc, obișnuit, dat fiind faptul că am tot tratat în trecut subiecte legate de dânsul. Să reluăm însă, în primul rând pentru rigurozitate, definiția dată de organul reprezentativ al softului liber, Free Software Foundation:
Free software is software that gives you the user the freedom to share, study and modify it. We call this free software because the user is free.
Ideea softului liber este deci una care ține de libertate și nicidecum de bani, iar în acest sens sintagma de „software libre” e ușor improprie: programele nu pot fi în sine constrânse în sensul libertății, libertatea aparținând sau nu, după caz, utilizatorilor de calculatoare numerice programabile, deci implicit de software, care nu-i nimic altceva decât informație. Iar libertatea de a „da mai departe” informație este esențială pentru supraviețuirea civilizației, după cum am menționat și în „arhiva de informație a rasei umane™”.
Firește, hardware-ul se încadrează și el în aceeași categorie, acesta având fundamente identice cu cele ale software-ului. Reprezentarea abstractă a unui calculator poate fi un program, un set de ecuații sau un circuit electronic, ideea din spate fiind absolut aceeași. Diferențele țin mai degrabă de aspecte practice cum ar fi tehnologia de fabricație, însă hardware-ul evoluează și el mai rapid sau mai lent, fapt care poate fi demonstrat de exemplu de istoriile procesoarelor Intel și ARM. În particular, arhitectura ARM a dus la o explozie de platforme hardware care mai de care mai interesante, care integrează CPU-ul clasic cu procesoare grafice, procesoare de semnal și așa mai departe.
Evoluția asta a schimbat focus-ul dinspre prăfuita platformă PC către ceva cu totul diferit. Acest ceva vine și cu dezavantaje, cel mai proeminent fiind poate cel al lipsei standardizării: fiecare producător hardware își dezvoltă câte o specificație proprietară, deasupra căreia pune un sistem de operare optimizat pentru aceasta. Asta se traduce în anumite componente software -- mai exact drivere -- proprietare, care limitează libertățile utilizatorului. Ce înseamnă mai exact această limitare de libertate? Înseamnă că utilizatorul va sta la cheremul producătorului să primească update-uri de securitate și funcționalitate, update-uri care de cele mai multe ori nu ajung la destinație, chiar dacă restul componentelor sistemului de operare sunt libere. Ori aspectul ăsta e inacceptabil în condițiile în care dorim de exemplu să pricepem cum funcționează sistemul nostru de calcul, sau în cazul în care vrem să fim siguri că același sistem de calcul nu se comportă într-un mod malițios.
Lucrurile nu sunt însă atât de negre precum par. În primul rând că o mașină de calcul foarte simplă1 poate fi construită de orice tânăr entuziast folosind un pistol de lipit și piese electronice valorând în jur de cincizeci de dolari. Sigur, componentele hardware sunt în continuare proprietare, însă punerea lor într-o schemă poate fi făcută după bunul plac al programatorului, ceea ce e deja un pas înainte față de SoC-urile complet proprietare. „But does it run Linux?”, va întreba cititorul.
Din acest punct de vedere, anul 2012 a reprezentat un alt pas înainte, marcând apariția calculatorului Raspberry Pi. Inițiativa nu e musai nouă în ceea ce privește tehnologia: plăcile Beagleboard și Pandaboard de la Texas Instruments sunt pe de o parte mai performante, și pe de altă parte au specificațiile „open”, chiar dacă nu „free” în adevăratul sens al cuvântului. Marele avantaj al Raspberry Pi-ului este însă prețul, care poate încuraja pe oricine să se apuce să hack-uiască și să dezvolte software liber. Astfel, chiar dacă hardware-ul nu e 100% „libre”, e suficient de liber încât să nu pună prea mari probleme software-ului sau implementării de extensii hardware.
Procesul de eliberare al hardware-ului nu se oprește însă aici. Piața FPGA-urilor oferă destul de multe modele la prețuri mai mici de o sută de dolari, în condițiile în care în domeniu emerge deja un curent al hardware-ului open source, chit că nu-i același lucru cu „hardware liber”2. În același timp, pe Internet se găsesc la ora actuală surse HDL pentru procesoare de uz general bazate de exemplu pe MIPS, fapt care deschide orizonturi și face din ideea asta de „hardware liber” mai mult decât un vis frumos. Sigur, asta nu se compară nici de departe cu sumele uriașe băgate de corporații precum Intel, IBM, Qualcomm sau ARM în proiecte de cercetare legate de design și procese de fabricație a hardware-ului modern, însă e un început la fel de bun ca cel al unui student de 22 de ani care s-a apucat să programeze un nucleu al unui sistem de operare, „just for fun”.
În plus, Free Software Foundation s-au lovit deja de ideea lansării unui procesor liber care să se situeze la nivelul SoC-urilor moderne. Cerințele sunt acolo: un set de instrucțiuni liber și posibilitatea de a fi programat folosind software liber sunt ținte după părerea mea realizabile, poate nu în 2013, dar aproape sigur în 2014. În plus, mai devreme sau mai târziu din ce în ce mai multe brevete Intel vor ajunge să expire, fapt care va duce la eliberarea studiului acelor tehnologii și va ajuta și mai mult inovația în domeniul hardware-ului liber.
În fine, o viziune ceva mai SF a viitorului este cea în care uneltele de producție a hardware-ului vor exista în abundență pe piață, similar cu felul în care software-ul poate fi produs astăzi de către oricine. Mai exact, circuitele integrate pe scară foarte largă vor putea fi produse la fel de ușor ca pâinea, folosind unelte similare cu imprimantele 3D apărute în ultima vreme. Compilatoarele vor trebui probabil să învețe singure să genereze cod pentru arhitecturi noi, iar hardware-ul produs astfel ar putea merge până la a avea proprietăți auto-replicare sau măcar auto-reparare3. E foarte discutabil dacă s-ar putea ajunge la nivelul ăsta folosind siliciul, însă după părerea mea asta nu face decât să transforme subiectul într-unul și mai interesant.
-
Adică fără memorie virtuală și alte briz-briz-uri prezente în calculatoarele moderne. Mai exact vorbim de platforme bazate pe microcontrollere cum ar fi cele de la Atmel. ↩
-
Vina distincției între „open source” și „free” îi aparține în totalitate FSF. Puteți citi mai multe despre asta în articolul intitulat „Why Open Source misses the point of Free Software”. ↩
-
Ideea de „self-healing hardware” există deja la nivelul logicii reconfigurabile. ↩