Új patch a VFAT szabadalommal kapcsolatos problémák elkerüléséhez

Mint az ismert, a Microsoft az év elején pert indított a TomTom ellen, azt állítva, hogy a Linux-alapú autónavigációs rendszereket gyártó vállalat egyes termékeivel megsérti több, köztük két (V)FAT fájlrendszerrel kapcsolatos szabadalmát. A jogi procedúra azóta lezárult, a két vállalat peren kívül megegyezett.

Az eseményekre reagálva a Linux fejlesztői közösség egyes, az IBM alkalmazásában álló tagjai - hogy elejét vegyék további hasonló pereknek - egy patch-et készítettek a kernelben található VFAT támogatáshoz. A patch-et azonban a fejlesztői közösség nem fogadta egy emberként kitörő örömmel. Ennek több oka is volt. Az egyik az, hogy a patch tulajdonképpen csökkentette volna a már évek óta a kernelben levő VFAT kód funkcionalitását.

Most Andrew "Tridge" Tridgell, az első patch szerzője egy újabb VFAT patch-et készített, ezúttal olyat, amely már megőrzi a Microsoft szabadalmának lényegét képző hosszú fájlnév-bejegyzés (létrehozás) funkcionalitást (is), azonban mégis elkerüli a szabadalomban leírtak megsértését.

A fejlesztő több, erre a területre specializálódott ügyvéddel is tanácskozott, a patch-ek (a korábbi és a most beküldött újabb is) jogi átvilágításon estek keresztül. A részletekről publikusan - pl. az LKML-en - nem beszélhetnek, mert a Microsoft ügyvédei ezeket a beszélgetéseket később felhasználhatnák egy esetleges per során, de a Linux Foundation ügyvédje, John Lanza válaszol a felmerült kérdésekre, ha tud azokra válaszolni, illetve ha nem tud, akkor megírja, hogy miért nem tud válaszolni bizonyos kérdésekre.

Felmerült a kérdés, hogy miért kell foglalkozni egy olyan szabadalommal, amely feltehetően érvénytelen. Andrew szerint egy esetleges bírósági per, amelynek során bebizonyítanák, hogy a Microsoft szabadalma érvénytelen, hosszú ideig is eltarthatna és sokba is kerülhetne. A pereskedés ideje alatt (például a perbe fogott cégek számára) a képződő károk maradandóan megmaradhatnak, és az is elképzelhető, hogy a szabadalmat sohasem érvénytelenítenék. Ezért indokolt egy olyan patch elkészítése, amely megtartja az eredeti funkcionalitást (nem hoz regressziót) és közben nem sérti meg a kérdésekes szabadalmakat.

Miben más ez a patch mint az első és miért hiszi "Tridge", hogy ez megkerüli a szabadalmakban leírtakat?

A Microsoft szóban forgó VFAT szabadalmai a hosszú fájlnév-bejegyzések létrehozásáról és tárolásáról szólnak. Az első patch-ben a fejlesztők megváltoztatták a kódot úgy, hogy alkalmazásakor hosszú fájlnév-bejegyzések soha nem jönnek létre, soha nem kerülnek tárolásra. A kód változatlanul hagyta a hosszú fájlnevek olvasásának képességét, hiszen erre a Microsoft szabadalmak nem térnek ki. Az eredmény egy olyan kód lett, ami ugyan nem sértette a szabadalmat, de mégis vesztett a képességeiből.

A most postázott kód viszont úgy kerüli meg a Microsoft szabadalmait, hogy nem veszít képességeiből, mert egy másik irányból közelíti meg a problémát. A Microsoft VFAT szabadalmai a fájlokhoz tartozó, egy időben egyszerre létrehozott hosszú és rövid fájlnév-bejegyzésekről szólnak. A fejlesztők úgy kerülték meg a szabadalmat, hogy nem hoznak létre egy fájlhoz egy időben hosszú és rövid fájlnév-bejegyzést. Az új kód egy fájlhoz csak rövid, vagy csak hosszú fájlnév-bejegyzést hoz létre, de sosem hozza létre egyszerre mindkettőt. Ezzel a szabadalom megkerülhetővé vált és a kód megőrizte a hosszú fájlnév-bejegyzés létrehozás és olvasás képességét.

Technikailag a fejlesztők létrehoztak egy "vfat_build_dummy_83_buffer()" függvényt, ami kitölti FAT és VFAT fájlnév témakörben nem értelmezett, azaz "invalid" értékekkel azt a mezőt, ahol eredetileg a rövid fájlnevek tárolódnának. A mezőben levő "invalid" értékek alkotta halmaz nem tekinthető a szó használt értelmében fájlnévnek. Természetesen ez egyben azt is jelenti, hogy olyan operációs rendszer, amely "nem érti" a VFAT-ot (pl. DOS verziók) nem tud hozzáférni az adatokhoz. Mondjuk ezen OS-ek elterjedtsége elenyésző, így ez a limitáció elfogadható.

