Hlavní navigace

Budoucnost FreeBSD

Roman Divácký

Před několika dny vyšel takzvaný Status k projektu FreeBSD, je v něm zmiňováno několik zajímavých informací, které vám tímto v okomentované formě předkládám. FreeBSD prochází poměrně radikálními změnami, z nichž mnohé jsou velmi zajímavé.

Před několika dny vyšel takzvaný Status Report k projektu FreeBSD, je v něm zmiňováno několik zajímavých informací, které vám tímto v okomentované formě předkládám. FreeBSD prochází poměrně radikálními změnami, z nichž mnohé jsou velmi zajímavé.

Management projektu

Cesta od verze 4 k verzi 5 byla velmi dlouhá a trnitá, a proto bylo rozhodnuto, že se změní způsob vydávání FreeBSD. Dosud bylo FreeBSD uvolňováno dle principu „když jsou hotové featury, tak to stabilizujeme a uvolníme“, tento způsob se ukázal jako nevhodný. Uživatelé 4.x si vzpomenou na mnohaleté čekání na 5-STABLE, ta ne a ne přijít, a tak bylo mnoho uživatelů (kvůli novým driverům atp.) nuceno užívat testovací verze z řady 5. Bylo zřejmé, že je nutná změna. Ta přišla těsně po vydání 5.3R (která je počátkem stabilní řady 5). Uvolňování dalších verzí bude napříště probíhat dle pevného časového harmonogramu, a to tak, že minor verze budou vydávány každé čtyři měsíce a nové major verze každých 12 - 18 měsíců. Osobně na desktopu používam verzi 6-CURRENT, vidím tedy změny oproti 5-STABLE a těším se, že si těchto zlepšení už brzy užiju i na produkčních serverech. Ano, hodně změn se dá sloučit do 5-STABLE, ale ne všechny a obecně to ztěžuje práci. Jedinou obavu mám z toho, jak team FreeBSD vývojářů (kterých je přesně 214) zvládne větší množství souběžně podporovaných verzí. Dnes jsou tři, bývaly dvě. Nebudeme nuceni do častých upgradů major verzí? Ovšem vzhledem k tomu, že dnes jsou nově vydávány takzvané „Errata Branches“, kde se opravují nejen bezpečnostní, ale i další další chyby, je možné, že se tohle bude řešit přes „Extended support period“, které jsou updatovány nejméně 24 měsíců. Uvidíme. Teď se podíváme, jak vypadá časový plán uvolňování nových FreeBSD pro nejbližší budoucnost:

Leden 2005
FreeBSD 4.11R (možná už je venku) – poslední verze v řadě 4.x
Březen 2005
FreeBSD 5.4R – vzhledem k tomu, že 5.3R byla první široce používanou verzí z řady 5, je zde obrovské množství oprav, zrychlení atd.
Červen 2005
FreeBSD 5.5R – další z řady 5
Červen 2005
RELENG6 branch v CVS repository, která odstartuje stabilizaci vedoucí k uvolnění 6.0R
Srpen 2005
6.0R – první stabilní verze z řady 6, další budou následovat každé čtyři měsíce, 7.0R se očekává 18 měsíců poté

Další novinkou je změna distribuce. Chystá se oficiální podpora šíření přes síť bittorent (což by mohlo pomoci přetíženým ftp serverům). Revolučnější je ovšem plán vytvoření LiveCD, které bude současně i instalačním médiem, počítá se i se změnou instalátoru. Průkopníkem v tomto směru je projekt FreeSBIE, a proto, chcete-li vidět, jak to bude vypadat, si jej vyzkoušejte (je to skvělý rescue disk, mimochodem).

Technické cíle

