FreeBSD vs Linux z hlediska filesystemů

01.03.2004 09:39 | blackhole

FreeBSD vs Linux z hlediska filesystemů

Internetem koluje docela nechutný FUD o FreeBSD. Jedna se o počet podporovaných filesystémů (systémů na uloľení dat). Ve svém svatém boji za pravou víru (tj. FreeBSD) je mou morální povinností tento FUD zničit a uvrhnout ho do zapomění. Takľe se do toho pus»me.

Nejdříve si vysvětlíme troąku matematiky. Mějme obecné prvky x a y z mnoľiny M, pak relací R na mnoľine M označujeme nějakou podmnoľinu z mnoľiny dvojic prvků (x,y). Platí-li pro relaci to ľe jsou v mnoľine dvojice (x,y) i (y,x) pro kaľde x a y z M a zárověn je v mnoľině dvojice (x,x) pro kaľdé x z M a k tomu jeątě platí (x,y) náleľí do R ^ (y,z) náleľí do R => (x,z) náleľí do R (tj. relace je symetrická, reflexivní a tranzitivní) pak takovou relaci nazýváme ekvivalencí. Ekvivalence mají zajímavou vlastnost a to ľe umoľňují mnoľinu objektů rozdělit na disjunktní třídy ekvivalence, které lze chápat jako zástupnice daných objektů. Toto například umoľnuje rozdělit nekonečnou mnoľinu na konečný počet prvků - třeba vąechna přirozená čísla rozďelená relací je_sudý() nám dají dvě disjuktní mnoľiny - sudá a lichá čísla. A z hlediska této relace je jedno které sudé číslo vyberete/pouľijete.

variola ~# uname -a Linux variola 2.4.22 #1 Fri Nov 7 21:44:24 CET 2003 i586 unknown
variola ~# find /usr/src/linux/ -type d -name \"*fs*\" | wc -l
27
variola ~#
necrophilia ~/bhole$ uname -a FreeBSD necrophilia 5.2-CURRENT FreeBSD 5.2-CURRENT #147: Sat Feb 28 12:12:00 CET 2004 root@necrophilia:/usr/obj/usr/src/sys/NEOLOGISM i386
necrophilia ~/bhole$ find /usr/src/sys/ -type d -name \"*fs*\" | grep -v modules | wc -l
27
necrophilia ~/bhole$
Uznávám ľe tohle je neskutečne hrubé porovnaní (a navíc dost debilní). Nicméně to ukazuje na to, ľe ani FreeBSD na nemá filesystémů zrovna málo. Nicměně je fakt, ľe Linux má filesystémů \"víc\". Proč dávám to víc do uvozovek? Proveďme následující myąlenkovou konstrukci. (mimochodem, vąimněte si kolik mam buildů linuxu a kolik fbsd :)

