A Linux az utóbbi négy évben lelkes programozók „játékszeréből”; nagy szoftvercégek komoly vetélytársává vagy szövetségesévé nőtte ki magát. Hogy jobban megértsük, mi vezetett idáig és mi várható az elkövetkező években, tegyünk rövid szakmai és történelmi kitérőt.

Az egyik legalapvetőbb fogalom a program, amely leegyszerűsítve a számítógép memóriájában elhelyezett adatok olyan sorozata, ami a gép központi egysége, processzora által értelmezhető, a szakzsargonban „futtatható” . A programokat (pl. szövegszerkesztő, böngésző stb.) gyűjtőnéven szoftvernek, míg a működésüket lehetővé tevő berendezéseket általánosan hardvernek nevezzük. Ezek csakis együttesen alkotnak funkcionális egységet.

A gép által könnyen értelmezhető, logikai nullákból és egyesekből álló programkód programozók számára nem vagy nagyon nehezen látható át, ezért a beavatottak más halandók által is olvasható programozási nyelven dolgoznak, amelynek struktúrája kötött és meghatározott „nyelvi” elemekből áll. Az ilyen nyelven (pl. Basic, Pascal, C stb.) és általában valamilyen szövegszerkesztőben megírt dokumentumokat nevezzük forrásnak vagy forráskódnak. Ahhoz, hogy ebből működőképes, tehát a gépen futtatható fent említett nullákból és egyesekből álló gépi adatsorozatot kapjunk, egy másik program segítségével azt le kell fordítanunk. E kettő olyan viszonyban áll egymással, mint egy épület mérnöki tervrajza és maga az elkészült épület. A tervek alapján megépíthető az épület, de ennek fordítottja már nehezebben képzelhető el, nem is beszélve ennek esetleges jogi konzekvenciáiról.

A programok egy speciális fajtája az operációs rendszer. Ennek feladata kettős: egyrészt a felhasználója számára lehetőséget teremt a számítógép kezelésére és más programok futtatására, másrészt a számítógép alkotóelemeit összehangolja, működteti. Ilyen a legtöbb ember által ismert, személyi számítógépeken futó Windows, MacOS, de így működnek a modern mobiltelefonok és ebbe a kategóriába esnek az Internet jelentős részét üzemeltető Unix-alapú rendszerek is. A számítógépek és az operációs rendszerek tovább bonthatók úgynevezett kiszolgáló (szerver) és ügyfél (kliens) változatokra. Míg az ügyfelek a felhasználók asztali vagy hordozható gépei, illetve azokon munkát lehetővé tevő szoftverek, addig a kiszolgálók tipikusan nagyobb teljesítményű számítógépek és ezeken futó programok. Feladatuk, hogy a hálózatba kötött ügyfeleknek adatokkal, szolgáltatásokkal és kiterjesztett funkciókkal szolgáljanak. Az internet is ilyen kiszolgálók globális struktúrája.

A kereskedelemben kapható programok döntő többsége kizárólag már lefordított formában kerül forgalomba, ezért aki „megvásárolja” azokat, nem tekinthet bele a cég féltve őrzött kincsébe, a program forrásába. Ez azt jelenti, hogy csak a gépi nyelvű változat használatának jogát kapjuk meg, így a termékkel nem rendelkezhetünk szabadon. Ez olyan, mintha autókat csak lezárt motorháztetővel vehetnénk, az alkatrészeket nem javíthatnánk magunk és nem szerelhetnénk át egy másik járműbe. Tehát nem láthatjuk, hogy az adott programot hogyan tervezték és írták meg, illetve nem módosíthatjuk azt saját magunk és mások igényei szerint.

Bizonyos cégek azonban ennél is jobban korlátoznak bennünket azzal, hogy licencszerződéseikkel meghatározzák, hogy az adott programot hányan és hány számítógépen használhatják egyidejűleg. Propaganda-hadjáratuk elültette az emberek tudatában, hogy aki programokat másol, az kalóz, tehát bűnöző és egy tolvajjal esik azonos elbírálás alá. A média e „rend” hűséges kiszolgálójának bizonyult. Nem mindig volt ez azonban így…

A kezdetek

