A BSD bemutatása

Greg Lehey

Jogi közlemény

A FreeBSD a FreeBSD Foundation bejegyzett védjegye.

Az AMD, AMD Athlon, AMD Opteron, Athlon, Élan, Opteron és PCnet az Advanced Micro Devices, Inc. védjegyei.

Az Apple, AirPort, FireWire, Mac, Macintosh, Mac OS, Quicktime, és TrueType az Apple Computer, Inc., bejegyzett védjegyei az Egyesült Államokban és más országokban.

Az Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium és Xeon az Intel Corporation vagy leányvállalatainak védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és más országokban.

A Linux Linus Torvalds bejegyzett védjegye.

A Motif, OSF/1 és UNIX a The Open Group bejegyzett védjegyei, az IT DialTone és a The Open Group pedig védjegyei az Egyesült államokban és/vagy más országokban.

A SPARC, SPARC64, és UltraSPARC a SPARC International, Inc védjegyei az Egyesült államokban és más országokban. A SPARC International, Inc birtokolja az összes SPARC védjegyet és annak tagjai között teszi azok megfelelõ használatát elérhetõvé a licencelési megegyezések alapján.

A Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOffice, SunOS és VirtualBox a Sun Microsystems, Inc. védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és más országokban.

A UNIX a The Open Group bejegyzett védjegye az Egyesült Államokban és más országokban.

Az XFree86 az XFree86 Project, Inc. védjegye.

A gyártók és terjesztõk által használt megnevezések közül sok védjegy jogot követel. Ahol ilyen megnevezés tûnik fel ebben a dokumentumban, és a FreeBSD Projektnek tudomása volt a védjegyrõl, a megnevezést a “™” vagy a “®” szimbólum követi.

Kivonat

A nyílt forrású világban a "Linux®" szó majdnem az "operációs rendszer" szinonimájává vált, pedig nem ez az egyetlen nyílt forrású UNIX®-szerû operációs rendszer. Az Internet Operating System Counter szerint 1999 áprilisában a világ hálózatra kapcsolt számítógépeinek 31,3%-a Linux®ot futtat. 14,6% használ BSD UNIX®-ot. A világ legnagyobb webes szolgáltatásai közül néhány, mint például a Yahoo! is BSD-t használ. A világ legforgalmasabb FTP szervere 1999-ben (már halott), az ftp.cdrom.com, BSD-t használt a napi 1,4 TB adatforgalom biztosításához. Ez egyértelmûen nem egy szûk piaci réteg: a BSD egy jól megõrzött titok.

Tehát mi is a titok? Miért nem ismert jobban a BSD? Ez a dokumentum többek között ezt a kérdést hivatott megvizsgálni.

A dokumentumban a BSD és Linux® közötti különbségeket így olvashatja.

Fordította: `Gábor Kövesdán[gabor@FreeBSD.org]`


1. Mi az a BSD?

A BSD "Berkeley Software Distribution" rövidítése, amely annak a disztribúciónak a neve, amit a berkeley-i egyetemen fejlesztettek ki Californiában az AT&T UNIX® operációs rendszerének a kiterjesztéseként. Számos nyílt forású operációs rendszer épül a 4.4BSD-Lite néven ismertté vált kiadásra. Ráadásul tartalmaznak több csomagot más nyílt forrású projektekbõl, különösen a GNU projektbõl. A teljes operációs rendszer a következõket tartalmazza:

  • A BSD kernel, amely a processzütemezést, illetve a memóriakezelést végzi, kezeli a szimmetrikus többprocesszoros rendszereket (SMP), az eszközmeghajtókat, stb.

    A Linux® kernellel ellentétben, BSD kernelbõl több van, különbözõ adottságokkal.

  • A C könyvtár, a rendszer alapvetõ API-ja.

    A BSD C könyvtár a Berkeley kódon alapszik, nem a GNU projekten.

  • Segédprogramok, mint shellek, fájlkezelõ eszközök, fordítók és linkerek.

    Néhány segédprogram a GNU projektbõl származik, mások nem.

  • Az X Window rendszer, amely a grafikus megjelenítést kezeli.

    Az X Window rendszert, amelyet a legtöbb BSD rendszer használ, két különbözõ projekt fejleszti, az projekt és az X.Org projekt. A Linux® is ezeket használja. A BSD általában nem jelöl ki egy "grafikus felületet", mint például a GNOME, vagy KDE, de ennek ellenére ezek is elérhetõek.

  • Sok egyéb program és segédeszköz.

