1.3. A FreeBSD Projektről

A most következő rész egy-két háttérinformációt tár fel a Projektről, többek között a történetét, céljait és a benne alkalmazott fejlesztési modellt.

1.3.1. A FreeBSD rövid története

Írta: Jordan Hubbard.

A FreeBSD Projekt valamikor 1993 kezdetéről eredeztethető, és részben a “Nem hivatalos 386BSD Patchkit”-ből nőtt ki, a patchkit 3 legutolsó koordinátorának, Nate Williamsnek, Rod Grimesnak és nekem köszönhetően.

Eredeti célunk a 386BSD köztes állapotainak rögzítése lett volna, amitől olyan problémák megoldását reméltük, melyeket a patchkitek gyártása önmagában egyszerűen nem tudott megoldani. Néhányan még talán emlékeznek is a Projekt kezdeti munkaneveire: “386BSD 0.5” vagy “386BSD Interim”, melyek pontosan erre a tényre hivatkoztak.

A 386BSD eredetileg Bill Jolitz operációs rendszere volt, amely ennél a pontnál már közel egy éve senki sem tartott karban. Mivel a hozzá tartozó patchkit pedig napról napra duzzadt, egyre kényelmetlenebbé vált a karbantartása. Ezért egyhangúan úgy döntöttünk, segítünk Billnek azzal, hogy időnként létrehozunk egy “letisztított” változatot. Ez a próbálkozásunk csúnyán kudarcba fulladt, amikor Bill Jolitz hirtelen meggondolta magát és visszalépett a Projekt támogatásától. Semmilyen egyértelmű útmutatást nem adott arra, hogy mit csináljunk helyette.

Nem tartott sokáig eldöntenünk, hogy ez a cél továbbra is megéri a fáradtságot, még Bill segítsége nélkül is, ezért felvettük a “FreeBSD” nevet, melyet David Greenmannek köszönhetünk. Kezdeti feladatainkat a rendszer akkori felhasználóival tartott egyeztetések után állítottuk fel. Miután teljesen tisztán láthatóvá vált, hogy a Projekt a megvalósulás útján van, felvettem a kapcsolatot a Walnut Creek-kel, terjesztési mód után nézve azok számára, akik nem tudtak akkoriban könnyedén hozzáférni az internethez. A Walnut Creek nem csak támogatta a FreeBSD CD-n történő terjesztését, hanem még egy számítógépet és egy gyors internetkapcsolatot is a Projekt rendelkezésére bocsátott. A Walnut Creek szinte példátlan mértékű, egy akkoriban teljesen ismeretlen projektbe vetett hite nélkül nagyon nehezen lenne elképzelhető, hogy a FreeBSD olyan messzire és olyan gyorsan jutott volna el, ahol ma tart.

Az első CD-lemezen (és széles körben az interneten is megjelenő) változat a FreeBSD 1.0 volt, amely 1993 decemberében jelent meg. A Berkeley-ről származó 4.3BSD-Lite (“Net/2”) szalagokon található források alapján készült, kiegészítve a 386BSD-ből és a Szabad Szoftver Alapítványtól (Free Software Foundation, FSF) származó komponensekkel. Első kiadásként igen méltányos sikert könyvelhetett el, melyet a még inkább sikeres FreeBSD 1.1-gyel folytattunk 1994 májusában.

Nagyjából ekkortájt néhány váratlan sötét felhő bukkant fel az égbolton, ahogy a Novell és a Berkeley hosszantartó pereskedése lezárult a Berkeley Net/2 szalagjainak jogi formáját illetően. Ennek eredményeképpen a Berkeley elfogadta, hogy a Net/2 nagy része “jelzáloggal terhelt” és a Novell tulajdona, aki pedig valamivel korábban az AT&T-től szerezte. Ezért cserébe a Berkeley megkapta a Novell “áldását” a 4.4BSD-Lite kiadásra, és amikor az véglesen kijön, megszűnik a rajta levő jelzálog. Emiatt az összes Net/2 felhasználónak erősen javasolt volt váltani. Ez érintette magát a FreeBSD-t is, és így a Projekt 1994 júliusáig kapott határidőt, hogy leállítsa a Net/2 alapú termékeinek szállítását. A megegyezés értelmében a Projekt kiadhatott még egy utolsó kiadást a határidő előtt, amely végül a FreeBSD 1.1.5.1 lett.

