Chyba v linuxovém jádře ovlivňuje práci s disketou
Nejdříve něco k historii diskety. Disketa byla výsledkem snahy IBM vymyslet médium, které by nahradilo děrné štítky. Lineární děrné pásky byly už od 50. let nahrazovány páskami magnetickými, pro trvalé uložení dat na mainframech se už chvíli používaly feritové paměti, nicméně malé a skladné úložiště, které by nevyžadovalo převíjení a bylo možné ho snadno použít i u terminálů a ne pouze přímo na sálovém počítači či minipočítači, chybělo. V roce 1971 se to ale změnilo, když byl na trh uveden 23FD Floppy Disk Drive System - osmipalcová disketa s kapacitou 80 kB. Patent byl IBM udělen o rok později, o další rok později, tedy v roce 1973, začalo IBM označovat nové médium jako „diskette“ a s novou mechanikou 33FD na něj uživatelé mohli nově i zapisovat, čímž se děrné štítky odebraly na smetiště dějin i jako prostředek sběru dat od uživatelů směrem k výpočetním centrům.
S pokračující miniaturizací počítačů a příchodem mikropočítačů a malých videoterminálů se čtverec o rozměrech 20x20 centimetrů začal zdát býti příliš velikým, proto v roce 1976 na pokyn Wang Laboratories přišla společnost Shugart Associates s novým formátem: disketou o velikosti 5.25 palce. Tento formát, označovaný jako „minifloppy“, provázel velkou mikropočítačovou revoluci přelomu sedmdesátých a osmdesátých let a byl prvním, který se rozšířil i k běžným koncovým uživatelům.
Zmenšování pokračovalo dál. Přišly diskety třípalcové, dvou-a-půlpalcové, dvoupalcové - a zase většinou odešly do zapomnění. Jediná další velikost, která se významně uchytila, byla disketa v pevném plastovém pouzdře o rozměru 3.5" s kovovou krytkou okénka obnažujícího záznamový kotouč. Tento typ diskety už neprosadila jedna jediná společnost, ale v roce 1982 konzorcium 23 výrobců nazvané Microfloppy Industry Committee (byť je zcela jasná inspirace návrhem Sony z roku 1981) - disketám této velikosti se tak následně běžně říkalo „microfloppy“.
„Tři-a-půlka“ tu s námi byla prakticky celá osmdesátá a devadesátá léta, distribuovaly se na ní operační systémy i programy pro ně, používala se na zálohování dat a u proslulých šestnáctibitových homecomputerů jako Amiga či Atari ST byla ve většině konfigurací dokonce hlavním úložištěm. Nicméně s nárůstem komplexnosti software postupně přestala stačit. Pokusy navázat médii jako ZIP, LS-120 či floptical slavily jen omezený úspěch a nakonec zvítězila média optická a stále rychlejší a dostupnější Internet. Asi poslední doménou, v níž ještě disketa hrála jistou roli, byly na přelomu století jedno- či několikadisketové linuxové distribuce určené pro seznámení s tímto systémem nebo údržbu počítačů, které odmítly nabootovat ze svého disku. I tady ale rychle disketa ustoupila do pozadí, tentokrát ve prospěch USB flashdisků.
A tím obloukem se dostáváme do současnosti. Paradoxně v roce, kdy se po dlouhých a dlouhých letech objevila nová disketová distribuce nazvaná Floppinux, se v linuxovém jádře objevila chyba, která způsobuje problémy při práci s disketou. Zanesena tam byla už v únoru, kdy v kernelu 5.12 přibyl patch opravující jiné nedostatky, následně byla backportována do verze 5.10LTS a tam byla teď odhalena.
Podstatou chyby je, že při použití flagu O_NDELAY
u funkce open
se ve skutečnosti přímo na médium nesahá a jeho přítomnost se kontroluje až při pokusu skutečně na něj něco zapsat. Po uvedené opravě nicméně s flagem i bez něj dochází v případě, že disketa není v mechanice nebo je chráněna proti zápisu, k vrácení chyby Read-only file system
okamžitě. Oprava zatím neexistuje, dle vývojářů existuje nenulová množina programů, které s tímto chováním nepočítají a jsou tak prozatím nefunkční.
To vývojáři dali disketě k narozeninám opravdu pěkný dárek!