2. Micsoda? Egy igazi UNIX®?

A BSD operációs rendszerek nem klónok, hanem az AT&T’s Research UNIX® operációs rendszer nyílt forráskódú leszármazottai, amely a modern UNIX® System V õse. Talán meglepõnek találja, hogy hogyan lehetséges ez, amikor az AT&T soha nem tette nyílt forrásúvá a kódját?

Igaz, hogy az AT&T UNIX® nem nyílt forrású és jogi szempontból a BSD határozottan nem UNIX®, de az AT&T átvett kódot más projektekbõl is, különösen a kaliforniai Berkeley egyetemen mûködõ Computer Sciences Research Group (CSRG)-tól. 1976-tól a CSRG szalagokon kiadta a szoftverét, amelynek neve Berkeley Software Distribution, avagy BSD volt.

A BSD kezdeti kiadásai leginkább felhasználói programokból álltak, de a helyzet drámaian megváltozott, amint a CSRG szerzõdött az Advanced Research Projects Agency-vel (DARPA) a hálózataik ARPANET-re történõ aktualizálásával kapcsolatban. Az új protokollok, mint Internet Protokollok voltak ismertek, késõbb mint TCP/IP, a protokollcsalád két legfontosabb protokollja után. A legelsõ szélesebb körben használt implementáció a 4.2BSD része volt, 1982-ben.

Az 1980-as években számos új munkaállomásokkal foglalkozó cég tûnt fel. Sokuk a UNIX® licencelését részesítette elõnyben egy saját operációs rendszer fejlesztésével szemben. Különösen a Sun Microsystems licencelte a UNIX®-ot és megvalósította a 4.2BSD egy új verzióját, amelyet SunOS™-nak nevezett. Amikor az AT&T jogosulttá vált arra, hogy maguk árusítsák a UNIX®-ot kereskedelmi forgalomban, a valamelyest mérföldkõnek számító System III rendszerüket hamarosan a System V követte. A System V kódja nem tartalmazott hálózatkezelést, így minden implementációjukhoz a BSD-bõl vettek át szoftvereket, ideértve a TCP/IP szoftvert és egyéb más programokat is, mint például a csh shell és a vi editor. Ezek az eszközök kollektívan a Berkeley Extensions (berkeley-i kiegészítések) néven váltak ismertté.

A BSD szalagok az AT&T tulajdonában lévõ kódot is tartalmaztak, így használatuk UNIX® source licencet igényelt. 1990-re a CSRG kifogyott a támogatásokból, így be kellett szüntetniük a munkát. A csoport néhány tagja úgy döntött, hogy kiadja a BSD kódját, amely nyílt forráskódú volt az AT&T kód nélkül. Ez végül a Networking Tape 2 kiadással valósult meg, amely általában mint Net/2 ismert. A Net/2 nem volt komplett operációs rendszer, a kernel kódjának kb. 20%-a hiányzott. A CSRG tagok egyike, William F. Jolitz megírta a hiányzó kódrészeket és 1992 elején kiadta a 386BSD rendszert. Ezzel egyidõben a volt CSRG tagok egy másik csoportja létrehozott egy kereskedelmi céget Berkeley Software Design Inc. néven és kiadtak egy béta verziójú operációs rendszert, a BSD/386-ot, amely ugyanarra a kódra épült. Az operációs rendszer neve késõbb BSD/OS-re változott.

