4. A BSD és a Linux(R) összehasonlítása

Tehát valójában mi is a különbség mondjuk a Debian Linux(R) és a FreeBSD közt? Az átlag felhasználó számára a különbség meglepően csekély: mindkettő UNIX(R)-szerű operációs rendszer. Mindkettőt non-profit projektek fejlesztik. (Természetesen ez nem igaz sok más Linux(R) disztribúcióra.) A következő fejezetben a BSD és a Linux(R) közötti különbségeket tekintjük át. A leírás leginkább a FreeBSD-re illik, amely a BSD telepítések kb. 80%-át teszi ki, de a NetBSD, OpenBSD és DragonflyBSD nem sokban különbözik tőle.

4.1. Kinek a birtokában van a BSD?

A BSD nem egy személy vagy egy vállalat tulajdona. Egy magasan képzett és elkötelezett közösség fejleszti és terjeszti világszerte. A BSD néhány összetevője különálló nyílt forrású projekt, amelyet más fejlesztők tartanak karban.

4.2. Hogyan fejlesztik és aktualizálják a BSD-t?

A BSD kerneleket a nyílt forrású fejlesztési modell szerint fejlesztik és tartják naprakészen. Mind a négy projekt fenntart egy publikusan elérheő forrásfát a Concurrent Versions System (CVS) verziókezelő rendszer segítségével, amely a projekt minden forrásfájlját tartalmazza a dokumentációval és egyéb fontos fájlokkal együtt. A CVS segítségével a felhasználók lekérhetik ("check out") a rendszer bármely óhajtott verzióját.

Világszerte sok fejlesztő járul hozzá a BSD fejlődéséhez. Három kategóriába soroljuk őket:

  • A contributor-ok ("külső munkatársak") kódot vagy dokumentációt írnak. Nincs jogosultságuk a forráskódban közvetlenül változtatásokat végrehajtani. Ahhoz, hogy a munkájuk bekerüjön a rendszerbe, egy hivatalos fejlesztőnek - committernek - kell azt átnéznie és a kódbázishoz adnia.

  • A Committerek azok a fejlesztők, akiknek írási jogosultságuk van a forráskódhoz. Ahhoz, hogy valaki committerré váljon, be kell bizonyítania, hogy megfelelő tudással rendelkezik azon a területen, amelyen dolgozik.

    A committer egyéni döntése, hogy él-e a felhatalmazásával, mielőtt változtatást hajt végre a forráskódon. Általában, egy tapasztalt committer végrehajthat olyan változtatásokat, amelyek nyilvánvalóan helyesek, anélkül, hogy ehhez más beleegyezését kérné. Példál egy dokumentáción dolgozó committer kijavíthat helyesírási, vagy nyelvtani hibákat, anélkül, hogy azt más megvizsgálná. Másrészt, azoktól a fejlesztőktől, akik messzemenő vagy összetett változtatásokon dolgoznak, elvárt, hogy átnézésre közzétegyék a kódot a tényleges változtatások előtt. Extrém esetekben a core team egy tagja, mint elöljáró tervező, elrendelheti a változtatások törlését a forráskódból, azon a folyamaton keresztül, amelynek neve backing out. Minden committer kap értesítést minden változásról, így nem lehet titokban változtatásokat eszközölni.

  • A Core team ("projektvezetők"). A FreeBSD és a NetBSD is rendelkezik egy core csapattal, amely a projektet menedzseli. A core csapatok a projekt előremenetele során alakultak ki, és a szerepük nem mindig pontosan meghatározott. Nem szükséges fejlesztőnek lenni ahhoz, hogy valaki a core csapat tagja legyen, habár ez a megszokott. A core csapat feladata egyik projektről a másikra változik, de általában több beleszólásuk van a projekt menetébe, mint a nem core tagoknak.

Ez a rendszer számos pontban eltér a Linux(R)étól:

  1. Nem egyetlen ember irányítja a rendszert. A gyakorlatban ez az eltérés túlértékelt, hiszen az elöljáró tervező kérheti a kód visszaállítását és még a Linux(R) projektben is több embernek van jogosultsága változtatni.

  2. Másrészt, van egy központi repository, azaz a teljes operációs rendszer forráskódja egy helyen érhető el, beleértve a régi verziókat is.

  3. A BSD projektek az egész "operációs rendszert" karbantartják, nemcsak a kernelt. Ez a megkülönböztetés csak részben hasznos: a BSD és a Linux(R) is haszontalan alkalmazások nélkül. A BSD alatt használt alkalmazások gyakran azonosak a Linux(R)on használtakkal.

  4. A központilag karbantartott CVS forrásfának köszönhetően a BSD fejlesztése áttekinthető, továbbá lehetőség van arra, hogy bármely verziót elérjünk a kiadási verzió vagy a dátum alapján. A CVS segítségével növekményesen is frissíthetjük rendszerünket: például a FreeBSD repositoryja kb. 100 alkalommal frissül naponta. Ezek közül a változások közül a legtöbb kicsi.