A FreeBSD-nek ekkor szembesülnie kellett azzal a nehéz feladattal, hogy lényegében újra fel kellett találnia magát, a teljesen új és meglehetősen hiányos 4.4BSD-Lite bitjeitől elindulva. A “Lite” (egyszerűsített) kiadások abban az értelemben számítottak egyszerűbbnek, hogy a Berkeley kutatói (a különböző jogi követelések miatt) eltávolították a ténylegesen beindítható rendszerhez szükséges programrészek nagyobb részét, ill. a 4.4-es verzió Intel processzorokra készített portja nagyon is befejezetlen volt. A Projektnek egészen 1994 novemberéig tartott, hogy megtegye ezt a lépést, ugyanis ekkor jelent meg a FreeBSD 2.0 az interneten és (december vége felé) CD-n. Annak ellenére, hogy még némileg érdes maradt bizonyos helyeken, ez a kiadás jelentős sikereket ért el. Ezt követte 1995 júniusában a sokkalta stabilabb és könnyebben telepíthető FreeBSD 2.0.5.

A FreeBSD 2.1.5-öt 1996 augusztusában adtuk ki, mely akkora népszerűségnek örvendett az internet-szolgáltatók és kereskedelmi közösségek körében, hogy a 2.1-STABLE elágazásból egy újabb kiadást készítettünk. Ez volt a FreeBSD 2.1.7.1, amely 1997 februárjában jelent meg és ezzel együtt a 2.1-STABLE fejlesztését is zárta. Most már csak karbantartást végzünk rajta, és csak a biztonsági és egyéb kritikus hibajavítások kerülnek bele (RELENG_2_1_0).

A FreeBSD 2.2 fejlesztése 1996 novemberében ágazott le az akkori fejlesztői (“-CURRENT”) ágból, mint a RELENG_2_2-es ág. Ebből az első teljes kiadás (2.2.1) 1997 áprilisában jelent meg. A 2.2-es ág mentén további kiadások 1997 nyarán és őszén készültek, melyek közül az utolsó (2.2.8) 1998 novemberében jelent meg. Az első hivatalos 3.0-ás kiadás 1998 októberében jött ki, ami egyúttal a 2.2-es ág befejezésének kezdetét jelentette.

A fejlesztési fa 1999. január 20-án került ismét elágaztatásra, melynek eredménye a 4.0-CURRENT és 3.X-STABLE ágak lettek. A 3.X-STABLE ágban a 3.1 1999. február 15-én, a 3.2 1999. május 15-én, a 3.3 1999. szeptember 16-án, a 3.4 1999. december 20-án és a 3.5 2000. június 24-én jelent meg, melyet pár nappal később egy kisebb alverzió, a 3.5.1 követett, a Kerberosra vonatkozó friss biztonsági javításokkal. Ez lett egyben a 3.X ág utolsó kiadása.

Egy másik fontos elágaztatás 2000. március 13-án történt, mellyel életre kelt a 4.X-STABLE ág. Ebből aztán számos kiadás született: a 4.0-RELEASE 2000 márciusában mutatkozott be, az utolsó 4.11-RELEASE pedig 2005 januárjában látott napvilágot.

A várva várt 5.0-RELEASE 2003. január 19-én került bejelentésre. Közel háromévnyi munka eredményeképpen ez a kiadás indította meg a FreeBSD-t a többprocesszoros rendszerek és az alkalmazások szálkezelésének fejlettebb támogatásának útján, valamint az UltraSPARC® és ia64 platformok támogatása is itt jelent meg először. Ezt a kiadást az 5.1 követte 2003 júniusában. A hozzá tartozó -CURRENT ágból az utolsó kiadás az 5.2.1-RELEASE volt, amely 2004 februárjában mutatkozott be.

A 2004 augusztusában, a RELENG_5 ág létrehozását a 5.3-RELEASE követte, és egyben a 5-STABLE ág kezdetét is jelezte. A legújabb 5.5-RELEASE 2006 májusában jött ki. A RELENG_5 ágból már nem fog készülni több kiadás.

