Hlavní navigace

FreeBSD 8 vylepšuje nejen síťování

24. 11. 2009
Doba čtení: 7 minut

Sdílet

Po více než roce a půl je zde nová verze operačního systému FreeBSD 8.0. Jako obvykle je zde mnoho lákavých novinek, které dále vylepšují tento systém. Hlavní novinky jsou v oblasti síťování, bezpečnosti, hardwarové podpory a výkonu. V dalším textu je popsaných několik novinek podrobněji.

Síťové změny

FreeBSD 8 přináší velké změny a vylepšení viditelné pro uživatele hlavně co se týče sítí. Zde jsou některé z nich popsané.

VIMAGE

Ve FreeBSD 7 a níž jsou implementované takzvané jaily, což je jakési vylepšení chrootu, částečně podobné zónám v solarisu. Proces v jednom jailu nemůže ovlivňovat procesy v jiných jailech a ani je vidět, ovšem tato izolace není dokonalá. Nastavení sítě je společné pro všechny jaily. Toto nyní opravuje projekt VIMAGE, který virtualizuje síťový stack podobně jako jaily správu procesů. Nyní je tedy možné mít různé nastavení pro různé jaily. Různé nastavení firewallu, routování atp. Samotné jaily byly též vylepšeny, viz níže.

Nový NFS server a klient

Stávající NFS server ve FreeBSD nepodporuje NFSv4 a tak Rick Macklem několik let pracoval na přepracovaném NFS serveru (a zároveň i klientu). Tento nový server konečně podporuje verzi 4 NFS. Podpora pro starší verze byla samozřejmě zachována. Současně přibyla podpora pro kernelové zamykání NFS souborů (autorem je Doug Rabson), které umožňuje spolehlivé zamykání souborů na NFS. Také je nyní možné používat NFSv4 ACL v celém systému.

Další síťová vylepšení

Byla implementovaná MESH wifi podora, ECMP (equal cost multipath routing), podpora pro více routovacích tabulek (FIB). Celý systém routování byl výrazně přepsán za účelem dosažení vyššího výkonu. BPF (Berkeley Packet Filter, používaný např. tcpdumpem) dostal zero-copy režim což ho výrazně zrychlilo. Správa ARP byla kompletně přepsána pro dosažení vyššího výkonu.

Vylepšení podpory hardwaru

USB 2.0

Hans Peter Selasky několik let udržoval alternativní USB stack pro FreeBSD, jelikož ten původní měl mnoho problémů (slabší výkon, nestabilita). Tento nový USB stack byl integrován jako oficiální FreeBSD stack a tudíž si uživatelé užijí lepší rychlosti, stability a nových vlastností.

CAM ata driver (AHCI)

Obsluha ata zařízení ve FreeBSD již několik let spí sladkým spánkem, který jen občas přeruší drobný commit přidávající podporu pro nový ata chipset, ne tak letos. Alexander Motin zrealizoval dávný plán na propojení CAM (common access method, kterou používá SCSI) s ATA. Zmodifikoval CAM systém tak aby byl použitelný pro ata drivery a několik jich napsal. Předně jde o AHCI driver, který oproti klasickému ata(4) přináší podporu power managmentu a hlavně (konečně!) NCQ. Prvnotní testy ukazují cca 10 až 15 procentní nárůst výkonu s NCQ (při roztarováni /usr/src). Vývoj zde dále probíhá, a tak je na co se těšit.

Xen DomU podpora

Do FreeBSD 8 přibyla experimentální podpora pro Xen DomU. To znamená, že FreeBSD lze konečně běžet paravirtualizovaně pod Xenem. Bohužel tato podpora je stále silně experimentální a jedná se jen o DomU. Podpora pro Dom0 není v dohledu. Autor se vyjádřil, že je to otázka finančních priorit, takže pokud jste ochotní zasponzorovat i Dom0 může být.

Grafika

X Window systém a jeho hlavní inkarnace X.org jsou v posledních letech velmi silně linuxově orientované. FreeBSD barvy hájil Eric Anholt, ovšem ten se z vývoje X/DRM/atp. pro FreeBSD stáhnul (pracuje pro intel na linuxovém ovladači, tak je to pochopitelné). Několik let nebyla situace s Xy ve FreeBSD nijak veselá, naštěstí v období vývoje verze 8 se našel nový odvážlivec Robert Noland, který se ujal udržování X a DRM kódu ve FreeBSD. A tak jsme se dočkali významného updatu intel driveru i ati driveru.

Bylo opraveno mnoho chyb (přepínání mezi grafickým režimem a textovým atp.) a celkově se situace výrazně zlepšila. Do budoucnosti se chystá port TTM a KMS, které dále zlepší situaci a hlavně umožní lehčí přejímání linuxového grafického kódu do FreeBSD. TTM je správce grafické paměti, nutný pro novější drivery a KMS je kernel-mode-setting, který převádí nastavení grafického režimu do kernelu.

Nvidia grafiky

Speciální je stav podpory grafických karet od firmy Nvidia. Zde je situace taková, že Nvidia poskytuje binární driver pro i386 FreeBSD. Mnoho desktopových uživatelů by rádo přešlo na amd64, ale tento driver jim v tom brání. Nvidia vydala seznam požadavků, které potřebuje od kernelu, aby byla schopná poskynout 64bitový driver. Poslední položka z tohoto seznamu padla s vydáním FreeBSD 8 a Nvidia má (minimálně) beta driver pro amd64 FreeBSD.