Celým smyslem vytvoření řady 5 byla snaha o lepší podporu SMP strojů. Jako způsob lepší škálovatelnosti byl zvolen systém protekce dat pomocí mnoha mutexů, tedy stejně jako v Linuxu (mnozí s tímto přístupem nesouhlasí a z této rozepře mimojiné vznikl velmi zajímavý projekt DragonFly BSD. Projekt jemného zamykání byl nazván SMPng, v jeho rámci bylo zamknuto mnoho subsystémů, ovšem pracovalo se nejvíce na zamknutí síťování. Zde zazářil Robert Watson, který se svým projektem Netperf dodělal skoro celé zamykání TCP/IP stacku. Projekt Netperf pořád pokračuje, ovšem jeho cíle jsou z velké části splněny. Při inspekci síťového stacku se ovšem přišlo na spoustu nedokonalostí (FreeBSD má nejstarší TCP/IP stack na planetě, zde se TCP/IP zrodilo) a k odstranění těchto vad byl ustanoven projekt Dingo, který si klade za cíl vyčištění a zefektivnění síťového stacku. Práce se zdárně rozbíhají a už kolují patche na efektivnější tcp packet reassembly či nové wifi drivery. Rozhodně je v oblasti síťování (kde se FreeBSD i dnes řadí mezi absolutní špičku) na co se těšit. Jedná se o takové vychytávky jako například prefetching hlaviček packetů, přepsání ARP kódu a routování, zrychlení zamykání v UMA alokátoru (kde se alokují mbufy pro packety), transakční tcp verze 2 (vlastní vynález FreeBSD – připravuje se RFC) či již zmíněné nové reassemblování tcp packetů. Už teď (s novinkami v řadě 5, jako je netisr či fastforward) je FreeBSD velmi zajímavé a budoucnost vypadá ještě slibněji.

Jednou z oblastí, kde FreeBSD trošku zaostává, je správa dat. A proto byla vytyčena jako jedna z oblastí dalšího vývoje. Konkrétně se jedná o podporu journálování (ovšem pozor! ne kvuli konzistenci dat – tu ve FreeBSD zajišťuje systém SoftUpdates – ale kvůli zkrácení fsck při bootu), přepsání io scheduleru (existuje implementace anticipatory io scheduleru pro 4.7R, ale nikdy nebyla integrována), podporu clustered FS (podpora SAN řešení) či vyčištění CAM/SCSI kódu. Chystá se také pomalý přechod na gpt partitiony a rozšíření „easy yet powerfull“ g* utilit (graid3, gmirror atd.). Poul Henning-Kamp během svého ročního placeného angažmá při vývoji FreeBSD udělal mnoho positivních změn (vnode bypass, který nám závidí kdekdo ;)), jež velmi ulehčí další vývoj (aspoň tak to vidím já).

Osobně nevidím na správě dat ve FreeBSD nic špatného (máme GEOM, který nám poměrně čistě umožnuje velmi zajímavé věci – viz ggate), pouze mi chybí nějaký inteligentnější io scheduler.

Další technické cíle

Ve verzi 5 byl uveden nový scheduler – SCHED_ULE, jeho autor Jeff Roberson ovšem trošku kašlal na vývoj a vychytávání chyb, a tak se stalo, že v 5.3R je ULE v tak špatné kondici, že musel být zakázán. Ovšem Jeff se k vývoji vrátil a nyní můžu zodpovědně prohlásit, že ULE v 6-CURRENT funguje velmi dobře (momentálně mám hardlocky s oběma schedulery, takže ULE je v tom zjevně nevinně, problém s unkillable procesy řeším zrovna v této chvíli – když píšu tento článek ;)).

Vývoj pokračuje na všech frontách – dokumentace je soustavně vylepšována (chystá se mimochodem její automatické generování doxygenem), man stránky právě podstoupily facelift, dokonce i něco tak prehistorického jako msun knihovna podstoupila update (přibyly i386 optimized floated funkce). Nejnovější přírustek mezi FreeBSD-supported firewally – PF – se dočká updatu na verzi z OpenBSD 3.7, ovšem jen ve verzi 6 (na MFT5 by se muselo měnit moc kódu a ukecávat moc lidí).

PR a hype

V čem ovšem FreeBSD zaostává přímo katastrofálně, je oblast reklamy a hype. Nikde nevidíte šílence modlící se k BSD démonovi, vychází minimum článků o FreeBSD, ve Vatikánu není žádost o blahořečení FreeBSD vývojářů (LT ji tam má!). Ovšem nedávno se rozběhla poměrně zajímavá diskuse (a zjevně nejen u FreeBSD, viz nové logo NetBSD) ohledně visuální identity FreeBSD a vůbec propagace mezi uživateli (mimochodem, na EuroBSDConu byl paper zkoumající neprogramátorské způsoby pomocí FreeBSD oceněn velmi vysoko), konkrétně se probíral vždy problematický BSD démon, dále web stránka atd. Ovšem jedinou významnou změna v této oblasti je, jak se zdá, najímání (a placení) vývojářů na určitý úkol – viz nedávný grant Poula Henning-Kampa či budoucí (???) Andre Oppermana. Celkově se tak FreeBSD stává profesionálnější, a nemělo by se tedy stávat, že někdo něco přestane vyvíjet či to nedokončí (což je velká bolest všech opensource projektů). Positivum oproti přístupu Linuxu (OSDL) vidím v několika věcech – jednak to není pro dané vývojáře trvalé zaměstnání, takže občas vylezou ze své slonovinové věže, a tudíž by mohli tušit, jaké jsou reálné požadavky na FreeBSD, jednak mají veřejně a předem známý úkol, který mají splnit za dané finanční prostředky – což je transparentnější a snad i efektivnější než jim dát plat za jméno se slovy „…dělej si co chceš“.

Závěr

Budoucnost FreeBSD vypadá velmi slibně, a pokud dosud tento zajímavý OS neznáte, neváhejte a vyzkoušejte ho… stojí to za to.

Našli jste v článku chybu?