A fejlesztési fa ezután 2005 júliusában ágazott el ismét, ezúttal a RELENG_6 ágnak adott életet. A 6.0-RELEASE az 6.X ág első kiadásaként 2005 novemberében jelent meg. A legújabb 6.4-RELEASE 2008 november hónapjában jelentkezett. A RELENG_6 ágból már nem készülnek további kiadások.

A RELENG_7 ág 2007 októberében jött létre. Ebből az első kiadás 2008 februárjában a 7.0-RELEASE volt. A legfrissebb 7.3-RELEASE kiadás 2010 március hónapban készült el. A RELENG_7 ágból további kiadások is várhatóak.

A fejlesztési fából 2009 augusztusában ismét levált egy ág, amely ezúttal a RELENG_8 volt. A 8.0-RELEASE, a 8.X ág első kiadása 2009 novemberében jelent meg. A legfrissebb 8.1-RELEASE 2010 július hónapban jött ki. A RELENG_8 ágból várhatóak további kiadások.

Jelen pillanatban a hosszabb távú fejlesztések a 9.X-CURRENT (törzs) ágban kapnak helyet, és a 9.X-ből készült időközönkénti pillanatkiadások folyamatosan elérhetőek CD-n (és természetesen interneten keresztül is) a pillanatkiadásokat tároló szerverről.

1.3.2. A FreeBSD Projekt céljai

Írta: Jordan Hubbard.

A FreeBSD Projekt célja, hogy olyan szoftvereket kínáljon, amelyek tetszőlegesen, bármilyen célra felhasználhatóak, mindenféle megkötések nélkül. Sokunk jelentős energiát fektet a programokba (és a Projektbe) és minden bizonnyal egyikünk sem utasítana vissza semmilyen anyagi ellenszolgáltatást se most, se később, de egyáltalán nem ragaszkodunk hozzá. Hisszük, hogy elsődleges “küldetésünk” olyan programok és programrészletek készítése bárki számára és bármilyen célra, melyeket a lehető legszélesebb körben alkalmaznak és a lehető legtöbb hasznot hajtják. Ez, úgy érzem, az egyik legalapvetőbb célja a szabad szoftvereknek, és ez az, amit mi is lelkesen magunkénak vallunk.

A forrásfánkban található GNU General Public License (GPL) vagy a Library General Public License (LGPL) alá eső kódok hozzáférhetőségére ezzel szemben némileg több megszorítás vonatkozik, legalább is inkább ami a hozzáférhetőséget illeti. Mivel a GPL-es szoftverek kereskedelmi használata további bonyodalmakat vethet fel, ha lehetőségünk adódik rá, inkább a sokkal enyhébb BSD licenccel rendelkező szoftvereket választjuk.

1.3.3. A FreeBSD fejlesztési modellje

Írta: Satoshi Asami.

A FreeBSD fejlesztése egy nagyon nyitott és rugalmas folyamat, szó szerint a világ minden tájáról érkező többszáznyi segítségből építkezik, ahogy az látható is a résztvevőink listáján. A FreeBSD fejlesztési infrastruktúrája lehetővé teszi, hogy ez a többszáznyi résztvevő az interneten keresztül működjön együtt. Folyamatosan várjuk az új fejlesztőket és ötleteket, és mindazok, akik komolyabban érdeklődnek a Projekt iránt, egyszerűen felvehetik velünk a kapcsolatot a FreeBSD technical discussions levelezési lista címén. Egy FreeBSD announcements levelezési lista is elérhető azok számára, akik értesíteni kívánják a többi FreeBSD felhasználót munkájuk főbb eredményeiről.

A FreeBSD Projektről és annak fejlesztési modelljéről hasznos tudni az alábbiakat, függetlenül attól, hogy egyedül vagy másokkal szoros együttműködésben dolgozunk:

Az SVN és CVS repositoryk

