Linus Torvalds sonne la fin du support du pilote de lecteurs de disquettes
Car « ce matériel est désormais très rare »

Le , par Patrick Ruiz

16PARTAGES

15  0 
Le temps passe et les choses changent. Lorsque Linus Torvalds créait Linux en 1991, c’était sur un 386 équipé d’un lecteur de disquettes. En 2012, il a fait ses adieux au PC AT. C’est désormais au tour des lecteurs de disquettes. Dans une publication parue il y a peu, le créateur du célèbre système d’exploitation open source annonce l’arrêt du maintien du pilote dédié. Motif : Jiri Kosina – le mainteneur – ne dispose plus de matériel en état de fonctionnement pour poursuivre avec sa tâche.

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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Neckara
Expert éminent sénior https://www.developpez.com
Le 01/08/2019 à 21:39
Supprimer le support des disquettes ? Mais est-il devenu complètement fou ???

Comment on va s'amuser nous après (sautez à 0'57) ?

3  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 02/08/2019 à 9:17
Bonjour,

De ce que j'ai lu, non il n'y a pas besoin du pilote de lecteur disquette pour un lecteur en USB. En effet, le rôle du pilote, c'est d'envoyer des ordres pour actionner la mécanique, pour lire tel ou tel secteur. J'imagine, qu'en USB, la partie "actionnage" de mécanique se trouve dans le lecteur en lui même et seule une interface simplifiée est exposée par l'USB.

Après, le support du i386 a déjà été retiré. Le support du x86 devrait aussi disparaître à termes. Ce qui veut dire, que pour les vieilles machines/vieux lecteurs, il faut un vieux noyau. Cela semble logique et aussi, inévitable.
3  0 
Avatar de 23JFK
Membre expérimenté https://www.developpez.com
Le 01/08/2019 à 18:42
Le lecteur de disquettes intégré en IDE ça n'existe plus, mais les lecteurs USB de disquettes, cartouche ZIP et autres sont encore commercialisés pour lire les supports associés.
3  1 
Avatar de walfrat
Membre actif https://www.developpez.com
Le 01/08/2019 à 21:13
Pour moi cela suis aussi la logique d'alléger le code de Linux pour la maintenabilité et la sécurité.

Pour ceux qui voudront exposer du vieux matériels, ils pourront simplement prendre des versions plus anciennes de l'OS (et donc du noyau).

Je ne vois pas l'intérêt de vouloir par exemple un Ubuntu 20+ avec un lecteur de disquette.
2  0 
Avatar de StraToN
Membre actif https://www.developpez.com
Le 02/08/2019 à 9:17
Quid de l'icône de sauvegarde qui représente une disquette, désormais bien célèbre et largement utilisée ?
2  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/08/2019 à 18:49
Sauf que les disquettes, ça devient introuvable.

Tu peux encore en trouver sur Amazon, et d'ailleurs la boite de 10 disquettes y coute plus cher qu'un lecteur de disquettes USB.

Le seul interet actuel des disquettes reste ce qui est exposé l'utilisation dans le cadre de VM. Si tu as encore des données sur disquette, si tu arrives à encore les lire, tu as de la chance. C'est un peu comme un vieux ticket de Métro, forte chance qu'il soit démagnétisé.
1  0 
Avatar de f-leb
Rédacteur/Modérateur https://www.developpez.com
Le 01/08/2019 à 23:30
Le tout piloté avec 2 cartes Arduino, le lecteur de disquette redevient un objet utile !
1  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 02/08/2019 à 11:20
De ce que j'ai lu, non il n'y a pas besoin du pilote de lecteur disquette pour un lecteur en USB
C'est comme pour les claviers, émulation par le BIOS et accès direct aux ports matériels.
1  0 
Avatar de Steinvikel
Membre expérimenté https://www.developpez.com
Le 01/08/2019 à 18:53
Le pilote pour lire des disquettes reste nécessaire s'il est branché par USB, ou bien seulement via les ports internes de la carte-mère ?
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/08/2019 à 19:20
Je pense qu'il reste nécessaire.
0  0 
Responsable bénévole de la rubrique Linux : chrtophe -

Partenaire : Hébergement Web