Un coup d’œil alentours permet, dans une certaine mesure, de comprendre cette note d’information. En effet, il suffit d’observer que la plupart des ordinateurs portables et même des desktops mis sur le marché de nos jours le sont sans lecteur de disquettes. « Le matériel de ce type est de plus en plus difficile à trouver. Celui qui est encore disponible sur les étals est basé sur l’USB. Du coup, le pilote original n’est plus sollicité », note Torvalds.
Il n’y a donc plus de mainteneur pour le pilote du contrôleur de lecteurs de disquettes sous Linux ; du moins, pour le moment puisque Linus en profite pour lancer un appel à des tiers intéressés. Néanmoins, le driver demeure disponible, ce, pour assurer la prise en charge des machines virtuelles qui s’appuient encore sur lui. À la réalité, c’est la nécessité de continuer à assurer ce volet qui a valu au code source du pilote l’affection d’un mainteneur jusqu’à ce jour. Le fait est que la virtualisation du lecteur de disquettes soulève des problèmes qui ne se posent pas avec la version matérielle.
« Le lecteur de disquettes matériel est trop lent pour déclencher des situations d’accès concurrent. À contrario, le lecteur de disquettes virtualisé en amène tout un tas en surface parce que beaucoup plus rapide », souligne Jiri Kosina dans une publication parue il y a 9 ans. Le code source dudit pilote est disponible pour les développeurs désireux de rentrer dans les secrets de la prise en charge des lecteurs de disquettes sous Linux et d’apporter leur contribution si nécessaire.
Code C : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | drivers/block/floppy.c raw_cmd->kernel_data = floppy_track_buffer; raw_cmd->length = 4 * F_SECT_PER_TRACK; if (!F_SECT_PER_TRACK) return; /* allow for about 30ms for data transport per track */ 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; /* sanity checking for parameters. */ if (g->sect <= 0 || g->head <= 0 || if ((int)g->sect <= 0 || (int)g->head <= 0 || /* check for overflow in max_sector */ (int)(g->sect * g->head) <= 0 || /* check for zero in F_SECT_PER_TRACK */ (unsigned char)((g->sect << 2) >> FD_SIZECODE(g)) == 0 || g->track <= 0 || g->track > UDP->tracks >> STRETCH(g) || /* check if reserved bits are set */ (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(floppy_type); size_t i = 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 true; } 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 SUPBOUND(size, strlen((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; |
Les disquettes constituent un part essentielle de l’histoire de l’informatique, mais il faut avouer qu’elle font partie de l’histoire. Mais, le souligner soulève un questionnement : n’est-ce pas une entorse aux générations futures d’envoyer aux oubliettes du matériel (et les artifices logiciels de prise en charge) au motif de ce qu’il est dépassé ? En sus, on pourrait arguer que de par son ouverture Linux reste le système d’exploitation de choix pour les personnes désireuses d’expérimenter sur du matériel considéré comme vétuste.
Source : Commit
Et vous ?
Que pensez-vous de cette décision ?
Voir aussi :
Si Linux a de la peine à s'imposer sur le desktop c'est à cause de la fragmentation de l'écosystème, d'après Linus Torvalds
Pour Linus Torvalds, ARM ne gagnera pas la concurrence sur le marché des serveurs à cause du niveau de fragmentation élevé et d'autres raisons
En 2016, Linus Torvalds était payé 1,6 M$ par la Fondation Linux, soit près de 3 fois plus que le directeur exécutif de l'organisation
Linus Torvalds a publié la version 5.2 du noyau Linux avec une nouvelle API pour le montage de systèmes de fichiers