말초적인 드라이버는 가능합니다.
core 에 속하는... 예를 들면 DMA 컨트롤러, USB 칩셋... 드라이버들은 micro kernel 에서도 불가능하거나 아주 어렵고 제한적입니다. 어떻게 간신히 구현해도 user mode 의 장점을 하나도 살리지 못한 반푼이 드라이버가 되더군요.
이미 framework 을 제공하고 있는 것들엔 다음과 같은 예가 있습니다.
filesystem 은 FUSE (sshfs, curl-ftpfs ...)
HID input 은 input 의 evdev (제한적인 합니다만 serio dicp. 도 일종의 user mode 드라이버)
USB 호스트 측에선 usbfs (gphoto2, sane ...)
USB 디바이스 측에선 gadgetfs (PTP-still_image_class, MTP-extended_PTP)
기본적으로...
interrupt, DMA 등의 event driven 이 아니라 poll 이나 단순한 I/O 만 할 경우라면
/proc/mem 을 통해서 CPU 가 접근할 수 있는 모든 곳에 접근할 수 있습니다.
주소가 동적이라면 /proc/iomem, /proc/ioports
혹은 각 subsystem 에서 제공하는 인터페이스(/sys/bus/pci)등을 통해 정보를 획득할 수 있습니다.
덧.
FUSE for MacOS 에 자극받아 FUSE for Windows 에 대한 논의가 있었고,
얼마전 LGPL 로 공개된 것으로는 최초의 결과물이 나왔습니다.
아직 API 가 완전히 호환되지는 않는 것 같은데 관심있는 분은 테스트 졈...
일에 치여서 이놈이 shell name extention 를 사용하는지 IFS 를 구현했는지 조차도 알아보지 못하고 있습니다.
말초적인 드라이버는
말초적인 드라이버는 가능합니다.
core 에 속하는... 예를 들면 DMA 컨트롤러, USB 칩셋... 드라이버들은 micro kernel 에서도 불가능하거나 아주 어렵고 제한적입니다. 어떻게 간신히 구현해도 user mode 의 장점을 하나도 살리지 못한 반푼이 드라이버가 되더군요.
이미 framework 을 제공하고 있는 것들엔 다음과 같은 예가 있습니다.
filesystem 은 FUSE (sshfs, curl-ftpfs ...)
HID input 은 input 의 evdev (제한적인 합니다만 serio dicp. 도 일종의 user mode 드라이버)
USB 호스트 측에선 usbfs (gphoto2, sane ...)
USB 디바이스 측에선 gadgetfs (PTP-still_image_class, MTP-extended_PTP)
기본적으로...
interrupt, DMA 등의 event driven 이 아니라 poll 이나 단순한 I/O 만 할 경우라면
/proc/mem 을 통해서 CPU 가 접근할 수 있는 모든 곳에 접근할 수 있습니다.
주소가 동적이라면 /proc/iomem, /proc/ioports
혹은 각 subsystem 에서 제공하는 인터페이스(/sys/bus/pci)등을 통해 정보를 획득할 수 있습니다.
덧.
FUSE for MacOS 에 자극받아 FUSE for Windows 에 대한 논의가 있었고,
얼마전 LGPL 로 공개된 것으로는 최초의 결과물이 나왔습니다.
아직 API 가 완전히 호환되지는 않는 것 같은데 관심있는 분은 테스트 졈...
일에 치여서 이놈이 shell name extention 를 사용하는지 IFS 를 구현했는지 조차도 알아보지 못하고 있습니다.
OTL
윈두우용 userspace file
윈두우용 userspace file system 이라면 dokan이 잇습니다.
http://dokan-dev.net/en/download
제작자가 자신의 라이브러리로 만든 sshfs를 사용해 봤는데, 잘돌아 가더군요 ^^
답변 감사드립니다.
저번에도 bushi 님께서 답변 해주신 거 같은데 번번히 감사드립니다. (--)(__)
댓글 달기