Sok éven keresztül a FreeBSD központi forrásfáját CVS-en (Concurrent Versions System) keresztül tartották karban, amely egy, a FreeBSD-vel is érkező, szabadon elérhető verziókezelő rendszer. 2008 júniusában a Projekt az SVN (Subversion) használatára váltott. Ez a váltás szükségszerű volt, mivel a CVS által okozott technikai nehézségek gyorsan előjöttek a forrásfa és a hozzá tartozó metainformációk szapora növekedésével. Noha a központi repository most már SVN-alapú, a kliensoldali CVSup és csup alkalmazások továbbra is a korábbi infrastruktúrával dolgoznak, ahogy eddig is — az SVN respositoryban végzett változtatások ehhez automatikusan átkerülnek CVS alá. Jelen pillanatban egyedül csak a központi forrásfa használja ezt a megoldást, a dokumentáció, a weboldalak és a Portgyűjtemény forrásai továbbra is CVS alól üzemelnek. Az elsődleges CVS repository egy Santa Clara-i (California, USA) számítógépen található, ahonnan a világban található rengeteg tükörszerverre másolódik. Az SVN-fa, mely tartalmazza a -CURRENT és -STABLE ágakat, könnyen lemásolható a saját számítógépünkre is. Ennek részleteiről bővebben a A forrásfa szinkronizálása c. szakaszban olvashatunk.

A committerek listája

A hivatalos fejlesztők (committerek) azok az emberek, akik a CVS-fához írási joggal rendelkeznek, tehát módosítást hajthatnak végre a FreeBSD forrásaiban (a “committer” kifejezés a cvs(1) commit parancsából származik, amelyet arra használunk, hogy felvigyük a módosításainkat a CVS repository-ba). Javaslatainkat legjobban a send-pr(1) használatával tudjuk a committerek elé tárni. Ha valamiért ez mégsem működne, megpróbálhatjuk őket elérni közvetlenül a FreeBSD committer's mailing list címére küldött e-maillel.

A FreeBSD Core Team

Ha a FreeBSD Projekt egy vállalat lenne, akkor a FreeBSD Core Teamje (irányító csoportja) foglalná magában a vezetőséget. Ennek a csoportnak elsődleges feladata, hogy fenntartsa a Projekt egészének kondícióját és gondoskodjon róla, hogy a megfelelő irányba haladjon. Az irányító csoportnak ugyanígy feladata a megbízható és odaadó committerek tömörítése és az új tagok beszervezése, ha a csoportból kilépne valaki. A jelenlegi Core Team tagjait 2008 júliusában választották meg. A választásokat kétévente tartják.

Ebben a csoportban egyes tagoknak ezenfelül még bizonyos területekre felügyelniük is kell. Ez azt jelenti, hogy felelősek a rendszer valamelyik nagyobb részének az előírásoknak megfelelő működéséért. A FreeBSD fejlesztők teljes felsorolása és a hozzájuk tartozó területek megtalálhatóak A résztvevők listjában.

Megjegyzés: A Core Team legtöbb tagja pusztán önkéntesen vesz részt a FreeBSD fejlesztésében és nem származik a projektből semmilyen anyagi haszna. Emiatt a “részvétel” nem tévesztendő össze a “garantált támogatással”. A “vezetőségre” vonatkozó hasonlat nem teljesen pontos abban az értelemben, hogy ezek az emberek tulajdonképpen egy kívülálló szempontjából ésszerűtlen döntést hoztak azzal, hogy a FreeBSD támogatására áldozták az életüket!

Külső résztvevők

Végül, de nem utoljára, következzen a fejlesztők legnagyobb csoportja: ők maguk a felhasználók, akik rendszeres visszajelzéseket és hibajavításokat küldenek. A FreeBSD kevésbé központosított fejlesztésében elsősorban a FreeBSD technical discussions levelezési lista segítségével lehet felvenni a fonalat, ahol ezeket a témákat tárgyalják meg. A FreeBSD-hez kapcsolódó különféle levelezési listákról többet a C Függelékben olvashatunk.

A FreeBSD résztvevőinek listája hosszú és még most is növekszik; miért nem próbálunk mi is visszaadni valamit a FreeBSD-nek?

Nem csak programozással lehet segíteni a Projektet: a megoldandó feladatok listáját megtalálhatjuk a FreeBSD Projekt honlapján.