Na druhé straně fronty existuje projekt nouveau (nouveau.free­desktop.org), který se snaží o open source reimplementaci nvidia driveru. Tento kód byl naportován na FreeBSD. Bohužel není commitnutý do hlavního repository, kvůli licenčním problémům (v jednom souboru je firmware pro GPU, jehož autorem je Nvidia, např. Fedora si s tímto ale hlavu neláme a nouveau distribuuje). Ovšem kód je k dispozici a uživatelé toto mohou používat (např. autor článku).

Výkonová zlepšení

FreeBSD 8 pokračuje v misi za co nejvyšší výkon operačního systému a co nejlepší škálovatelnost.

ULE 3.0

Sága s ULE schedulerem pokračuje. Po velkém úspěchu ULE ve FreeBSD 7 (v 7.1 a dále je to standardní scheduler) byl tento dále vylepšen (hlavně jde o topologie jader a procesorů) a dosahuje lepších výkonnostních výsledků. S tímto schedulerem souvisí nová možnost bindování procesů na určená CPU, popř. CPU množiny.

Mimochodem je možné i programově bindovat interrupty na CPU. Toto vše přináší nové možnosti jak zvýšit výkon a zlepšit manažovatelnost systému. Mnohé aplikace se chovají výkonnostně lépe, pokud jim vyhradíte CPU.

Správa paměti

Velké změny se odehrály s rozložením paměti na AMD64. Původně byl limit na kernelovou paměť 2 GB a nyní byl zvýšen na 512 GB. Toto se týká virtuální paměti a ne fyzické, takže se nebojte, že FreeBSD potřebuje minimálně 512 GB paměti RAM. Tato změna je důležitá hlavně pro ZFS, které má velmi vysoké nároky na kernelovou paměť (jejich ARC nahrazuje FreeBSD buffer cache a je trošku jinak vyladěn).

Do budoucna (ve FreeBSD 9) se plánuje pracovat na kompletním odstranění Giant zámku, což bude mít positivní vliv na škálovatelnost a (tudíž i) výkon. Uvidíme, jaké další změny se objeví.

Další změny

Jail 2.0

Souvisejíc s VIMAGE je Jail 2.0. Jedná se o rozšíření a zmodernizování původního jail systému. Nyní je možné jailům přiřadit více IP adres, vytvářet hierarchické jaily a např. bindovat jaily na CPU.

ZFS

Ve FreeBSD 7 byla uvedena experimentální podpora pro souborový systém ZFS. Po mnohaletém zaostávání za Linuxem FreeBSD konečně dostalo adekvátní souborový systém. Ovšem podpora byla experimentální (v 8 se už tak neoznačuje) a ne všichni uživatelé byli spokojení se stabilitou a výkonem tohoto řešení.

Pawel Jakub Dawidek měl přichystaný velký patchset, který upgradoval ZFS z verze 6 na verzi 13 a při tom opravoval velké množství chyb a nestabilit (nutno přiznat, že mnohé z nich jsou původní solarisové a FreeBSD nezaviněné). Poté vstoupil na scénu Kip Macy a zaměřil se na škálovatelnost (ale opravil i mnoho problémů se stabilitou, např. memory backpressure). ZFS ve FreeBSD 8 je tedy ve výrazně lepší kondici než ve verzi 7. Oba zmínění pánové mají další patche, které dále zlepší výkon a stabilitu ZFS, ovšem to je záležitost FreeBSD 9 (možný MFC do 8.1 popř. 8.2 uvidíme). Do budoucna se tedy mimo jiné těšte na ZFS verze 18.

Více než 16 group na uživatele

Po mnoha letech, kdy FreeBSD trpělo tím, že uživatel může náležet do maximálně 16 group, byl tento limit prolomen. Nové defaultní maximum je 1024 a jde jednoduše zvýšit.

Linuxová emulace

Linuxová emulace byla během vývoje řady 7 updatnuta aby podporovala běh aplikací jakoby pod 2.6 linux kernel. Tato podpora ovšem nebyla defaultně zapnutá. Ve FreeBSD 8 je tato podpora defaultně zapnutá, což umožnilo upgrade defaultní linux base na Fedora10. Celkově je tedy možné očekávat velké zlepšení kompatibility s linuxovým softwarem než v předchozích verzích FreeBSD.

LLVM/Clang

Zajímavostí, která sice FreeBSD 8 nijak (velmi) neovlivnila, ovšem do budoucna možná slibuje vyřešit mnoho problémů, je projekt nahrazující gcc jako systémový překladač překladačem clang/llvm. Autor článku je v tomto projektu osobně zúčastněn, takže v případě zájmu/dotazů mě kontaktujte, popř. se podívejte na webovou stránku projektu.

Další novinky

Výše popsané novinky samozřejmě nejsou vše, co se ve FreeBSD událo, je to jen můj výběr. Dále přibyla podpora spousty nového hardware, bylo opraveno mnoho chyb, výkon mnoha subsystémů byl vylepšen, bylo napsáno mnoho dokumentace a updatnuto několik 3rd party importovaných aplikací. Pro podrobný (přestože asi ne vyčerpávající) výčet je možné konzultovat release notes.

skoleni

Závěr

FreeBSD 8 je dalším vylepšením operačního systému. V porovnání s předchozí major verzí (7) je zde sice mnoho zásadních vylepšení, po kterých uživatelé silně volali, nicméně se tato verze zdá být spíše evolučním krokem dopředu než revolucí. Každopádně doporučuji vyzkoušet, ať už jste zkušeným uživatelem FreeBSD či kompletně FreeBSD nedotčený.

Stahujte na ftp.freebsd.cz.