4.3. A BSD kiadások

A FreeBSD, NetBSD és OpenBSD háromféle "kiadáson" keresztül teszi elérhetővé a rendszert. Ahogyan a Linux(R) esetében is, a kiadások kapnak egy verziószámot, mint pl. 1.4.1 vagy 3.5. Továbbá, a verziószám rendelkezik egy utótaggal, amelyik a kiadás célját jelöli:

  1. A rendszer fejlesztői verziójának neve CURRENT. A FreeBSD egy számot rendel ehhez, pl. 5.0-CURRENT. A NetBSD egy kicsit más elnevezési konvenciót alkalmaz, egy egybetűs utótagot fűz a névhez, amely azt jelzi, hogy csak a belső interfészeket érinti a változás, ilyen pl. a NetBSD 1.4.3G. Az OpenBSD nem használ számokat ("OpenBSD-current"). Minden új fejlesztés először ebbe az ágba kerül bele.

  2. Meghatározott időnként, 2-4 alkalommal évente, a projekt kiad egy RELEASE (kiadás) verziót, amely elérhető CD-ROM-on és szabadon letölthető az FTP szerverekről, ilyen pl. az OpenBSD 2.6-RELEASE vagy a NetBSD 1.4-RELEASE. A RELEASE verzió végfelhasználók számára készül és ez a rendszer normális verziója. A NetBSD ezen kívül patch release kiadásokat is kínál egy harmadik számjeggyel, pl. NetBSD 1.4.2.

  3. Ahogy hibák bukkannak fel a RELEASE verzióban és javításra kerülnek, a javítások bekerülnek a CVS fába. Az így létrejövő verzió neve a FreeBSD-nél STABLE, de a NetBSD és az OpenBSD továbra is RELEASE néven hívja ezt a verziót. Kisebb új funkciók szintén bekerülhetnek ebbe az elágazásba, miután a CURRENT ágban már egy ideje stabilnak bizonyultak.

Ezzel ellentében a Linux(R) két különböző forrásfát tart fenn: a stabil- és a fejlesztői verziót. A stabil verzióknak egy páros minor számuk van, mint pl. 2.0, 2.2 vagy 2.4. A fejlesztői verziók minor száma páratlan, mint pl. 2.1, 2.3 vagy 2.5. Ezt a verziószámot minden esetben egy harmadik szám követi, ez adja meg a pontos verziót. Ezen kívül, minden terjesztő saját programokat és segédeszközöket mellékel, így a disztribúció neve is meghatározó. Minden disztribútor külön verziószámmal látja el a disztribúciót is, tehát egy teljes meghatározás valahogy így hangzana: "TurboLinux 6.0 2.2.14-es kernellel".

4.4. Milyen BSD verziók vannak?

A rengeteg Linux(R) disztribúcióval ellentétben csak négy jelentősebb nyílt forrású BSD van. Minden BSD projekt karbantartja a saját forrásfáját és saját kernelét. A gyakorlatban azonban kevesebb az eltérés a userland kódokban, mint a Linux(R) esetében.

Nehéz kategorizálni a projektek céljait, mert a különbségek nagyon szubjektívak. Alapvetően a következőek érvényesek:

  • A FreeBSD a nagy teljesítményt és a könnyű használhatóságot célozza meg, a webszolgáltatók kedvence. Számos platformon fut, ide értve az i386TM alapú rendszereket ("PC-ket"), az AMD 64-bites processzorait, az UltraSPARC(R) rendszereket, a Compaq Alpha rendszereit, illetve a NEC PC-98 specifikációján alapuló rendszereket. A FreeBSD Projekt jelentősen több felhasználóval rendelkezik, mint más projektek.

  • A NetBSD a lehető legnagyobb hordozhatóságra törekszik, ahogyan az idézet is mutatja: "of course it runs NetBSD". Elfut a palmtopokon és a nagy szervereken egyaránt, és a NASA is használja az űrkutatásai során. Különösen jó választás régi, nem Intel(R) alapú hardverhez.

  • Az OpenBSD a biztonságra és a kód egyszerűségére koncentrál: a nyílt forrású koncepciót kombinálják a szigorú ellenőrzésekkel, hogy így egy bizonyítottan korrekt rendszert hozzanak létre, megoldást kínálva ezzel a biztonságot megkövetelő szervezeteknek, mint például bankoknak, tőzsdéknek és amerikai kormányügyi szervezeteknek. Ahogyan a NetBSD, az OpenBSD is több platformon fut.

  • A DragonFlyBSD a nagy teljesítményt és a skálázhatóságot célozza meg az egyszerű UP rendszerektől kezdve a hatalmas, fürtözött rendszerekig. Számos hosszútávú technikai célja van, de a legfontosabb, hogy egy olyan SMP-képes infrastruktúrát hozzon létre, amely könnyen érthető és karbantartható, valamint könnyű rá fejleszteni.

