FreeBSD 5.0 Developers Preview 1

14.04.2002 13:26

Chysta sa nova verzia fBSD, tak si nenechajte ujst tento skvely article, ktory vysvetluje co noveho pribudne a naco to vsetko je. + na zaciatok kratke into do sveta BSD.

Co je BSD ?
V počátcích vývoje Unixu byl tento, dnes tak oblíbený, OS rozesílán do různých , na inteligenci bohatých, institucí. Tak se dostal i do Univerzity v Berkeley v americkém státě California. Zde se o něj začalo zajímat několik schopných programátorů. Systém se jim zdál sice užitečný, ale \"nebylo to ono\". A tak začali vylepšovat. Na začátku přidali kompiler Pascalu (dřív byl tento jazyk považován za vhodný k výuce!) a editor ex. Vylepšení se jím zdála podstatná a tak takto upravený systém oficiálně vydali a začali rozesílat zájemcům podnázvem Berkeley Software Distribution. Systém se rychle rozrůstal, bylo přidáno spousta užitečných vylepšení - nová koncepce VM, síťové sockety, systém termcap, síťování apod.Konec BSD ?
Systém se utěšeně rozrůstal až do doby, kdy si AT&T všimla, že Unix není hračka a mohl by vydělávat peníze. Vydala System V. Tento systém není ničím jiným než integrací Unixu, BSD a Xenixu do jediného integrálního celku. Drahého celku. BSD bylo levné a také \"Unix\". Celkem jasná volba ne? A jelikož jsme v USA tak se začalo soudit o ochranou známku Unix. Po dlouhém a zbytečném sporu, který stejně nikam nevedl se obě strany dohodly. Nicméně to užbylo BSD za svým zenitem. Ovšem počátkem 90. let, ještě před onou soudní bitvou, se zjistilo, že Unix a BSD už mají společných jen 6 souborů! Platit za 6 souborů? Asi ne. A tak se Bill Jolitz rozhodl, že těchto 6 souborů napíše sám. Tak by vznikl systém, který by bylo možno volně šířit bez jakýchkoliv poplatků. Tomuto projektu dal poetické jméno 386BSD. Nadšení bohužel dlouho nevydrželo a systém se přestal vyvíjet. Naštěstí se projektu ujal Jordan Hubbard aspol. Dali projektu nové jméno a začali znova progamovat. A tak vzniklo FreeBSD.Co je FreeBSD ?
Na rozdíl od napr. Linuxu je FreeBSD kompletní systém. Nejen kernel, ale i libc knihovna, systémové utilitky, man stránky a vše ostatní potřebné pro základní běh systému. Prostě něco jako GNU+Linux. Kromě základního systému, který by Vám asi nestačil, je zde možnost převodu externích programů do FreeBSD. Realizuje se to pomocí databáze zvané PORTS. V této databázi je popis co a jak je potřeba pro daný software udělat aby byl funkční pod FreeBSD. Člověk pak jen zadá příkaz make install a vše ostatní se provede samo. Unix je doopravdy složitý,že. Samozřejmě je možné si kompilovat programy sám přímo ze zdrojáků. Systém je vyvíjen celkem zajímavým způsobem. Existuje centrální úložiště, kde jsou veškeré zdrojáky. Toto je tvořeno CVS archivem, do kterého má přístup něco přes 200 vývojářů z celého světa. Kontinuálně se vyvíjí od verze 1.0 až do dnešní 5.0. První číslo přitom značí hlavní verzi a druhé pořadí releasu. Existují totiž dvě větve - STABLE a CURRENT. STABLE je stabilní verze, ve které se jen opravují chyby a je cílena k použití v reálném nasazení. CURRENT je \"bleeding edge\" - zde se děje veškerý vývoj, tato verze je určena pro vývojáře a nedočkavce. V žádném případě pro použití na serveru či jinde v provozu!!! Momentálně je aktuální verze FreeBSD 5.0 Developers Preview 1. Je to pouze snapshot CURRENT verze, takže není zaručena stabilita či bezchybná funkčnost.FreeBSD 5.0
Pětková řada obsahuje několik věcí přesně dle BSD filosofie - tj. promyšlené, extrémně elegantní, užitečné a výkonné divnosti :-)1) Přepracovaná SMP podpora
Řady před 5.0 měly podporu více procesorů (SMP) řešeno pomocí tzv. velkého zámku jádra (giant lock). Znamená to, že v kernel-space se může nacházet maximálně jeden proces. Zbytečně tak musí některé procesy čekat na uvolnění tohoto zámku.To určitě není zcela ideální a tak se velice usilovně pracovalo na \"zjemnění\" tohoto zámku. Tojest aby se různé části kernelu mohly vykonávat paralelně. Podobná snaha probíhala v Linuxu v řadě 2.1.x, nemýlím-li se. Jako součást tohoto procesu byla část kernelu učiněna preemtivní. Kernel siceještě není preemptivní celý (to se chystá dále do budoucna) ale i tak je to krok vpřed. Spousta kódu je portována z BSD/OS 5.0 (komerční BSD). 2) KSE - Kernel Scheduled Entities
Unix byl projektován v době kdy thread bylo ještě nástrojem švadlenek. Podpora threadingu není v unixu bůhvíjaká. V podstatě se většinou realizuje jako skoro-normální další proces. Což prakticky eliminuje spoustu výhod, které thready mají (rychlost). Navic vzhledem k politikám schedulingu se může stát, že se nějaký thread nedostane k běhu a je-li na něm např. závislý celý zbytek procesu pak musí proces čekat celý. Tento problém se vyřešil tak, že se time-slice přiděluje procesu jako celku. Tedy ne každému threadu jako teď. Uvnitř procesu se thready schedulují podle potřeby danného procesu. Ten ostatně nejlépe ví co potřebuje. Funguje to následovně: Pokud thread vyvolá volání jádra, které je blokujíci (chvíli trvá) tak se onen thread v kernel-space \"odpoji\" od jadra a vrati řízení user-space scheduleru, kde se vybere další thread k běhu. \"Odpojený\" kontext běží zcela asynchroně naprocesu. Když je \"odpojený\" kontext ukončen pak se to oznámí user-space scheduleru, který ho předá kernel-space scheduleru. Výhoda je v tom, že takto zparalelizované mohou thready daleko lépe běžet na více procesorech, aniž by bylo vyžadováno jakékoliv schedulování v kernelu. Dostaneme tak velice rychlé context-switche, navíc bez jakéhokoliv overheadu pro kernel. Dosahuje se tak velice zajímavých výkonu na SMP strojích.3) NEWCARD
Nová a přirozeně lepší implementace driveru pro PCCARD zařízení. V podstatě se jedná o přepis PCCARD driveru pro nové API NewBus.4) random(4)
Vzhledem k potřebě stále lepší a účinějšího šifrování byl implementován tzv. Yarrow algoritmus pro \"výpočet\" náhodného čísla. Svou entropii získává z HW záležitostí jako jsou přerušení apod. Věc obecně vyzužitelná v kryptografii i jinde. Navíc jak věřím, tak se mi snad konečně přestanou mptrojky, při náhodném pořadí, opakovat po 10 písničkách :-)5) Sparc64 port
FreeBSD podporuje poměrně málo architektur - vlastně jen dvě - i386 a Alpha. Nemyslím si sice, že spouštět BSDčka na náramkových hodinkách dle hesla: \"Of course it runs NetBSD\" je zrovna nejužitečnější nebo nejpotřebnější, ale je pravda, že existuje spousta dalších zajímavých platforem (PPC, MIPS, Sparc atd.). Existují tedy projekt na portování FreeBSD na tyto platformy. Já osobně vím o portaci na IA64, x86-64, PowerPC a Sparc64. No a právě port na Sparc64 byl oficiálně představen v této předverzi. Sparc64 jsou riscové procesory používané firmou Sun v jejich pracovních stanicích. 6) Binary updater
Sofistikovaný systém pro aktualizaci instalovaného softwaru.7) Devfs
Pokud jste někdy viděli /dev v nějakém \"bohatějším\" Unixu určitě jste se zděsili. Na počítači, který má nějakých cca do 20 zařízení je třeba 8000 záznamů. Navíc v době hot-plug zařízení se jeví jako zcela nevhodné aby obsluhu zařízení v /dev dělal uživatel. Proto byl vyvinut tzv. DevFS. Je to virtualní filesystém, který se přimountuje na /dev a dynamicky zde obsluhuje zařízení. Uživateli se to jeví jednoduše - méně položek v /dev (rychlejší načítání) a automaticky se objevující položky. Pro kernel je to také zjednodušení, nemusí se spoléhat na zastaralé major a minor čísla a může se zařízeními komunikovat přímo přes nějaký descriptor. Neodpustím si poznámku: zatímco v Linuxu je devfs přítomno již dlouho tak se i přes jeho nesporné výhody stále masově nepoužívá - software není připraven atd. tak v BSD jekonverze záležitostí jedné verze.8) Security
Ve spolupráci s projektem TrustedBSD bylo do FreeBSD přidáno ACL. Acces Control List je důležitá berlička v mírně obstarožním systému přístupových práv Unixu. User/Group/Others je přece jen poněkud mimo. Určitě je někdy třeba aby měl k jistému souboru zapisovací přístup jen uživatelé Franta a Pepa, ostatní jen čtení. A dělat skupinu? By se člověk zbláznil. No a přesně k tomu slouží ACL. Také byla přepsána implementace PAMu. PAM je ta věcička co prodlužuje login-time na dvacetinásobek :-) Jinak jsou to Pluggable Authentication Modules.9) FS snapshot
Je v podstatě něco jako \"vyfocení\" file systému. Umožnuje to např. věci jako jsou zálohy živého filesystému, fsck na pozadí apod. FreeBSD používaný filesystém UFS (unix file system) byl dále vylepšen i jinak. Např. byla zavedena nová struktura ukládání adresářů, což prý zvedá výkon až 60x. Také se zavedlo hashování obsahu adresáře, které dále zvedá výkon. Zde bych jen doplnil, že BSD používají tzv. Softupdates - jedná se o způsob jak zajistit konzistentnost meta-dat FS, při zvýšení rychlosti. Děje se tak zapomocí asynchronizace většiny operací.Závěr
Myslím, že finální verze FreeBSD 5.0, která je plánována na 20. listopadu, bude dalším významným krokem kupředu. Bude jen vaše chyba pokud je nevyužijete.neologism