config VFAT_FS_DUALNAMES
+	bool "VFAT dual names support"
+	depends on VFAT_FS
+	help
+	  This option provides support for dual filenames on VFAT filesystems.
+	  If this option is disabled then file creation will either put
+	  a short (8.3) name or a long name on the file, but never both.
+	  The field where a shortname would normally go is filled with
+	  invalid characters such that it cannot be considered a valid
+	  short filename.
+
+	  That means that long filenames created with this option
+	  disabled will not be accessible at all to operating systems
+	  that do not understand the VFAT extensions.
+
+	  Users considering enabling this option should consider the implications
+	  of any patents that may exist on dual filenames in VFAT.
+
+	  If unsure, say N

Ez a kód - ha a kernelfejlesztői közösség elfogadja - alapértelmezetten engedélyezett lenne a kernelben, ellentétben az első patch kínálta kóddal. Aki ezt az kódot ki akarná kapcsolni (azaz, a fentebb részletezett opciót 'Yes'-re akarja állítani), annak számolnia kellene a Microsoft szabadalmakból származó következményekkel.

Szóval a fejlesztők ezzel megkerülnék a Microsoft szabadalmait, de a technikai megvalósítás közben körültekintően kellett eljárniuk. A rövid fájnév-bejegyzéseket tartalmazó mező kitöltése során biztosítaniuk kellett, hogy olyan byte-okat használnak, amelyek egy, a Windows XP-n jelenlevő bugot nem triggerelnek, azaz nem okoznak összeomlást, "kékhalált" vagy egyéb működési problémát (Windows Vista-n és 7-en ez a bug nincs jelen).

A részletek elolvashatók itt, illetve a patch-hez készült FAQ-ban.

Hozzászólások

Ahahaha, ha ez jogilag működik, akkor a Microsoft elmehet a vérbe a hivatkozott szabadalmaival és legközelebb majd úgy fogalmaznak, hogy az ilyen kiskapukat is levédik.

--
trey @ gépház

az ügy iróniája, hogy ez a szabadalom pont a gnu/linux miatt érvénytelen. UMSDOS előbb létezett már, mint a VFAT, az is egyszerre tárolt rövid és hosszú fájlneveket, plusz még unix jogokat is kezelt. 2.6.11 óra nem része a kernelnek, de ez a múlton mit sem változtat.
umount közben be lehetne írni a rövid fájlneveket is az invalid bejegyzések helyére. ha jól értetem a Ms szabadalom csak az egyidejű rövid/hosszú fájlnévbejegyzésre vonatkozik. ha a vfat fájlrendszer lecsatolásakor írja be rendszer a rövid fájlneveket, arra nem vonatkozik a szabadalom. így ugyan hosszabb lenne a lecsatolási művelet, viszont tökéletes lenne a kompatibilitás, mivel egy időben csak egy operációs rendszer használ közvetlenül egy partíciót.

