Когда Линус Торвальдс создал Linux в 1991 году, компьютер, на котором он работал, как и компьютеры той эпохи, был оснащен дисководом для гибких дисков . И теперь поддержка этого устройства подошла к концу . В недавнем сообщении создатель знаменитой операционной системы с открытым исходным кодом объявил о прекращении поддержки драйвера для дисковода гибких дисков.
Взгляд вокруг позволяет до некоторой степени понять эту информационную записку. Фактически, достаточно отметить, что большинство ноутбуков и даже настольных компьютеров, представленных сегодня на рынке, не имеют дисковода для гибких дисков.
«Оборудование такого типа на рынке сегодня найти все труднее. Тот, который все еще доступен в прилавках, основан на USB. Внезапно первоначальный драйвер больше не обыскивается », - говорит Торвальдс.
В связи с этим, по крайней мере на данный момент , никто больше не будет отвечать за поддержку драйвера дискет для Linux, поскольку Линус использует эту возможность для привлечения заинтересованных сторонних разработчиков.
Однако драйвер остается доступным для обеспечения поддержки виртуальных машин, которые все еще зависят от него.
Для новых поколений, незнакомых с дискетами, могу сказать, что это магнитный носитель данных , состоящий из тонкого круглого листа (диска) из намагничиваемого и гибкого материала (отсюда и его название), заключенного в квадратный или прямоугольный пластиковый корпус. Он использовался в компьютерах, например, в качестве загрузочного диска, для передачи данных и информации с одного компьютера на другой или просто для хранения и защиты файлов.
Они такие, как на картинке:

Необходимость продолжать гарантировать, что этот компонент, который заслужил исходный код драйвера, по сей день пользуется вниманием специалистов по сопровождению. Дело в том, что виртуализация дисковода гибких дисков создает проблемы, которые не возникают с аппаратной версией.
«Аппаратный дисковод для гибких дисков работает слишком медленно, чтобы запускать ситуации одновременного доступа. С другой стороны, виртуализированный дисковод гибких дисков многое открывает, потому что он намного быстрее », - говорит Иржи Косина в сообщении, опубликованном 9 лет назад.
Исходный код этого драйвера доступен разработчикам, которым необходима поддержка дисководов для дискет в Linux, и которые могут предоставить необходимую информацию.
драйверы / блок / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> length = 4 * F_SECT_PER_TRACK; если (! F_SECT_PER_TRACK) возврат; / * позволяет примерно 30 мсек для передачи данных на дорожку * / 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; / * проверка корректности параметров. * / If (g-> sect <= 0 || g-> head <= 0 || if ((int) g-> sect <= 0 || (int) g-> head <= 0 || / * проверка переполнения в max_sector * / (int) (g-> sect * g-> head) <= 0 || / * проверка нуля в F_SECT_PER_TRACK * / (unsigned char) ((g-> sect << 2) >> FD_SIZECODE (g)) == 0 || g-> track <= 0 | | g-> track> UDP-> track >> 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) return 0;} static bool valid_floppy_drive_params (const short autodetect [8], int native_format) {size_t floppy_type_size = ARRAY_SIZE = ARRAY_SIZE = ARRAY_SIZE = ARRAY_SIZE (размер_SIZE) = 0; for (i = 0; i = floppy_type_size) return false;} if (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) {@@ -8 +0 @@ static int fd_locked_ioctl (struct block_device * bdev, fmode_t mode, unsigned int SUPBOUND (size, strlen (const char *) outparam) + 0); break; case FDSETDRVPRM: if (! valid_floppy_drive_params (inparam.dp.autodetect, inparam.dp.native_format)) return -EINVAL; * UDP = inparam.dp; break; case FDGETDRVPRM: @@ -3501,6 +3526,9 @@ 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.autodetect, v.autodetect, v. native_format)) return -EINVAL; mutex_lock (& floppy_mutex); UDP-> cmos = v.cmos; UDP-> max_dtr = v.max_dtr;
Гибкие диски — неотъемлемая часть истории компьютеров, но мы должны признать, что они — часть истории. Однако, чтобы подчеркнуть это, возникает вопрос: не является ли это шагом назад для будущих поколений?
Отсутствие оборудования также означает, что исправления проверки диапазона ioctl, вероятно, более актуальны для всех, кто использует дискеты в виртуальной среде.
Более того, можно утверждать, что из-за своей открытости Linux по-прежнему является предпочтительной операционной системой для людей, которые хотят экспериментировать с оборудованием, которое считается устаревшим.