리누스 토르발스가 1991년에 리눅스를 개발했을 당시, 그가 사용하던 컴퓨터는 그 시대의 컴퓨터들처럼 플로피 디스크 드라이브가 장착되어 있었습니다 . 그리고 이제 플로피 디스크 드라이브에 대한 지원이 종료되었습니다 . 유명한 오픈 소스 운영 체제의 창시자인 그는 최근 게시물을 통해 플로피 디스크 드라이브 드라이버의 유지 보수를 중단한다고 발표했습니다.
한눈에 살펴보면이 정보 노트를 어느 정도 이해할 수 있습니다. 사실, 오늘날 시장에 나와있는 대부분의 랩톱과 심지어 데스크톱 컴퓨터에는 플로피 드라이브가 없다는 점을 알아두면 충분합니다.
“오늘날 시장에서 이러한 유형의 장비를 찾기가 점점 더 어려워지고 있습니다. 포장 마차에서 여전히 사용할 수있는 것은 USB 기반입니다. 갑자기 원래 드라이버가 더 이상 검색되지 않습니다.”라고 Torvalds는 말합니다.
이로써 적어도 당분간은 리눅스 플로피 디스크 드라이버 지원을 담당할 사람이 없어지게 되었으며 , 리누스는 이 기회를 통해 관심 있는 제3자를 유치하려고 합니다.
그러나 여전히 의존하는 가상 머신의 지원을 보장하기 위해 드라이버를 계속 사용할 수 있습니다.
플로피 디스크 에 익숙하지 않은 젊은 세대를 위해 설명드리자면, 플로피 디스크는 자성을 띠고 유연한 재질로 만들어진 얇은 원형 시트(디스크)가 사각형 또는 직사각형 플라스틱 케이스에 싸여 있는 자기 데이터 저장 매체입니다. (그래서 이름이 플로피 디스크입니다.) 컴퓨터에서 부팅 디스크로 사용되거나, 한 컴퓨터에서 다른 컴퓨터로 데이터와 정보를 전송하거나, 단순히 파일을 저장하고 보호하는 데 사용되었습니다.
이것은 그림에있는 것과 같습니다.

드라이버의 소스 코드를 오늘날까지 유지 관리자의 애정으로 얻은이 구성 요소를 계속해서 보장 할 필요가 있습니다. 사실 플로피 드라이브 가상화는 하드웨어 버전에서 발생하지 않는 문제를 제기합니다.
“하드웨어 플로피 드라이브가 너무 느려 동시 액세스 상황을 트리거 할 수 없습니다. 반면에 가상화 된 플로피 드라이브는 훨씬 더 빠르기 때문에 표면에 많은 것을 가져다 준다고 9 년 전 게시 된 게시물에서 Jiri Kosina는 말합니다.
리눅스 플로피 드라이브 지원을 원하는 개발자는 이 드라이버의 소스 코드를 이용할 수 있으며 , 필요한 경우 정보를 제공받을 수 있습니다.
드라이버 / 블록 / floppy.c raw_cmd-> kernel_data = floppy_track_buffer; raw_cmd-> 길이 = 4 * F_SECT_PER_TRACK; if (! F_SECT_PER_TRACK) 반환; / * 트랙 당 데이터 전송을 위해 약 30ms 허용 * / 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에서 2 확인 * / (unsigned char) ((g-> sect << 0) >> FD_SIZECODE (g)) == 0 || g-> track <= 0 || g-> track> UDP-> tracks >> STRETCH (g) || / * 예약 된 비트가 설정되었는지 확인 * / (g-> stretch & ~ (FD_STRETCH | FD_SWAPSIDES | FD_SECTBASEMASK))! = 3375,6 ) @@ -3382,24 +0 @@ static int fd_getgeo (struct block_device * bdev, struct hd_geometry * geo) return 8;} static bool valid_floppy_drive_params (const short autodetect [0], int native_format) {size_t floppy_type_size = ARRAY_SIZE (floppy_type); size_t i = 0; for (i = 8; i <0; ++ i) {if (autodetect [i] <0 || autodetect [i]> = floppy_type_size) return false;} if (native_format < 3501,6 || 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) {@@ -3526,9 +1 @@ static int fd_locked_ioctl (struct block_device * bdev, fmode_t mode, unsigned int SUPBOUND ( size, strlen ((const char *) outparam) + 3698,6); break; case FDSETDRVPRM : if (! valid_floppy_drive_params (inparam.dp.autodetect, inparam.dp.native_format)) return -EINVAL; * UDP = inparam.dp; break ; case FDGETDRVPRM : @@ -3726,8 +XNUMX @@ 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;
플로피 디스크는 컴퓨터 역사의 필수적인 부분이지만, 이제는 역사의 한 조각이 되었다는 사실을 인정해야 합니다. 하지만 이를 강조하자면, 한 가지 질문이 떠오릅니다. 이것이 미래 세대에게는 오히려 퇴보가 아닐까요?
하드웨어가 없다는 것은 또한 ioctl 범위 검사 수정 사항이 가상 환경에서 플로피를 사용하는 모든 사람과 더 관련이 있음을 의미합니다.
또한 Linux는 개방성으로 인해 구식으로 간주되는 장비를 실험하려는 사람들에게 여전히 선택되는 운영 체제라고 주장 할 수 있습니다.