Когато Линус Торвалдс създаде Linux през 1991 г., компютърът, с който работеше като тези от това ера е оборудван с флопи диск, и сега подкрепата за това приключи. Тъй като в скорошна публикация създателят на известната операционна система с отворен код съобщава за прекратяване на поддръжката на драйвери за флопи дискове.
Един поглед позволява до известна степен да разбере тази информационна бележка. Всъщност е достатъчно да се отбележи, че повечето лаптопи и дори настолни компютри, пуснати на пазара днес, нямат флопи устройство.
„Оборудване от този тип на пазара днес е все по-трудно да се намери. Този, който все още се предлага на щандовете, е базиран на USB. Изведнъж оригиналният драйвер вече не се търси “, казва Торвалдс.
С това вече няма да има някой, който да отговаря за поддържането на подкрепата за драйвера на флопи диск за Linux, Поне за моментатъй като Линус се възползва от възможността да привлече заинтересовани трети страни.
Драйверът обаче остава на разположение, за да осигури поддръжката на виртуални машини, които все още зависят от него.
За новите поколения, които не знаят за флопи дисковете или дискета Мога да ви кажа, че това е магнитен носител за съхранение на данни, образуван от тънък кръгъл лист (диск) от намагнителен и гъвкав материал (откъдето идва и името му), затворен в пластмасов капак, квадрат или правоъгълник, който се използва в компютъра, например: за диск за зареждане, за прехвърляне данни и информация от един компютър на друг или просто за съхраняване и защита на файлове.
Те са като тези на снимката:
Необходимостта да продължите да гарантирате на този компонент, който е спечелил изходния код на водача до днес. Факт е, че виртуализацията на флопи устройство създава проблеми, които не възникват при хардуерната версия.
„Хардуерното флопи устройство е твърде бавно, за да задейства ситуации на едновременен достъп. От друга страна, виртуализираното флопи устройство извежда много на повърхността, защото е много по-бързо “, казва Иржи Косина в публикация, публикувана преди 9 години.
Наличен е изходният код за този драйвер за разработчици, които искат поддръжка на флопи устройство на Linux и предоставят информация, ако е необходимо.
драйвери / block / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> дължина = 4 * F_SECT_PER_TRACK; if (! F_SECT_PER_TRACK) return; / * позволяват около 30ms за пренос на данни на песен * / head_shift = (F_SECT_PER_TRACK + 5) / 6; @@ -3230,8 +3233,12 @@ static int set_geometry (неподписан 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 * / (неподписан знак) ((g-> sect << 2) >> FD_SIZECODE (g)) == 0 || g-> track <= 0 || g-> track> 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) 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 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 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 ; случай 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 (v.autodetect, v.native_format)) return -EINVAL; mutex_lock (& floppy_mutex); UDP-> cmos = v.cmos; UDP-> max_dtr = v.max_dtr;
Флопи дисковете са съществена част от историята на компютрите, но трябва да признаем, че те са част от историята. Но, за да подчертая, възниква въпрос: не е ли това изкълчване за бъдещите поколения?
Липсата на хардуер означава също, че корекциите за проверка на обхвата на ioctl вероятно са по-подходящи за всеки, който използва флопи във виртуална среда.
Освен това може да се твърди, че поради своята отвореност Linux все още е избраната операционна система за хора, които искат да експериментират на оборудване, считано за остаряло.