A második világháború után, a többek között Neumann János úttörő munkássága nyomán megjelenő első elektroncsöves számítógépektől kezdve fokozatosan kezdett kialakulni egy programozói szubkultúra. Az úgynevezett „igazi” programozók körébe olyan mérnökök és tudósok tartoztak, akik szobanagyságú – ám mai szemmel nézve csekély teljesítményű – gépeket programoztak mostanra már jórészt kihalt programozási nyelveken. A nem ritkán emberfeletti teljesítményt követelő munkát élvezettel, szórakozásból végezték. Az anekdota szerint Seymour Cray, a nagy teljesítményű Cray szuperszámítógépek atyja egyszer egy teljes operációs rendszert táplált be a saját maga által tervezett gépbe, 8-as számrendszerbeli kódok formájában… egyetlen hiba nélkül. (1/b)

Az igazi programozók nyomán az interaktív számítástechnikának olyan hagyománya teremtődött meg, mely később a nyílt forrású programok, illetve szabadszoftverek megjelenéséhez vezetett. 1969-ben megkezdte működését az eleinte katonai célú ARPAnet (Advanced Resource Project Agency Network, a mai internet elődje) egyetemek és kutató laboratóriumok százait kapcsolva össze, ezzel megteremtve a digitális adatok áramlásának egy korábban elképzelhetetlenül gyors módját. Megszűnt a programozók kis csoportjainak elszigeteltsége, akik így, ezen új médium segítségével immáron komoly öntudatos közösséget hozhattak létre. (1/b)

Akkoriban a DEC (Digital Equipment Corporation) által forgalmazott, az ARPAnet jelentős részét alkotó PDP-sorozatú számítógépek már megfelelő teljesítményt nyújtottak összetettebb programok hatékony futtatásához. Az AT&T (American Telephone and Telegraph), MIT (Massachusetts Institute of Technology) és számos nagyobb cég, valamint kutatóközpont támogatásával a 60-as évek közepétől egy biztonságosnak és megbízhatónak szánt, több felhasználó egyidejű munkáját lehetővé tevő operációs rendszer, a Multics (Multiplexed Information and Computing Service) fejlesztésébe fogtak. Mindezek mellett arra is törekedtek, hogy a felhasználók és programozók által érzékelhető felület az akkori mércéhez mérten a lehető legbarátságosabb legyen. (1/b, 2)

1969-ben nyilvánvalóvá vált, hogy a tervezett cél nem érhető el. Ekkor a Bell Labs két alkalmazottja, Ken Thompson és Dennis M. Ritchie egy használaton kívüli PDP-7-es számítógépen kísérletileg létrehozott egy a Multixhoz hasonló rendszert, majd azt viccesen Unixnak (ejtsd juniksz) nevezték el. A Unixot úgy tervezték, hogy egyedi funkciójú kis programegységekből, úgynevezett szerszámokból épül fel, amelyek sokrétűen egymáshoz illeszthetőek. Ezeknek az eszközöknek a kombinációjával összetett feladatok oldhatók meg, hasonlóan ahhoz, ahogy a beszélt nyelvben szavakból mondatokat rakunk össze. 1974-ben Ritchie ezeken a filozófiai alapokon alkotta meg a C programozási nyelvet, amely a Unixszal együtt a modern számítástechnika alapjává és nélkülözhetetlen eszközévé vált. (1/b, 2)

Kezdetben a rendszer futótűzként terjedt az AT&T tudósai, majd az ARPAnet programozóinak körében. A Unix hatékony kiaknázásához a felhasználóknak elérést kellett biztosítani az említett eszközökhöz, illetve azok forráskódjához. Ahogy a rendszer fejlődött, szinte mindenki, aki hozzájutott, segített új programegységek, eszközök megalkotásával és a meglévők tökéletesítésével. (2) A magukat buherátornak (hacker) nevező programozók közt a forráskódok olyan természetességgel cseréltek gazdát, mint a háziasszonyok ételreceptjei. (1/c) Ez a szó azonban a szabadszoftver-kultúrában nem a manapság a médiában tévesen elterjedt számítógépes behatolót, hanem kreatív programozót takar.

A Kaliforniai Egyetem Berkeley tagozatának két kiváló képességű hallgatója, Bill Joy és Chuck Haley szintén hozzájutott ehhez a rendszerhez és a forrás birtokában önálló változat, a BSD (Berkeley Software Distribution) fejlesztésébe kezdett. 1978-ban Joy 50 dollárért – adathordozó és a postaköltség áráért – 30 másolatot küldött el az érdeklődőknek. A BSD megjelenésével a Unix két különálló, egyre kevésbé kompatibilis változatra bomlott, s ezt a folyamatot semmi sem korlátozta. (2)

