Hlavní navigace

Způsob vývoje operačního systému FreeBSD

Roman Divácký 8. 7. 2004

Operační systém FreeBSD je přímým pokračovatelem původního UNIXu. Je to volně šiřitelný OS, k němuž jsou k dispozici zdrojové kódy (free software? open-source? pořád si to pletu ;)). To zní podobně jako například u Linuxu (který je rovněž volně šiřitelný a zdrojové kódy jsou též k dispozici), nicméně tyto dva OS se nesmírně liší ve způsobu, jakým je systém vyvíjen.

FreeBSD je ucelený systém, kde jeden tým vyvíjí jak jádro, tak knihovnu libc a vlastně celý systém včetně různých utilitek atd. Systém jako takový je vyvíjen za pomoci systému na správu verzí CVS (více viz paskyho články tady na ROOTu). Tento systém je velmi starý a trpí mnohými neduhy, nicméně je nutno uznat, že je pořád výrazně lepší než ono příslovečné „nic“. Existují čtyři CVS úložiště – systém, porty, dokumentace a projekty. Celkem má do těchto úložišť přístup odhadem asi 300 vývojářů (srovnej s Linuxem, kde do bitkeeper repa může Linus, jsem-li obeznámen se situací). Jelikož je CVS doopravdy kapku obstarožní a např. větvení je v něm dost pomalé, je k dispozici ještě Perforce repository, kde probíhá ten nejaktuálnější vývoj (momentálně např. Watsonova netperf-branch). Perforce je komerční a FreeBSD ma zaplacenu licenci pro každého commitera. Ovšem p4 je trošku neoficiální a vše důležité z něj se commituje do CVS.

Samotný vývoj na úrovni CVS se dá rozdělit do dvou hlavních větví: CURRENT (. v CVS) a STABLE (ta se časem mění). Z těchto větví se časem oddělují další větve (RELENG4_10 atd.), popř. se tagují (co se pak hodí na CDčko – RELENG4_10_RE­LEASE např.). Veškeré commity do větví RELENG_X_Y se (až do nedávna) týkaly pouze oprav bezpečnostních chyb. Číslování verzí FreeBSD funguje tak, že hlavní číslo určuje major revizi. Tyto mezi sebou nemusí být nutně kompatibilní (ovšem existují compatXx zajišťující kompatibilitu pro veškeré předchozí verze, platí tedy, a je to jedna z ctností FreeBSD, že je možno spustit soft přeložený na libovolně starém FreeBSD), dále následuje minor číslo. Verze FreeBSD se stejným major číslem, ale různým minor, se liší v podstatě jen opravami chyb (a to jak ovlivňujících stabilitu, tak bezpečnost), popř. v nových driverech a minoritních updatech dalších částí systému (sendmailu třeba). Poté může následovat ještě třetí číslo (5.2.1), které značí, že byl nalezen závažný problém, který byl opraven, ale jiné změny nejsou. Momentálně jsou v produkci dvě řady – 4.x a 5.x, čtyřková řada je tvořena ze STABLE CVS větve, pětková z CURRENT. Během tohoto léta by snad (už konečně) měla být uvedena nová verze STABLE (z dnešní CURRENT). Mělo by to nastat ve verzi 5.3. Můj soukromý (ničím nepodložený) odhad je, že by release proces mohl začít do měsíce, nejpozději do konce července.

Samotní commiteři se dělí do několika skupin. Jednak je zde „core team“, který tvoří hlavní jádro. To je demokraticky voleno a skládá se ze zkušených vývojářů, kteří prokázali své schopnosti i osobnostní kvality. S tímto týmem by měly být diskutovány veškeré velké změny (jako např. teď diskutované odstranění subsystému zajišťujícího kompatibilitu s SVr4 a SCO UNIXem). Poté je zde „re team“, který má na starosti release jednotlivých verzí. Každá další podoblast má svůj ústřední tým (dokumentace, porty). Dokonce je zde i silný důraz (byť nevím, zda je nějak formalizován) na stylistickou čistotu kódu (mezery, prázdné řádky atd.) reprezentovaný Brucem Evansem (ano, TEN Bruce Evans).

Relativně nedávno nastala zajímavá změna, kdy se RELENG_X_Y větve přestaly nazývat „Security branch“ a zacal se používat název „Errata branch“. Tato syntaktická změna měla i svůj sémantický rozměr. Předtím se veškeré změny v těchto větvích týkaly pouze bezpečnostních problémů. Nyní budou (jsou) commitovány i změny týkající se závažných problémů ovlivňujících stabilitu. První „Errata branch“ je FreeBSD 4.10 (RELENG4_10) a prvním commitem takovéto změny je oprava driveru „twe“.

Vývoj operačního systému FreeBSD je velmi dobře organizován a tato organizace mu umožňuje velmi rychlý a dynamický vývoj bez zbytečných kroků vedle (typická situace, kdy uděláme subsystém, řekněme VM, pak ho přepíšeme, pak znova, pak ještě jednou, poté třeba ještě, a aby toho nebylo málo, tak ještě jednou – nenarážím na žádný konkrétní OS :)) a dokonce zajišťuje i jakési vodítko ve smyslu časového harmonogramu vydávání nových verzí. Systém vývoje FreeBSD (resp. výhody, které z něj plynou) je jednou z věcí, kvůli kterým tento (i jinak velmi kvalitní) systém používám.

Našli jste v článku chybu?

16. 7. 2004 0:40

jard (neregistrovaný)

blackhole.sk nestaci ? :)) hlavne pis zaujimave clanky o freebsd a nerozputavaj flame, potom bude dobre. ja si o freebsd rad precitam

jard



12. 7. 2004 23:11

uživatel si přál zůstat v anonymitě

no jestli to neni spis formou ala debian. vsichni co do toho vidi a delaji, tak se pohadaji a neco z toho mozna vyvodi jako zaver?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?