Amikor a jogászok beleszólnak az informatikába, akkor mindig szomorú leszek :(

Príma... A jogászokkal csak a baj van. Felmentetik a gyilkosokat és tolvajokat (hivatkozva arra, hogy ha ők nem, valaki más úgyis), óriási pénzeket akasztanak le, és ráadásul még beleugatnak olyan dolgokba is, amihez abszolút nem értenek. Remek dolog.

Akkor lesz meglepetés a kínai divx-játékosokkal.

Ja, pont erre gondoltam én is, hogy az tök jó, hogy Tridge-nek sikerül úgy heggesztenie a FAT-et, hogy Windows akárhány alatt pont ne dobjon BSOD-t, és kompatibilis maradjon, meg még Linux alatt is menjen, de esélye sincs rá hogy ez a változtatás a rengeteg helyen megvalósított FAT implementációkkal mind kompatibilis legyen...

Azért a (V)FAT minden formájában egy laposkúszás. Szerintem egyszerűen mellőzni kéne. Ha az a navigációs eszköz Linux alapú, akkor miért nem lehet ext2-t használni.

Másik eset. Az Ubuntu System->Adminsitration->USB startup disk menüpont VFAT-ra formázza a pendrive-ot, pedig ext2-es pendriveról is prímán lehetne bootolni. Azaz feleslegesen ott is előveszik a FAT-ot, ahol nincs rá szükség.
--
CCC3

Ez szerintem eléggé félig igaz. Pl. nyomtatókhoz valószínűleg a mai napig van mondjuk HP LaserJet IIP -hez, meg IBM ProPrinter X24+ -hoz, meg hasonlókhoz. És ezek pont azok a dolgok, amik a felhasználók jó részét érintik. Rohadtul nem változott semmi a nyomtató és szkennelőiparban (max gyorsultak), tehát otthoni és SOHO környezetben a mai napig megállnák/ják a helyüket. De ugyanígy van digitális fényképezőgépek terén: elavultnak ugyan elavult lehet egy ezzel egykorú gép, de ha rádugod, a mai napig fel fogja ismerni. Szóval *van* olyan kövület, amihez van driver, nem is csekély számban.

Nyilván ha csak a linuxos eszközben használod, akkor mindegy, de mi van, ha esetleg egy windowsos számítógépen akarsz rá felmásolni dolgokat? Egy navigációs eszköz vásárlója pedig főleg honnan tudhatná, hogy mi a különbség az ext és a vfat között, annyit látna, hogy "az eszköz nincs formázva, formázzam? igen, nem", mikor az új térképfájlokat akarja felmásolni a kártyájára. Szintén igaz egy pendrive-ra, hogy kerülhetsz olyan helyzetbe, amikor mégsem csak bootolásra használod, hanem véletlenül egy windowsos gépről vagy gépre szeretnél fájlokat másolni, és ha nem kompatibilis azzal, akkor kellemetlen helyzetbe kerülsz, még ha van is sok giga szabadon a bootolható rendszer mellett.

http://www.fs-driver.org/relnotes.html

"The current version of Ext2 IFS only mounts volumes with an inode size of 128 like old Linux kernels have.

Some very new Linux distributions create an Ext3 file systems with inodes of 256 bytes. Ext2 IFS 1.11 is not able to access them.

Currently there is only one workaround: Please back up the files and create the Ext3 file system again. Give the mkfs.ext3 tool the -I 128 switch. Finally, restore all files with the backup."

Ellenben: http://www.ext2fsd.com/

"flexible-inode-size supported. recent Linux are using 256-byte inode that fails 0.45 and before to show all the files."

egy ujabb szeg a szoftverszabadalmak koporsojaban.

--
Live free, or I f'ing kill you.

"Természetesen ez egyben azt is jelenti, hogy olyan operációs rendszer, amely "nem érti" a VFAT-ot (pl. DOS verziók) nem tud hozzáférni az adatokhoz."

Ez is regresszió. Egyáltalán nem vagyok 100%-ig biztos abban, hogy ha "nem standard" VFAT fájlrendszert hozunk létre Linux alatt, annak nem lesznek egyéb "váratlan" mellékhatásai nem Linux alatt. (Azt csak zárójelben jegyzem meg, hogy DOS is van a gépemen. ;-)

Amúgy ez a szabadalom úgy baromság, ahogy van.

Ezt egyrészt nemcsak magamra mondom, hanem a jelenségre. Mert a nagy jogkövető disztrók butított VFAT-tal forgatott kernelt fognak szállítani. Az utolsó előtti bekezdés már maga egy intő jel, hogy azért ez nem ilyen egyszerű...

De ilyenkor mondom azt, hogy a mai jogrendszert a kukába lehet dobni, valaki találjon ki valami jobbat. Maga a szabadalom, illetve annak megkerülése is egy röhej.

Reszketve várom mi lesz.

(Nem nagyon hiszek abban, hogy ez üzletileg és stratégiailag helyes lépés lenne, amikor az EU-ban árgus szemekkel lesik, hogy mikor tesz keresztbe az nagy Redmond-i vállalat a versenytársaknak és millió/milliárd eurós büntetésekre sem félnek rányomni a bélyegzőt.)

--
trey @ gépház

Ez mind szép és jó lenne, meg majdnem meg is hatódnék ettől, ha nem egy olyan cég köcsögösködne, aki folyamatosan veszi semmibe más cég szabadalmait, lopja azokat el és fizet emiatt irdatlan összegű kártérítéseket. Ha kívánod belinkelem az elmúlt egy év "termését".

Így számomra nem más, mint egy "patent troll".

--
trey @ gépház

addig nem is lenne gond, amíg csak a Windows használná a vfat-ot...

de mivel fényképezőktől a legtöbb pendrive-ig, sd-kártyaig... így már egy kicsit érdekesebb a kérdés.

Ha a Microsoft lefejleszti hogy tudja írni olvasni minden Windows alól (visszamenőlegesen 98-tól W7-ig) az ext3, reiserfs, xfs, stb -t akkor azt mondanám rá, hogy megértem hogy védik, mert aki a pendrive-jét ext3-al hozza létre akkor még mindig tud dokumentumokat cserélni Má$okkal.

Legalább olvasni lehet...

+ * fill the remaining 6 bytes with random invalid values
+ * This gives us a low collision rate, which means a low
+ * chance of problems with chkdsk.exe and WindowsXP

Ezt most komolyan gondolják?
Ezek szerint minden fájlnál 1:31 az esélye hogy ugyanaz legyen a
neve mint egy másiknak ugyanabban a könyvtárban.
Aztán meg a chkdsk bogozza ki.

Sokkal kisebb az esélye, 6 _byte_-ról van szó (és persze függ a könyvtárban levő fájlok, "invalid value"-k számától).

De én is jobban komáltam az 1. verziót (a legjobb persze a 0. verzió lenne, ami a szabadalom érvénytelenítése), mert ez egy fájlrendszer _gányolás_, semmi több, aminek nem tapsolok, sajnálom.

A Microsoft VFAT szabadalmai a fájlokhoz tartozó, egy időben egyszerre létrehozott hosszú és rövid fájlnév-bejegyzésekről szólnak.

Ha a hosszú fájlnév x időpillanatban kerül tárolásra, a rövid fájlnév pedig 66 ms-mal később, az már nem lenne szabadalomsértés?

:)

Valamikor még csak bokáig ért a hülyeség ebben a világban, ma meg már mellközépig gázolunk benne. Na jó, néha már úszni is kell. /-|