A 386BSD soha nem vált stabil rendszerré. Ehelyett két másik projekt nõtt ki belõle 1993-ban: a NetBSD és a FreeBSD. A két projekt akkor vált szét, amikor a 386BSD fejlõdését várták: a NetBSD az év elején startolt, a FreeBSD elsõ kiadása pedig csak az év végére készült el. Eközben a kód eléggé más irányba fejlõdött ahhoz, hogy könnyen egyesíhessék azt. Ezen kívül a projektek küönbözõ célokat tûztek ki, ahogyan majd lentebb látni fogjuk. 1996-ban az OpenBSD kivált a NetBSD-bõl, 2003-ban pedig a DragonFlyBSD a FreeBSD-bõl.

3. Miért nem ismert jobban a BSD?

Számos ok miatt, a BSD relatíve ismeretlen:

  1. A BSD fejlesztõit gyakran jobban érdekli, hogy a kódot javítgassák, minthogy marketinget szervezzenek köré.

  2. A Linux® ismertsége a projekten kívüli okoknak köszönhetõ, mint a sajtó vagy a cégek, amelyek linuxos szolgáltatásokat kínálnak. Ezidáig a nyílt forrású BSD-k nem rendelkeznek ilyen kiváltságokkal.

  3. A BSD fejlesztõi gyakran több tapasztalattal rendelkeznek, mint a Linux® fejlesztõi, így kevésbé érdekeltek abban, hogy a rendszert könnyen használhatóvá tegyék. Az új felhasználók általában kényelmesebbnek találják a Linux®ot.

  4. 1992-ben az AT&T beperelte a BSDI-t, a BSD/386 terjesztõjét azzal az indokkal, hogy a termék az AT&T tulajdonában lévõ kódrészleteket tartalmaz. A bíróság 1994-ben lezárta az ügyet, de a per szelleme továbbra is kísérti az embereket. Mostanában, 2000 márciusában egy webes cikk is azt állította, hogy a bírósági ügy "nemrég fejezõdött be".

    A név volt az egyik kérdés, amit a per tisztázott: az 1980-as években a BSD mint "BSD UNIX®" volt ismert. Az AT&T birtokolta kódok utolsó nyomainak eltávolításával a BSD elvesztette a UNIX® névhez való jogát. Ennek eredményeképp olyan hivatkozások olvashatók a könyvcímekben, mint "4.3BSD UNIX® operációs rendszer" és "4.4BSD operációs rendszer".

  5. Egyes megfigyelések szerint a BSD projektek szétdarabolódtak és ellenségesek egymással. A Wall Street Journal a BSD projektek "balkánizációjáról" beszél. A perhez hasonlóan, ez is nagyrészt õsi történetekre épül.

4. A BSD és a Linux® összehasonlítása

Tehát valójában mi is a különbség mondjuk a Debian Linux® és a FreeBSD közt? Az átlag felhasználó számára a különbség meglepõen csekély: mindkettõ UNIX®-szerû operációs rendszer. Mindkettõt non-profit projektek fejlesztik. (Természetesen ez nem igaz sok más Linux® disztribúcióra.) A következõ fejezetben a BSD és a Linux® 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®é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® 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® is haszontalan alkalmazások nélkül. A BSD alatt használt alkalmazások gyakran azonosak a Linux®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® 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® 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® 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® 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 i386™ alapú rendszereket ("PC-ket"), az AMD 64-bites processzorait, az UltraSPARC® 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® 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®, amelyek azonban nem nyílt forrásúak: a BSD/OS és az Apple Mac OS® 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® X az Apple Computer Inc. operációs rendszerének legújabb verziója a Macintosh® 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® 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® 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®hoz, ezért a BSD fejlesztõi készítettek egy Linux® kompatibilitási csomagot, amellyel Linux® programok futtathatók BSD rendszeren. A csomag egyaránt tartalmaz kernel módosításokat a Linux® 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® alkalmazások és a natív Linux® környezetben futó Linux® 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® 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®ot?

Mit jelent mindez a gyakorlatban? Kinek való a BSD és kinek a Linux®?

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®. 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® 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® programot képes futtatni, amíg a Linux® nem képes BSD programokat futtatni. Ezenkívül sok BSD implementáció más UNIX®-szerû operációs rendszerek programjait is képes futtatni, így a BSD rendszerekre könnyebb migrálni más rendszereket, mint a Linux®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.