IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

52PARTAGES

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-nous-la !

Avatar de walfrat
Membre émérite 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.
3  0 
Avatar de Neckara
Inactif 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 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 ?
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 expert 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 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
Responsable Arduino et Systèmes Embarqués 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 AndMax
Membre éprouvé https://www.developpez.com
Le 02/08/2019 à 23:19
Citation Envoyé par L33tige Voir le message
Dans le cas de certains flash bios sur de vieux serveurs on utilise des disquettes mais c'est pas sur que l'os soit nécessaire pour ces cas là...
L'OS démarré sur disquette qui sert à flasher de vieux systèmes est bien souvent un PC-DOS/MS-DOS ou FreeDOS, ou encore un ancienne version de Linux démarrée via LILO. J'aime l'informatique "vintage" et j'ai plus de 6 lecteurs chez moi en état de marche (condensateurs remplacés, intérieur entièrement nettoyé, parties coulissantes lubrifiées, etc...). Même avec un soin extrême apporté au matériel, il faut être conscient que ces lecteurs ont des pièces mobiles et mécaniques qui ont toutes une durée de vie limitée et que la fiabilité des supports est très loin des supports de qualité actuels.

Les OS modernes ne sont de toutes manières pas adaptés pour les machines "vétustes" qui ont besoin de disquettes (ou d'un émulateur style Gotek). Ces machines ont généralement très peu de RAM et sont incapables de tourner avec une version récente de Linux. Pour celui qui veut maintenir ce pilote, c'est toujours possible: les sources resteront disponibles, même les anciennes versions et pour celui qui voudra écrire une disquette depuis une machine moderne afin de refaire fonctionner un très vieux PC... c'est toujours possible sans ce driver, via un lecteur de disquette branché sur le port USB.

Bref, c'est du "patrimoine" qui aujourd'hui ne concerne que de rares utilisateurs qui utilisent déjà des OS plus anciens ou spécialement modifiés. Est-ce que ça doit alourdir ou rendre plus complexe la maintenance et les évolutions d'un OS moderne ? Je ne pense pas... donc bonne décision de Linus.
1  0 
Avatar de Steinvikel
Membre expert 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