Mějme relaci ekvivalence kterou definujme jako typ/pouľitelnost/semantiku (prostě to k čemu ten FS je a co nám umoľní). Tato relace dává při posuzování počtu podporovaných FS docela smysl protoľe uľivateli je úplně jedno jestli má data na abcfs nebo xyzfs pokud mu oba umoľní to samé (ano, linuxáci jsou paka, kteří se o tom budou hádat aľ do skonání světa, ale normální uľivatelé na to kaąlou). Linux podporuje tři typy FS - normální (ext[23], reiserfs, xfs atd.), pamě»ové a sí»ové (NFS, coda). Věci jako devfs/procfs atd. nemá cenu uvaľovat protoľe to nejsou systémy na ukládání dat (resp. obecně manipulaci s nimi). Tři, to není moc. Námitky ohledně uľasnosti reiserfs oproti ext2 apod. si nechte na masturbační krouľek ve čtvrtek ve 3 hodiny v hospodě \"U debila\". FreeBSD (jakoľto vyspělý OS, ne hype ąidítko jako leenucks) toho podporuje \"kapku\" víc. Jednak normální persistentní systémy na ukládání dat (těch je podstatně míň neľ u linuxu a proto ten FUD, ale zase na druhou stranu tyto jsou zajímavějąí - viz. SOFTUPDATES nebo lfs), jednak sí»ové a pamě»ové. Zatím to samé jako u linuxu. Ovąem nabízí se i daląí vychytávky (při vývoji FreeBSD se přemýąlelo, při vývoji linuxu vydělávalo)
NullFS
Zajímavá věcička - FS který nedělá \"nic\". Prostě jen passne struktury dál. Vyuľití to má v tom, ľe můľete namountovat adresář někam jinam. V diskusi k nedávnému článku na root.cz pan Růľička presentoval výhody rozdělení systému na různé partitions z hlediska bezpečnosti (tj. ľe můľete mít na /usr/ nosuid apod.) To je zajisté pravda nicméně to má i nevýhodu v tom, ľe se můľe stát, ľe na jedné partition se vám nebude dostávat místa, zatímco na druhé ho bude přebývat. A tak to pěkně nacháme na jedné partition s tím, ľe si to nullfs mounteme kam potřebujeme - a můľeme si nastavovat co chceme ;) (je fakt ľe mít oddělené ruzné místa na ruzné svazky není ąpatné ale z hlediska bezpečnosti je to zbytečnost)

PortalFS
Tohle sice prakticky neznám ale dle man stránky se dá soudit, ľe je to docela zajímavé. Nicméně můj umírajíci intelekt není schopen pochopit celou ąíři úľasnosti tohoto řeąení a tak vám doporučím přečíst si to samy. (snad jde o něco na způsob user-space kontrolovaného přistupu + unifikace tohoto přístupu ke vąem datovým zdrojům - sí»ovým i fs-based, ale fakt nevím)

UmapFS
FS pouľívaný kdyľ potřebujete namapovat jiná uids/gids na vaąe stávající. Snad se to dá s výhodou pouľít v sí»ovém prostředí.

UnionFS
FS který vám umoľní udělat unifikaci dvou FS. S tím, ľe vidíte jak \"dolní\" soubory tak \"horní\" soubory. S tímhle se dají dělat brutální uchylárny. Např. \"zálohovaní\" s tím, ľe kaľdý den union mountnete na /home obsah nějakého (prázdneho) souboru (vinum based), těchto souborů máte třeba 7 (s tím, ľe nejspodnějąí vľdycky syncete s původním /home). To vám dává snapshoty (které jsou ale v FreeBSD implementovány jinak) z kaľdého dne týdne. Tj. kdyľ si někdo něco smaľe jste schopni to obnovit. Docela cool ;) Jiná věc je union-mountování mfs (memory based fs) přes RO zařízení. Tím získate fake RWčka. Tj. oblafnete tím hafo sluľeb, které dementně vyľadují mít RW přistup na zařízení. Nebo můľete editovat soubory na CD-ROM (s tím, ľe sync je pak otázkou cp /dev/cd1 /dev/cd2). Atd, atd.

Za zmínku stojí i FS v NetBSD jako např lfs (logovací FS). Jo, teď mne jeąte napadají ąifrované FS, ale i tady má FreeBSD navrch pač tohleto řeąí přes obecnou vrstvu (geom), takľe umí (bude umět) ąifrovat cokoliv (+ provádět libovolné jiné transformace).

Uvědomte si, ľe vąechny tyto FS mají naprosto odliąnou sémantiku a tj. i vyuľití. Takľe aľ vám bude někdo přiątě tvrdit něco o tom jak mají *BSD málo FS tak se mu vysmějte do ksichtu a přefikněte mu přítelkyni ;)

neologism

P.S. včera jsem byl na úľasném koncertě. Light in the hell - industrialní ambient doprovázený cyberpunkovým projekcí a to vąe v komorní atmosféře malinkaté galerie (plné zajímavých obrazů). Nehledě na ty tuny nádherných ľenských ;) Takľe vy vąichni chcípáci, které jsem zval a neąli jste vězte, ľe jste přiąli o super záľitek!neologism