Keď Linus Torvalds v roku 1991 vytvoril Linux, počítač, na ktorom pracoval, bol rovnako ako počítače z tej doby vybavený disketovou mechanikou . A teraz sa jej podpora skončila . V nedávnom príspevku tvorca slávneho open-source operačného systému oznámil ukončenie údržby ovládača disketovej mechaniky.
Krátky prehľad umožňuje do istej miery porozumieť tejto informačnej poznámke. V skutočnosti stačí poznamenať, že väčšina notebookov a dokonca ani stolových počítačov, ktoré sú dnes uvádzané na trh, nemá disketovú jednotku.
„Zariadenia tohto typu sú dnes na trhu čoraz ťažšie dostupné. Ten, ktorý je v stánkoch stále k dispozícii, je založený na USB. Zrazu sa pôvodný vodič už nehľadá, “hovorí Torvalds.
Vďaka tomu už nebude nikto zodpovedný za udržiavanie podpory pre ovládač disketovej jednotky pre Linux, aspoň zatiaľ , pretože Linus využíva príležitosť na prilákanie zainteresovaných tretích strán.
Ovládač však zostáva k dispozícii na zabezpečenie podpory virtuálnych strojov, ktoré na ňom stále závisia.
Pre novšie generácie, ktoré nie sú oboznámené s disketami, môžem povedať, že ide o magnetické médium na ukladanie dát , ktoré pozostáva z tenkého kruhového plechu (disku) z magnetizovateľného a ohybného materiálu (odtiaľ pochádza aj jeho názov), uzavretého v štvorcovom alebo obdĺžnikovom plastovom puzdre, ktoré sa používalo v počítačoch napríklad: ako bootovací disk, na prenos dát a informácií z jedného počítača do druhého alebo jednoducho na ukladanie a ochranu súborov.
Sú ako tie na obrázku:

Potreba naďalej zaručovať tento komponent, ktorý si u zdrojového kódu vodiča získal náklonnosť správcu dodnes. Faktom je, že virtualizácia disketovej mechaniky predstavuje problémy, ktoré pri hardvérovej verzii nevznikajú.
„Hardvérová disketová jednotka je príliš pomalá na to, aby spustila situácie súčasného prístupu. Na druhej strane virtualizovaná disketová mechanika prináša veľa na povrch, pretože je oveľa rýchlejšia, “uvádza Jiří Kosina v príspevku zverejnenom pred 9 rokmi.
Zdrojový kód tohto ovládača je k dispozícii vývojárom, ktorí chcú podporu disketových mechaník v systéme Linux a v prípade potreby môžu poskytnúť informácie.
drivers / block / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> dĺžka = 4 * F_SECT_PER_TRACK; if (! F_SECT_PER_TRACK) návrat; / * umožniť asi 30ms na prenos dát na stopu * / head_shift = (F_SECT_PER_TRACK + 5) / 6; @@ -3230,8 +3233,12 @@ static int set_geometry (unsigned int cmd, struct floppy_struct * g, int cnt; / * kontrola zdravého rozumu pre parametre. * / If (g-> sect <= 0 || g-> head <= 0 || if ((int) g-> sect <= 0 || (int) g-> head <= 0 || / * check over overflow in max_sector * / (int) (g-> sect * g-> head) <= 0 || / * kontrola nuly vo F_SECT_PER_TRACK * / (nepodpísaný znak) ((g-> sect << 2) >> FD_SIZECODE (g)) == 0 || g-> stopa <= 0 | | g-> stopa> UDP-> stopy >> STRETCH (g) || / * skontrolujte, či sú nastavené vyhradené bity * / (g-> stretch & ~ (FD_STRETCH | FD_SWAPSIDES | FD_SECTBASEMASK))! = 0) @@ - 3375,6 +3382,24 @@ static int fd_getgeo (struct block_device * bdev, struct hd_geometry * geo) return 0;} static bool valid_floppy_drive_params (const short autodetect [8], int native_format) {size_t floppy_type_size = ARRAY_SIZE = 0 ; for (i = 0; i = floppy_type_size) return false;} if (native_format = floppy_type_size) návrat nepravdivý; návrat t ľútosť; } static int fd_locked_ioctl (struct block_device * bdev, režim fmode_t, nepodpísané int cmd, nepodpísané dlhé parametre) {@@ -8 +0 @@ static int fd_locked_ioctl (struct block_device * bdev, režim fmode_t, nepodpísané int SUPBOUND (veľkosť, strlen ( (const char *) outparam) + 0); break; case FDSETDRVPRM: if (! valid_floppy_drive_params (inparam.dp.autodetect, inparam.dp.native_format)) return -EINVAL; * UDP = inparam.dp; break; case FDGETDRVPRM: @@ -3501,6 +3526,9 @@ static int compat_setdrvprm (int drive, return -EPERM; if (copy_from_user (& v, arg, sizeof (struct compat_floppy_drive_params))) return -EFAULT; if (! Valid_floppy_drive_params (v.autodetect, v. native_format)) return -EINVAL; mutex_lock (& floppy_mutex); UDP-> cmos = v.cmos; UDP-> max_dtr = v.max_dtr;
Diskety sú neoddeliteľnou súčasťou počítačovej histórie, ale musíme priznať, že sú súčasťou histórie. Aby sme to však zdôraznili, vynára sa otázka: nie je to prekážka pre budúce generácie?
Nedostatok hardvéru tiež znamená, že opravy kontroly rozsahu ioctl sú pravdepodobne relevantnejšie pre kohokoľvek, kto používa diskety vo virtuálnom prostredí.
Okrem toho by sa dalo tvrdiť, že vďaka svojej otvorenosti je Linux stále operačným systémom, ktorý si vyberú ľudia, ktorí chcú experimentovať na zariadeniach považovaných za zastarané.