Tanenbaum의 최신 운영 체제,
모든 운영 체제에는 I/O 장치를 관리하는 I/O 하위 시스템이 있습니다. 일부 I/O 소프트웨어는 장치 독립적즉, 다수 또는 모든 I/O 장치에 동일하게 적용됩니다. 장치 드라이버와 같은 다른 부분은 다음과 같습니다. 특정 I/O 장치에만 해당.
I/O 소프트웨어 시스템의 계층 다이어그램도 있습니다.
아래 두 사진에는리눅스IO 하위 시스템, 장치 독립적 구성 요소와 장치 종속 구성 요소 사이에 선을 그릴 수 있습니까? 즉, 어떤 구성 요소가 장치 종속적이며 어떤 구성 요소가 장치 독립적입니까? 내 생각에는 "드라이버"는 장치에 따라 다르고 "VFS"는 장치에 독립적이라고 생각합니다. 하지만 다른 구성 요소에 대해서는 잘 모르겠습니다.
같은 책에서:
Bovet의 Linux 커널 이해 2005에도 다음 기사가 있습니다.
답변1
첫 번째 Linux 다이어그램에서 "장치 드라이버" 섹션 위의 Bovet 다이어그램에서도 마찬가지입니다.
운영체제를 작성할 때, 더 많은 장치를 깔끔하게 추가할 수 있도록 장치 관련 부분을 최대한 분리하고 싶습니다. Linux의 경우 "디스크 장치 드라이버"(또는 "네트워크 카드", "WiFi 카드" 등)는수업객체 지향 프로그래밍의 의미에서 이는 각 장치 유형에 대한 클래스(예: "Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller")에 대한 클래스로 더욱 세분화되어 다중 클래스로 인스턴스화될 수 있습니다. 필요에 따라 동일한(또는 충분히 유사한) 장치의 사본. 예를 들어, 누구의물체경우에 따라 장치별 기능은 WiFi 관리 도메인 및 제한 사항(원래 각 드라이버의 일부임)의 전체 복잡한 처리와 같은 상위 수준 하위 시스템으로 추상화됩니다. USB를 사용하고 USB 디스크를 통한 SCSI 또는 IP를 통한 SCSI(광섬유 네트워크 인터페이스를 통해 실행됨)로 처리되는 USB 썸 드라이브와 같은 장치 계층이 있는 경우도 있습니다.
간단히 말해서:이 깔끔한 분리("운영 체제" 텍스트에서 볼 수 있듯이 ) 는 단지매우대략적인 첫 번째 근사치에 따르면 현실은 훨씬 더 흥미로운 혼란입니다.