Röviden összefoglalva, a fejlesztési modellünk egymáshoz lazán kapcsolódó koncentrikus körökként szerveződik. Ez a központosított modell a FreeBSD-felhasználók kényelmét szolgálandó lett kialakítva, akik így könnyedén tudnak követni egyetlen központi kódbázist, azonban megvan a lehetőségük a részvételre is! Minden vágyunk egy olyan megbízható operációs rendszer kialakítása, amihez nagy mennyiségű könnyen telepíthető és használható alkalmazás tartozik — ez a modell ennek elérésére nagyon is megfelelő.

A haladás ütemének fenntartása érdekében mindössze csak annyit kérünk a leendő FreeBSD fejlesztőinktől, hogy legyenek legalább annyira elszántak, mint a jelenlegi tagjaink!

1.3.4. Az aktuális FreeBSD kiadások

A FreeBSD egy szabadon elérhető, teljes forráskóddal érkező 4.4BSD-Lite alapú kiadás Intel i386™, i486™, Pentium®, Pentium Pro, Celeron®, Pentium II, Pentium III, Pentium 4 (vagy azzal kompatibilis), Xeon™, DEC Alpha™ és Sun UltraSPARC alapú számítógépekre. Elsősorban a Berkeley Számítógépes rendszerek kutatócsoportjának szoftverein alapszik, számos javítással a NetBSD, OpenBSD, 386BSD és a Szabad Szoftver Alapítvány munkásságának köszönhetően.

A FreeBSD 2.0 1994 végi megjelenése óta a FreeBSD teljesítménye, megbízhatósága és tudása drasztikusan megnövekedett. A legnagyobb változtatás az újjáalakított, összevont VM/állomány puffer gyorsítótárral rendelkező virtuális memória alrendszer, amely nem csak a teljesítményt növeli, hanem csökkenti a FreeBSD memóriaigényét is, jobban elfogadhatóvá téve ezzel az 5 MB-os minimumot. A további fejlesztések között találjuk a teljes NIS szerver és kliens támogatást, az átviteli TCP támogatását, az igény szerint tárcsázó PPP-t, a beépített DHCP támogatást, a továbbfejlesztett SCSI alrendszert, az ISDN támogatást, az ATM, FDDI, Fast és Gigabit Ethernet (1000 Mbit) hálózati csatolók támogatását, a legfrissebb Adaptec gyártmányú vezérlők fejlesztett támogatását és a többezernyi hibajavítást.

Az alapeszközök mellé a FreeBSD felkínálja többezernyi ismert és keresett program portjaiból álló gyűjteményét. Ebben a pillanatban is már több, mint 20 000 port érhető el! A portok listája a HTTP (WWW) szerverektől, a játékokon, nyelveken és sok mindenen keresztül a szövegszerkesztőkig terjed. Az egész Portgyűjtemény közelítőleg 417 MB tárhelyet kíván, minden portot az eredeti forráshoz viszonyított “különbségként” tárol. Ennek következtében a portok frissítése sokkal könnyebb és nagyban csökkenti a korábbi, 1.0-ás Portgyűjteménynél kialakult tárigényeket. Egy port lefordításához egyszerűen csak be kell lépnünk a telepíteni kívánt program könyvtárába és ki kell adnunk a make install parancsot, a többit a rendszer elvégzi. Minden egyes telepítendő port teljes forrása dinamikusan vagy CD-ről vagy pedig FTP-n keresztül töltődik le, így csak a ténylegesen telepítendők lefordításához elegendő tárhelyre van szükség. Majdnem mindegyik port elérhető előre lefordított “csomag” formájában azok számára, akik nem kívánják lefordítani a portokat, és melyeket egy egyszerű parancs (pkg_add) segítségével telepíteni is tudják. A csomagokról és portokról a 4 fejezetben tudhatunk meg többet.

A FreeBSD telepítéséről és használatáról most már számos további nagyon hasznos dokumentumot találhatunk bármelyik FreeBSD-s számítógép /usr/share/doc könyvtárában. A helyileg telepített kézikönyveket bármilyen HTML-t megjeleníteni képes böngészővel el tudjuk olvasni az alábbi URL-eken:

Az aktuális (leginkább frissített) verziók megtekinthetőek a http://www.FreeBSD.org/ címen.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.