Kiedy Linus Torvalds stworzył Linuksa w 1991 roku, komputer, na którym pracował, podobnie jak komputery z tamtej epoki, był wyposażony w stację dyskietek . Teraz jednak wsparcie dla niej dobiegło końca . W niedawnym wpisie twórca słynnego systemu operacyjnego o otwartym kodzie źródłowym ogłosił zakończenie prac nad sterownikiem stacji dyskietek.
Rozejrzenie się dookoła pozwala w pewnym stopniu zrozumieć tę notatkę informacyjną. W rzeczywistości wystarczy zauważyć, że większość laptopów, a nawet komputerów stacjonarnych wprowadzanych obecnie na rynek nie ma stacji dyskietek.
„Tego typu sprzęt na rynku jest obecnie coraz trudniejszy do znalezienia. Ten, który jest nadal dostępny na straganach, jest oparty na USB. Nagle oryginalny sterownik nie jest już przeszukiwany ”- mówi Torvalds.
Dzięki temu nie będzie już nikogo, kto zajmowałby się utrzymaniem wsparcia dla sterownika dyskietek Linux, przynajmniej na razie , ponieważ Linus wykorzystuje okazję, aby przyciągnąć zainteresowane strony trzecie.
Jednak sterownik pozostaje dostępny, aby zapewnić obsługę maszyn wirtualnych, które nadal są od niego zależne.
Dla nowszych pokoleń, niezaznajomionych z dyskietkami, mogę powiedzieć, że jest to magnetyczny nośnik danych składający się z cienkiej, okrągłej płytki (dysku) z namagnesowanego i elastycznego materiału (stąd jego nazwa), zamkniętej w kwadratowej lub prostokątnej obudowie z tworzywa sztucznego, która była używana w komputerach, na przykład: jako dysk rozruchowy, do przesyłania danych i informacji z jednego komputera do drugiego lub po prostu do przechowywania i zabezpieczania plików.
Oto te na obrazku:

Potrzeba dalszego gwarantowania tego komponentu, który zyskał przychylność konserwatora kodu źródłowego sterownika do dnia dzisiejszego. Faktem jest, że wirtualizacja stacji dyskietek stwarza problemy, które nie pojawiają się w przypadku wersji sprzętowej.
„Stacja dyskietek sprzętowych jest zbyt wolna, aby wywołać sytuacje równoczesnego dostępu. Z drugiej strony zwirtualizowany napęd dyskietek wiele wnosi na powierzchnię, ponieważ jest znacznie szybszy ”- mówi Jiri Kosina w poście opublikowanym 9 lat temu.
Kod źródłowy tego sterownika jest dostępny dla programistów, którzy chcą korzystać z obsługi stacji dyskietek w systemie Linux, i w razie potrzeby mogą udzielić im niezbędnych informacji.
drivers / block / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> length = 4 * F_SECT_PER_TRACK; if (! F_SECT_PER_TRACK) powrót; / * pozwalają na około 30 ms na transport danych na ścieżkę * / 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; / * sprawdzenie poprawności parametrów. * / If (g-> sect <= 0 || g- > head <= 0 || if ((int) g-> sect <= 0 || (int) g-> head <= 0 || / * sprawdź przepełnienie w max_sector * / (int) (g-> sect) * g-> head) <= 0 || / * sprawdź zero w F_SECT_PER_TRACK * / (unsigned char) ((g-> sect << 2) >> FD_SIZECODE (g)) == 0 || g-> track <= 0 || g-> track> UDP-> ścieżki >> STRETCH (g) || / * sprawdź, czy ustawione są zarezerwowane bity * / (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 = ARYYRA (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 żałować; } 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, tryb fmode_t, 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 ; sprawa FDGETDRVPRM: @@ -3698,6 +3726,8 @@ static int Compatible_setdrvprm (int dysk, return -EPERM; if (copy_from_user (& v, arg, sizeof (struct compliance_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;
Dyskietki są nieodłączną częścią historii komputerów, ale trzeba przyznać, że są częścią historii. Aby to jednak podkreślić, nasuwa się pytanie: czy nie jest to krok wstecz dla przyszłych pokoleń?
Brak sprzętu oznacza również, że poprawki sprawdzania zasięgu ioctl są prawdopodobnie bardziej odpowiednie dla każdego, kto używa dyskietek w środowisku wirtualnym.
Ponadto można by argumentować, że ze względu na swoją otwartość Linux nadal jest systemem operacyjnym wybieranym przez ludzi, którzy chcą eksperymentować na sprzęcie uważanym za przestarzały.