Portál AbcLinuxu, 8. května 2025 21:02
Nový nástroj pro správu vyměnitelných medií. Filtr na aplikační vrstvě. Nástroj na aplikaci konfliktních patchů.
Do konference přišlo celkem 867 emailů, nejvíce jich poslali Andrew Morton, Paul Fulghum, William Lee Irwin III.
Eugene Weiss ohlásil nový projekt submount:
Submount: další pokus o vyřešení problému s vyměnitelnými médii.
Byl otestován na 2.5.66 a 2.5.69, ale měl by fungovat i na starších jádrech řady 2.5. Byl bych vděčen za vaše podněty. Submount je k dispozici na adrese http://sourceforge.net/projects/submount/.
Projekt se skládá ze dvou částí: kernelového modulu a programu v uživatelském prostoru.
Modul, zvaný subfs, implementuje hloupý souborový systém, který
je připojen na požadovaném přípojném místě. Než proces může
přistoupit k adresáři nebo k vnořenému souboru, musí zavolat metodu
open()
či lookup()
. Když subfs dostane
takový požadavek, zavolá uživatelskou utilitu, která připojí
správný souborový systém přes subfs, odforkuje démon pro odpojení a
skončí. Pokud bylo připojení úspěšné, subfs použije systém řízení
signálů pro restart systémového volání, které je tak vykonáno na
již skutečném souborovém systému. Subfs pak restartuje systémová
volání všech požadavků, které přišly, než připojování skončilo.
Uživatelská utilita se nazývá /sbin/submountd. jedná se o malý
program, který udělá minimální zpracování voleb a pak provede
systémové volání mount()
. Pokud připojení uspěje,
odforkuje nový proces, který přejde do smyčky, kdy každou sekundu
testuje, zda už může souborový systém odpojit.
Hlavními výhodami jsou: nízká velikost, rychlost a jednoduchost [light]. Modul má 11 kB, uživatelský program 21 kB. Dále submount nevyžaduje žádné změny do kernelu mimo vlastní modul. Kernelová část je velmi jednoduchá, vlastnosti jsou implementovány v uživatelském prostoru. Veškeré IO operace jsou řízeny skutečným souborovým systémem při plné rychlosti. Submount nemá žádnou výkonostní penalizaci při největší zátěži. Mimo fstat není třeba provádět žádnou konfiguraci.
Hlavním problémem je, že souborový systém není tak rychlý, jako kdyby byl trvale připojen, neboť vyrovnávací paměť je při odpojení vyprázdněna. Proto musí být adresáře pokaždé načteny, i když se disk nijak nezměnil. Chyby se řeší potichu, pokud uživatel udělá překlep, je nutné projít systémové logy.
Příklady:
mount -t subfs /dev/scd0 /mnt/cdrom -o fs=iso9660,ro
nebo v /etc/fstab
/dev/scd0 /mnt/cdrom subfs fs=iso9660,ro
Alex Riesen se zeptal, jak se submount liší od projektu automount (AutoFS) a Eugene odpověděl:
H.P.A. jej ale vyvedl z omylu:
Jasně, ale asi jsi neposlouchal, proč je to zneužívání.
V podstatě si myslím, že vyměnitelná média by měla být řízena na základě detekce připojení/odpojení, nikoliv podle přístupu. Zřejmě musí existovat nějaké triky pro média, která mohou být odpojena bez oznámení (diskety a jiná ručně vysunutelná zařízení), ale všeobecně si myslím, že jde o správný přístup.
Eugene s ním souhlasil. Myslel si, že původní tvrzení vycházelo z hlediska správce, proto chtěl dosáhnout stejné funkčnosti jako supermount, ale bez jeho nestability. A s tím uspěl. Eugene doufal, že submount budou lidé používat, než bude vytvořeno něco lepšího.
Ethan Sommer napsal:
Napsali jsme filtr pro QoS infrastrukturu, který se dívá na data
v datovém segmentu paketů a používá regulární výrazy pro
identifikaci protokolu nezávisle na portu. Mnoho PtP (peer to peer)
programů (jako jsou Kazaa nebo Gnucleus) změní port, pokud zjistí,
že na něm získají větší rychlost přenosu. Což znamená, že metody
filtrace založené na čísle portu jsou nyní nedostatečné. Nicméně
analýzou dat na aplikační vrstvě můžeme rozlišit Kazaa od ne-Kazaa
HTTP požadavku a snížit prioritu tomu, co považujeme za méně
důležité.
Jedná se o filtr na dostupné QoS infrastruktuře, takže může být použit ve spojení s u32 filtry, HTB nebo CBQ plánováním [scheduling], řazení do SFQ front a tak dále a tak dále. Komerční firmy prodavají zařízení pro klasifikaci dat na vrstvě 7 za 6-80 tisíc dolarů, podle požadované propustnosti. Pokud dokážeme postavit vyčerpávající množinu vzorů, nevidím jediný důvod, proč by Linux nemohl porazit komerční zařízení; už teď máme vynikající fronty [queueing] a plánování.
Naše stránky najdete na adrese http://l7-filter.sourceforge.net/.
Najdete zde záplatu do jádra, opravenou verzi tc
a
jako příklad vzory pro HTTP, POP3, IMAP, SSH, Kazaa a FTP.
Neil Brown ohlásil:
Wiggle je nástroj pro aplikaci záplat, které patch nedokáže
aplikovat kvůli konfliktním změnám v originále. Wiggle vždy
aplikuje všechny změny ze záplaty do originálu. Pokud nemůže najít
čistý způsob, vloží je do originálu podobně jako merge
a oznámí neřešitelný konflikt. Ten bude vapadat takto:
<<<<<<<
Text z originálního souboru
|||||||
Text, který patch mění
=======
Text, který je výsledkem patche
>>>>>>>
Wiggle
analyzuje soubor a záplatu raději podle slov
než podle celých řádek a je tak schopen najít souhlasy [matches],
které by patch
nenašel. Pokud záplata mění slovo na
konci věty a slovo na začátku věty bylo od vytvoření záplaty
změněno, wiggle
nebude mít problém aplikovat
záplatu.
Wiggle
se osvědčil jako velmi užitečný pro backport
patchů z vývojové větvě na stabilní větev. Někdy provede přesně, co
má. A když ne, oznámí konflikt, který je snadné vyřešit, když
chápete, čeho se kód a záplata snažily dosáhnout.
Wiggle
je šířen pod GPL na adrese
http://www.cse.unsw.edu.au/~neilb/source/wiggle/.
Inspirace patří Andrew Mortonovi.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.