Létezik még két másik BSD UNIX(R), amelyek azonban nem nyílt forrásúak: a BSD/OS és az Apple Mac OS(R) X:

  • A BSD/OS volt a legrégebbi leszármazottja a 4.4BSD-nek. Nem volt ugyan nyílt forrású, de viszonylag alacsony áron lehetett licencet vásárolni a forráskódhoz. Sok tekintetben hasonlított a FreeBSD-hez. Két évvel azután, hogy a Wind River Systems megvette a BSDi-t, a BSD/OS, mint önálló termék megszűnt létezni. Támogatás és a forráskód még mindig elérhető a Wind Rivernél, de az új fejlesztések már a VxWorks beágyazott operációs rendszerre irányulnak.

  • A Mac OS(R) X az Apple Computer Inc. operációs rendszerének legújabb verziója a Macintosh(R) termékvonalhoz. Ennek a rendszernek a BSD magja, a Darwin egy teljes értékű nyílt forrású operációs rendszerként érhető el x86 és PPC számítógépekhez. Az Aqua/Quartz grafikus rendszer és a Mac OS(R) X pár egyéb saját fejlesztése zárt forrású maradt. Számos Darwin fejlesztő egyben FreeBSD committer is, és fordítva.

4.5. Hogyan tér el a BSD licenc a GNU General Public licenctől?

A Linux(R) a GNU General Public Licenc (GPL) alatt érhető el, amely azért jött létre, hogy felszámolja a zárt forráskódú szoftverfejlesztést. Konkrétan, minden olyan munkának, amely GPL licenc alatt kiadott termékre épül, szintén nyílt forrásúnak kell lennie. Ezzel szemben a BSD licenc kevésbé korlátozó: tisztán bináris terjesztést is megenged. Ez különösen vonzó a beágyazott alkalmazások számára.

4.6. Mi mást kell még tudnom?

Mivel a BSD-hez kevesebb alkalmazás érhető el, mint a Linux(R)hoz, ezért a BSD fejlesztői készítettek egy Linux(R) kompatibilitási csomagot, amellyel Linux(R) programok futtathatók BSD rendszeren. A csomag egyaránt tartalmaz kernel módosításokat a Linux(R) rendszerhívások megfelelő végrehajtásához, és kompatibilitási fájlokat, mint például a C könyvtár. A BSD rendszeren futtatott Linux(R) alkalmazások és a natív Linux(R) környezetben futó Linux(R) alkalmazások között nincs észrevehető sebességkülönbség.

A BSD "mindent együtt" természetének köszönhetően a frissítések sokszor sokkal könnyebben kezelhetőek, mint a Linux(R) esetében. A BSD úgy kezeli a könyvtárak verzióit, hogy kompatibilitási modulokat bizosít a régebbi könyvtárakhoz, így több éves programok is probléma nélkül futtathatóak.

4.7. Melyiket használjam, a BSD-t, vagy a Linux(R)ot?

Mit jelent mindez a gyakorlatban? Kinek való a BSD és kinek a Linux(R)?

Ezt a kérdést nagyon nehéz megválaszoli. Pár irányelv:

  • "Ha nem romlott el, ne javítsd meg": Ha már egy olyan nyílt forrású operációs rendszert használ, amellyel elégedett, várhatóan nincs semmi nyomós oka, hogy váltson.

  • A BSD rendszerek, különösen a FreeBSD jelentősen nagyobb teljesítményt produkálhatnak, mint a Linux(R). Ez azonban nem mindenkire érvényes. Sok esetben kicsi a különbség, vagy egyáltalán nincs különbség a teljesítményben. Néhány esetben pedig a Linux(R) teljesít jobban a FreeBSD-nél.

  • Általában a BSD rendszerek nagyobb tiszteletnek örvendenek a megbízhatóság terén, amely leginkább a kiforrottabb kód eredménye.

  • A BSD projektek nagyobb tiszteletnek örvendenek a minőségi és átfogó dokumentációjukért. A különböző dokumentációs projektek célja, hogy jól karbantartott dokumentációt biztosítsanak sok nyelven és a rendszer minden területét tárgyalják.

  • A BSD licenc vonzóbb lehet, mint a GPL.

  • A BSD a legtöbb Linux(R) programot képes futtatni, amíg a Linux(R) nem képes BSD programokat futtatni. Ezenkívül sok BSD implementáció más UNIX(R)-szerű operációs rendszerek programjait is képes futtatni, így a BSD rendszerekre könnyebb migrálni más rendszereket, mint a Linux(R)ra.

4.8. Ki kínál terméktámogatást és tréninget a BSD-hez?

A BSDi / FreeBSD Mall, Inc. közel egy évtizede kínál terméktámogatási szerződéseket a FreeBSD-hez.

Ezen kívül minden projekt rendelkezik egy listával a konzultánsairól: FreeBSD, NetBSD, és OpenBSD.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.

Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.