1984-ben az AT&T-t érintő kereskedelmi korlátozások megszűnte után a Unix zárt forrású kereskedelmi termékké vált. Egyre több cég jelent meg AT&T vagy BSD alapú saját, zárt Unix változatával, köztük a Sun Microsystems, HP (Hewlett-Packard), SGI (Silicon Graphics, Inc.), Digital és az SCO (Santa Cruz Operation). A 90-es évek elején nyilvánvalóvá vált, hogy a Unix szabványosítása nem hozza meg a kívánt mértékű egységesítő hatást (2) és a szétforgácsoltság, valamint a cégek gyenge kereskedelmi stratégiája folytán a Microsoft képessé válik jelentős piaci területek meghódítására egy lényegesen alacsonyabb műszaki színvonalú produktummal. A szaksajtó folyamatosan a Unix halálát jósolta, az elsőgenerációs hackerek lelkesedése kezdett alábbhagyni és a több évtized alatt felépített világuk összedőlni látszott. Nyomasztó idők voltak ezek. Szerencsére a háttérben, a sajtó és az üzleti élet számára láthatatlan módon olyan események zajlottak, amelyek később, a 90-es évek végén új mederbe terelték a számítástechnikát. (1/b)

Szabadszoftverek

Richard M. Stallman 1971-ben kezdett el dolgozni az MIT mesterséges intelligenciát kutató laboratóriumában. Részt vett a központ rendszereinek és programjainak fejlesztésében. Számára természetes volt, hogy a különböző programok forrása mindenkinek szabadon rendelkezésére áll. Bárki, aki igényt tartott rá, megkaphatta és kedvére módosíthatta, felhasználhatott részeket, hogy saját programot alkosson. A következő évtizedben azonban az üzleti érdekek folytán a védett programok kezdtek egyeduralkodóvá válni. A forráshoz a programozók csak kizárólagos szerződések aláírásával juthattak, melyek megtiltották az információ szabad áramlását. E szerződések értelmében a programok módosítását is azok bejegyzett tulajdonosainak jogaként határozták meg. Kalóznak nevezték azt, aki a szomszédjának segíteni akart. Ezzel megindult a hackerközösségek eróziója, mert a szoftverlicencek lassan megszüntették a létezésükhöz szükséges táptalajt, és sokan védett programok írására szerződtek. Stallman a számítástechnika és a tudomány párhuzamából kiindulva ezt elhibázottnak, antiszociálisnak és egyszerűen etikátlannak tartotta. (1/c)

A tudomány is tulajdonképpen egy nyílt forrású vállalkozás két alapvető folyamattal; a felfedezéssel és az igazolással. A tudományos felfedezések igazolásához azokat reprodukálni kell, melyhez elengedhetetlenül szükséges a forrás, tehát az elmélet, a kísérleti feltételek és az eredmény megléte. A tudományos kutatás nemritkán zárt körülmények közt zajlik, de a végeredményt a közjó érdekében publikálni kell, így más tudósok folytathatják a munkát ott, ahol az őket megelőzők elakadtak. Végül valami olyan születik meg, amely amúgy sohasem jöhetett volna létre. (1/a)

Képzeljük el egy pillanatra, mi történt volna, ha Isaac Newton nem osztja meg tudását másokkal, hanem üzleti célokra használja fel azt, s a harmincéves háború után szerződést köt a tüzérséggel, mondván: „Nem árulom el, hogy honnan tudok a parabolapályáról, de bekalibrálom a fegyvereiteket jó pénzért”. Maga az ötlet is abszurd! Ha a tudósok ilyen hozzáállást tanúsítottak volna a tudományhoz, akkor egyáltalán semmilyen fejlődés nem következett volna be. (1/a)

Ahol a tudósok felfedezésről beszélnek, ott a programozók létrehoznak valamit, s a számítástudományban az elméletek úgy igazolódnak, hogy a programot tesztelik és a hibáit kijavítják. Az informatikai iparban a számítástechnika mint tudomány játssza a főszerepet. A számítástechnika tudósainak leghatékonyabb eszköze a rendelkezésre álló tudás megosztására, az általuk fejlesztett programok forráskódjának közzététele. Ha a kutatás kikerül az akadémiai szférából a magánszférába, az hasonló negatív következményekkel jár mind a „hagyományos”, mind a számítástudományban. Gondoljunk bele, hogy egy gyógyszereket forgalmazó cégnek melyik kutatás támogatása áll érdekében: a terápián vagy a csak gyógyszeres kezelésen alapuló… (1/a)

