Linus Torvalds结束了对软驱驱动程序的支持

软盘驱动器

1991年,Linus Torvalds创建Linux时,他使用的计算机和当时的大多数计算机一样,都配备了软盘驱动器。而现在,对软盘驱动器的支持已经终止。这位著名开源操作系统的创建者在最近的一篇博文中宣布,将停止对软盘驱动器驱动程序的维护。

扫一眼可以在某种程度上了解此信息说明。 实际上,足以注意到当今市场上出售的大多数笔记本电脑甚至台式计算机都没有软​​盘驱动器。

“当今市场上这种类型的设备越来越难找到。 这些摊位中仍然可用的是基于USB的。 “突然不再搜索原始驱动程序,” Torvalds说。

这样一来,至少目前将不​​再有人负责维护Linux 软盘驱动程序的支持,因为 Linus 正在借此机会吸引感兴趣的第三方。

但是,该驱动程序仍然可用,以确保仍依赖该驱动程序的虚拟机得到支持。

对于不熟悉软盘的新一代人来说,我可以告诉你们,软盘是一种磁性数据存储介质,它由一张薄薄的圆形磁性柔性材料片(磁盘)组成(因此得名),封装在方形或矩形塑料外壳中。软盘曾被用于计算机中,例如:作为启动盘,将数据和信息从一台计算机传输到另一台计算机,或者仅仅用于存储和保护文件。

这些就像图片中的那些:

软盘

直到今天,仍需要继续保证已经为驾驶员的源代码赢得维护者青睐的该组件。 事实是,软盘驱动器虚拟化带来了硬件版本不会出现的问题。

“硬件软盘驱动器太慢,无法触发并发访问情况。 另一方面,虚拟化的软盘驱动器由于速度更快而浮出水面,” Jiri Kosina在9年前发表的一篇文章中说。

该驱动程序的源代码可供需要 Linux 软盘驱动器支持的开发人员使用,如有需要,还可以提供相关信息。

驱动程序/块/ floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd->长度= 4 * F_SECT_PER_TRACK; 如果(!F_SECT_PER_TRACK)返回; / *每条轨道大约需要30ms的数据传输时间* / head_shift =(F_SECT_PER_TRACK + 5)/ 6; @@ -3230,8 +3233,12 @@静态int set_geometry(无符号int cmd,结构floppy_struct * g,int cnt; / *参数的完整性检查。* / If(g-> sect <= 0 || g- > head <= 0 || if((int)g->宗派<= 0 ||(int)g-> head <= 0 || / *检查max_sector中的溢出* /(int)(g->宗派* g->头)<= 0 || / *在F_SECT_PER_TRACK中检查零* /(无符号字符)((g-> sect << 2)>> FD_SIZECODE(g))== 0 || g->轨道<= 0 || g->轨道> UDP->轨道>> STRETCH(g)|| / *检查是否设置了保留位* /(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)返回0;}静态布尔值valid_floppy_drive_params(const short autodetect [8],int native_format) (floppy_type); size_t i = 0; for(i = 0; i <8; ++ i){if((autodetect [i] <0 || autodetect [i]> = floppy_type_size)返回false;}如果(native_format < 0 || native_format> = floppy_type_size)返回false;返回t 后悔; } 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模式,unsigned int SUPBOUND( size,strlen((const char *)outparam)+1);中断;大小写FDSETDRVPRM:if(!valid_floppy_drive_params(inparam.dp.autodetect,inparam.dp.native_format))return -EINVAL; * UDP = inparam.dp;中断; case FDGETDRVPRM:@@ -3698,6 +3726,8 @@ static int compat_setdrvprm(int drive,返回-EPERM; if(copy_from_user(&v,arg,sizeof(struct compat_floppy_drive_params)))返回-EFAULT; if(!valid_floppy_drive_params (v.autodetect,v.native_format))返回-EINVAL;互斥锁(&floppy_mutex); UDP-> cmos = v.cmos; UDP-> max_dtr = v.max_dtr;

软盘是计算机发展史上不可或缺的一部分,但我们必须承认,它们也已成为历史的一部分。然而,为了强调这一点,我们不禁要问:这对后代来说难道不是一种倒退吗?

缺少硬件还意味着ioctl范围检查修复程序可能与在虚拟环境中使用软盘的任何人都更相关。

另外,可以说,由于Linux的开放性,它仍然是想要在过时的设备上进行实验的人们的首选操作系统。


在 Google 中将其添加为首选来源