Quando Linus Torvalds creò Linux nel 1991, il computer su cui lavorava, come quelli dell'epoca , era dotato di un'unità floppy disk . E ora il supporto per essa è giunto al termine . In un recente post, il creatore del famoso sistema operativo open source ha annunciato l'interruzione della manutenzione del driver per l'unità floppy disk.
Uno sguardo intorno consente, in una certa misura, di comprendere questa nota informativa. In effetti, è sufficiente notare che la maggior parte dei laptop e persino dei computer desktop immessi oggi sul mercato non hanno un'unità floppy.
“Apparecchiature di questo tipo oggi sul mercato sono sempre più difficili da trovare. Quello che è ancora disponibile in platea è basato su USB. All'improvviso il driver originale non viene più cercato ", afferma Torvalds.
Con questa decisione, non ci sarà più nessuno incaricato di mantenere il supporto per il driver del floppy disk di Linux, almeno per il momento , dato che Linus coglie l'occasione per attirare terze parti interessate.
Tuttavia, il driver rimane disponibile per garantire il supporto delle macchine virtuali che ancora dipendono da esso.
Per le nuove generazioni che non hanno familiarità con i floppy disk, posso spiegare che si tratta di un supporto di memorizzazione dati magnetico , costituito da un sottile foglio circolare (disco) di materiale magnetizzabile e flessibile (da cui il nome), racchiuso in un involucro di plastica quadrato o rettangolare, utilizzato nei computer, ad esempio: come disco di avvio, per trasferire dati e informazioni da un computer all'altro, o semplicemente per archiviare e proteggere file.
Questi sono come quelli nella foto:

La necessità di continuare a garantire questo componente che ha fatto guadagnare al codice sorgente del guidatore l'affetto di un manutentore fino ad oggi. Il fatto è che la virtualizzazione delle unità floppy pone problemi che non si presentano con la versione hardware.
“L'unità floppy hardware è troppo lenta per attivare situazioni di accesso simultaneo. D'altra parte, l'unità floppy virtualizzata porta molto in superficie perché è molto più veloce ", afferma Jiri Kosina in un post pubblicato 9 anni fa.
Il codice sorgente di questo driver è disponibile per gli sviluppatori che desiderano il supporto per le unità floppy su Linux e, se necessario, possiamo fornire ulteriori informazioni.
drivers / block / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> length = 4 * F_SECT_PER_TRACK; se (! F_SECT_PER_TRACK) ritorna; / * consente circa 30 ms per il trasporto dati per traccia * / 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; / * controllo integrità dei parametri. * / If (g-> sect <= 0 || g-> head <= 0 || if ((int) g-> sect <= 0 || (int) g-> head <= 0 || / * controlla l'overflow in max_sector * / (int) (g-> sect * g-> head) <= 0 || / * controlla lo zero in F_SECT_PER_TRACK * / (unsigned char) ((g-> sect << 2) >> FD_SIZECODE (g)) == 0 || g-> track <= 0 | | g-> track> UDP-> tracks >> STRETCH (g) || / * controlla se i bit riservati sono impostati * / (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_Stype_size = ARRAY_Stype = 0 ; for (i = 0; i <8; ++ i) {if (autodetect [i] <0 || autodetect [i]> = floppy_type_size) return false;} if (native_format <0 || native_format> = floppy_type_size) return false; return t rue; } static int fd_locked_ioctl (struct block_device * bdev, fmode_t mode, unsigned int cmd, unsigned long param) {@@ -3501,6 +3526,9 @@ static int fd_locked_ioctl (struct block_device * bdev, fmode_t mode, unsigned int SUPlenBOUND (size, str (const char *) outparam) + 1); break; case FDSETDRVPRM: if (! valid_floppy_drive_params (inparam.dp.autodetect, inparam.dp.native_format)) return -EINVAL; * UDP = inparam.dp; break; case FDGETDRVPRM: @@ -3698,6 +3726,8 @@ 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;
I floppy disk sono una parte essenziale della storia dell'informatica, ma dobbiamo ammettere che appartengono ormai al passato. Tuttavia, per sottolineare questo, sorge spontanea una domanda: non rappresentano forse un passo indietro per le generazioni future?
La mancanza di hardware significa anche che le correzioni per il controllo dell'intervallo ioctl sono probabilmente più rilevanti per chiunque usi i floppy in un ambiente virtuale.
Inoltre, si potrebbe sostenere che, a causa della sua apertura, Linux è ancora il sistema operativo preferito da chi vuole sperimentare su apparecchiature considerate obsolete.