Hlavní navigace

DragonFly BSD: FreeBSD s kladivom

26. 10. 2010
Doba čtení: 6 minut

Sdílet

DragonFly BSD je fork z FreeBSD, ktorého vývojár sa rozhodol kráčať samostatne. Matthew (Matt) Dillon bol presvedčený, že metódy pre threading a symmetric multiprocessing z FreeBSD 5.x budú viesť k oslabeniu výkonu. Kvôli pretrvávajúcim nezhodám s ostatnými vývojármi sa rozhodol z vývoju FreeBSD odísť.

Svetlo sveta v roku 2003 uzrel projekt DragonFly BSD (DFLY). Vychádza z FreeBSD 4.8, ktorý bol z pohľadu rýchlosti vôbec jeden z najlepších. A Dillon 16. júla 2003 toto aj slávnostne ohlásil.

Čo má DragonFly BSD, to FreeBSD nemá (ale i opačne)

WM Fluxbox nie je problém vymeniť

Operačné systémy nemusíme porovnávať len v ich aktuálnej (dnešnej) dostupnosti, ale aj v celom ich vývoji. Postavme si teda dve histórie vedľa seba a porovnajme ich. Krivka vývoja OpenBSD počas histórie v tomto ohľade je jednoznačne stabilná a krivka FreeBSD naopak niekedy aj klesá. Vývoj FreeBSD je teda o čosi agresívnejší.

Tu samozrejme cesta z FreeBSD do DragonFly BSD a potom do OpenBSD slúži iba tomu, aby čitateľ pochopil, že niektoré implementácie vo FreeBSD nepovažujú iní ľudia za celkom najšťastnejšie a prečo vzniká vývoj ďalších systémov ako DragonFly BSD. Niekto môže namietnuť, že veď aj MirBSD vznikol z OpenBSD, avšak príčinou jeho vzniku nebol iný pohľad na výkon, ale čosi celkom iné.

Čo je DragonFly BSD?

DragonFly BSD je fork FreeBSD, ale aby sme upresnili pojmy a vedeli sa zorientovať – PC-BSD je iba čistou kópiou toho, čo nájdete na www.freebsd.org. DragonFly BSD má už pozmenené jadro oproti centrálnemu projektu FreeBSD, z ktorého DFLY vyšiel. PC-BSD je teda ako OS úplne identický s centrálnym projektom FreeBSD, len má niečo navyše – nadstavbu (grafickú), skripty a PBI balíčky; DragonFly BSD však už nie je identický s centrálnym projektom FreeBSD (preto fork), pretože obsahuje zmeny v jadre a v základnom systéme, čo ani prinajmenšom nemôžeme povedať o projektoch ako DesktopBSD či PC-BSD.

V čom je DragonFly BSD osobitný?

Užívateľ v prvom rade získa veľmi rýchly a voľne dostupný derivát Unixu, ktorý má niektoré špeciality, napríklad súborový systém Hammer, ktorý je okamžite prístupný aj po havárii (bez fsck). Hammer podporuje veľkosť až 1 exabajt, čo je 1024 petabajtov.

FreeBSD má medzi nástrojmi aj kladivo

Hammer

Hammer (v angličtine kladivo) je náhrada za ffs/ufs (Berkeley Fast File System) a podporuje aj snapshoty súborového systému a aj inkrementálne zrkadlenie (mirroring). Hammer je už prednastavený súborový systém v DragonFly BSD, len žiaľ, zatiaľ stále iba doma (v DragonFly BSD), hoci sa oň zaujímajú aj spoza jeho domovských hraníc. O FS (File System) Hammer Dillon píše, že vývoj tohto súborového systému mu trval 9 mesiacov. Na internete sa však objavujú aj pochybnosti – je Hammer skutočne úplne dokončený, aby stálo za to ho skúsiť?

Hammer používa aj PFS (Pseudo File Systems) a podporuje ich až 65535, ako uvádza jeho manuálová stránka aj s odporúčaním pristupovať k PFS cez mount_null.

Do príkazového riadku stačí napísať hammer a uvidíte zoznam možností, medzi ktoré patrí napríklad hammer snapshot, ale aj mnoho iných ( pfs-master, pfs-slave, pfs-cleanup, pfs-status, pfs-update, pfs-destroy, pfs-upgrade, pfs-downgrade, mirror-copy, mirror-stream, mirror-read) – stačí iba napísať hammer a potom príkaz, napríklad: hammer mirror-copy /home/pfs/master /home/pfs/slave

alebo: hammer snapshot /home /snaps/mujsnap1

Súborový systém Hammer vytvoríte (-L je Label) a pripojíte:

newfs_hammer -L HOME /dev/ad0s1d
mount_hammer /dev/ad0s1d /home

Pre Hammer sa však doporučuje disk nie menší ako 50 GB, ako súborový systém si pravdaže počas inštalácie môžete zvoliť aj ufs.

pkgsrc

DragonFly BSD používa pkgsrc (Packages Collection) pôvodne z NetBSD. Balíčky sa na rozdiel od FreeBSD inštalujú do /usr/pkg. Pre inštaláciu balíčkov postačí do príkazového riadku uviesť pkg_add (bez voľby „-r“ na rozdiel od FreeBSD) a potom URL. Binárne balíčky sú v TGZ (nie TBZ ako vo FreeBSD). Pokiaľ nechcete zadávať dlhé URL, vystačíte si s príkazom pkg_radd  – viď stránku pre inštaláciu binárnych balíčkov.