Stallman tehát egy morális dilemmával szembesült. Vagy beáll a többi programozó közé zárt forrású programokat fejleszteni – ezzel könnyen sok pénzt keres -, vagy a nehezebb, de lelkiismerete számára járhatóbb utat választja. Mikor egy Xerox-nyomtató programját szerette volna kiegészíteni azzal, hogy a felhasználók értesüljenek a papír kifogyása vagy megakadása felől, azt nem tehette meg a program forrásának zártsága miatt. Ekkor határozta el, hogy életét a szoftverek szabadságának szenteli azzal a céllal, hogy mások ne ütközhessenek hasonló korlátokba. Négy feltételt állított, melyeknek meg kell felelni ahhoz, hogy egy program a szabadszoftver kategóriájába essen: (1/c) 1. A program bármilyen céllal történő futtatásának szabadsága. 2. A programműködés tanulmányozásának és saját igényekhez történő igazításának szabadsága (a forráskód szabadsága). 3. Másolatok terjesztésének szabadsága akár díjmentesen, akár meghatározott összeg fejében. 4. A módosított változat terjesztésének szabadsága.

Úgy döntött, egy új operációs rendszer és a hozzá kapcsolódó programok megírásával lehet legjobban hasznára a közösségnek. Annak érdekében, hogy a meglévő rendszerekről könnyű átállási lehetőség biztosítson, Unix-alapokon dolgozott. A készülő mű régi hackerhagyomány alapján a GNU (GNU is Not Unix) nevet kapta, mely egy önmagára hivatkozó, úgynevezett rekurzív rövidítés. A programok szabadságának védelmében olyan licencszerződést írt, amely biztosítja a felsorolt jogokat és megakadályozza azok elidegeníthetőségét. A GPL (General Public License) vagy más néven copyleft a jogok mellett megakadályozta az önkényes korlátok felállítását, tehát egy szabadszoftver nem alakítható zárt programmá, valamint biztosítja, hogy egy zárt és egy GPL-es program kombinációjaként keletkező nagyobb egész, mintegy megfertőzve azt, szintén GPL-es szabad programmá váljék. (1/c) A GPL ezen virulens, kötött mivolta akadályozza meg azt is, hogy a fejlesztett programok szétforgácsolódjanak és inkompatibilis, egymással összeférhetetlen változatokra szakadjanak szét. 1984 elején Stallman felmondott az MIT-nél, azonban továbbra is megkapta a gépek használatának jogát. Így hozzáfoghatott, hogy a semmiből felépítsen egy új, működő rendszert. Sok tízezer sor begépelése után ínhüvelybetegséget kapott, de a hallgatóknak diktálva, folytatni tudta a munkát. Mikor ez sem bizonyult elég hatékonynak, akkor létrehozta a Szabadszoftver Alapítványt (Free Software Foundation), amely adományokból és a szabadszoftverek eladásából tartotta fenn magát. (1/c) A programok szabad terjeszthetősége ellenére akadtak, akik a nyomtatott dokumentáció, könnyű beszerezhetőség vagy tiszteletadás okán kifizették a megszabott árat.

Stallman nem a meglévő licencek áthágására szólított fel, nem a szoftver üzleti oldala ellen lépett fel, hanem olyan programok írására buzdított, amelyek biztosítják a felhasználók alapvető jogait. Munkássága nyomán ma már sokezres a példáját követők által kezdeményezett szabadszoftverek száma. Hatalmas érdemeit számos díjjal honorálták, köztük talán a legnagyobb elismerésként a Svéd Királyi Műszaki Intézet 1996-ban díszdoktorává avatta. (1)

Csaknem egy évtizedes munka után szinte minden alkotóelem adva volt egy teljes értékű szabad operációs rendszerhez, egyetlen kivétellel; a rendszer központi részét képező és egyben legbonyolultabb program, a rendszermag, az úgynevezett kernel még nem készült el. Belátható időn belül nem is volt kilátás arra, hogy az alapítvány programozói befejezik a még embrionális állapotban lévő rendszermagjukat. Annyi év munkája után csak a kívánt hatás töredékét érhették volna el. Azonban Steven Levy, aki Hackerek című népszerű könyvében (3) Richard Stallmant az utolsó igaz hackernek nevezte, szerencsére nagyot tévedett.

A szerző informatikus

(folytatjuk)