Tu však užívateľa môže prekvapiť nepríjemné sklamanie – pkg_radd v mojom prípade vôbec nebolo možné použiť okamžite, pretože balíčky (v repozitároch na internete) boli pripravené v novšej verzii pkg_install. Tento problém som obišiel pomocou pkgin (z repozitárov), ktorý som musel rozbaliť pomocou tar. Ďalšou odpoveďou pre riešenie tejto nepríjemnej situácie je aktualizovať pkgsrc systém.

Ak pridáte nasledovný riadok do /etc/settings.conf: BINPKG_BASE=http://mirror-master.dragonflybsd.org/packages, tak DragonFly BSD ich bude ťahať odtiaľto. Zrkadlové servery sú pravdaže tiež k dispozícii.

Virtuálne jadrá

Od verzie 1.7 (2006) sú v DragonFly BSD implementované virtuálne jadrá. Podľa tohto postu je zrejmé (viď dátum), že DragonFly BSD je v tomto ohľade ďaleko vpredu. Matt Dillon poskytol rozhovor bsdnewsletter­.com, kde odpovedá na otázky (ale rozhovor je z roku 2007) – virtuálne jadrá, hovorí Dillon, sú rýchle a používajú toľko RAM, koľko si užívateľ určí. Najužitočnejšou vecou je, vraví Dillon, že pomocou virtuálneho jadra možno testovať kód jadra, ktorý nie je viazaný k hardvéru, v prostredí, ktoré takmer okamžite nabootuje do login promptu. Ale možno ich použiť aj pre vybudovanie virtualizovaných systémov pre tretie strany, napríklad z bezpečnostných dôvodov, pretože, tvrdí Dillon, pracujú oveľa lepšie ako jaily – interakcia virtuálnych jadier so skutočným jadrom je totiž minimálna.

Architektúra vkernel používa aj svoje súbory (uložené vo /var/vkernel), ale viac o tom, ako vkernel rozbehnúť, sa dozviete naštudovaním si manuálovej stránky ( man vkernel). Musíte si vybudovať image súbor pomocou vnconfig (príkaz pre prácu s image diskami, vo FreeBSD 5.0 ho nahradil mdconfig). Virtuálne jadro teda funguje ako jadro+kompletný DragonFly BSD systém, ktorý má pravdaže aj svoj rc.conf súbor:

hostname="vkernel"
network_interfaces="lo0 vke0"
ifconfig_vke0="DHCP"
sendmail_enable="NO"
blanktime="NO"

Možno sa pravdaže pripojiť i k sieti na hostiteľskom počítači. Architektúra vkernel teda do značnej miery môže plniť funkčnosť VPS (Virtual Private Server).

Môžete si vybudovať aj vlastné vkernel jadro podľa vzorového konfiguračného súboru VKERNEL (v adresári /usr/src/sys/con­fig). Zdrojové súbory jadra sú na CD v adresári /usr (src-sys.tgz).

NULLFS

DragonFly BSD má iný NULLFS (menej reštrikcií) ako FreeBSD – správa sa veľmi flexibilne a je rýchly.

FreeBSD a DragonFly BSD

Oba systémy – DragonFly BSD i FreeBSD však navzájom spolupracujú a preto nečakajte, že DragonFly BSD je bez aktualizácií, opráv chýb či bez nových ovládačov, ktoré sa objavujú v každej novej verzii FreeBSD – myslíme pravdaže centrálny projekt FreeBSD.

Momentálne aktuálna verzia DFLY je 2.6.3 z mája 2010, ale nové budú prichádzať pomalšie ako v materskom projekte FreeBSD, pretože na vývoji DFLY pracuje menej ľudí. Po inštalácii si môžte systém kedykoľvek doladiť: kbdmap (nastavenie klávesnice), tzsetp (nastavenie časovej tóny), kldload ehci.ko (inicializácia USB) + rcforce usbd.

Nastavenie klávesnice pre konzolu

V DragonFly BSD, ako píše DFLY Digest, funguje aj Adobe Flash podobne ako vo FreeBSD, ale systém je tak trochu „hard core“ – na inštalačnom CD/USB je iba základný systém bez X, čo veľa začínajúcich užívateľov odradí. X na inštalačnom CD iných BSD systémov je samozrejmosťou, ale v DFLY si Xorg musíte doinštalovať z repozitárov pomocou pkg_radd alebo pkgin (modular-xorg-server, modular-xorg-drivers, modular-xorg-libs, modular-xorg-apps, modular-xorg-fonts).

Inštalačné CD je však prehľadenejšie organizované – do prostredia inštalácie vstúpite cez login „installer“, kde je aj menu pre vstup do Live CD, kde si môžete všeličo doladiť v už existujúcom systéme DragonFly BSD. Bootovanie vyzeralo byť o čosi rýchlejšie ako vo FreeBSD, ale FreeBSD ako desktop dáva podstatne viac. Ak máte nejaké plány s virtuálnymi jadrami, alebo chcete spoľahlivý server s obrovským úložiskom dát, na DragonFly BSD sa rozhodne oplatí pozrieť.

V DFLY beží aj KDE

CS24_early

Odkazy

Kde možno DragonFly BSD získať

O vlastnostiach DragonFly BSD

Byl pro vás článek přínosný?