저 하늘의 구름처럼~

devfs란 무엇인가? 본문

Embedded System

devfs란 무엇인가?

강백호v 2009. 5. 7. 22:35

devfs 파일 시스템에서는 mknod로 만들어야 하는 디바이스 파일을 디바이스 드라이버가 자동으로 만들어준다.  응용 프로그램에서 디바이스 드라이버를 사용하려면 디바이스 파일이 있어야하는데, 어떤 디바이스들이 커널에서 사용 될지 모르기 때문에, 미리 많은 수의 디바이스 파일을 포함 시키게되었는데, 그렇게 되면 사용자가 다루고자 하는 디바이스 드라이버와 연관된 디바이스 파일을 알고 싶은 경우에,쓰지도 않는 디바이스들 때문에 검색이 어려워지는 문제가 발생한다. 그래서 커널 개발자들은 드바이스 드라이버에서 디바이스 파일을 제공해주는 방법을 고안하여, 디바이스 드라이버에서 제공하는 디바이스 파일을 다루는 파일 시스템을 devfs라 한다.  디바이스 드라이버는 devfs 파일 시스템을 이용해서 동작 중인 디바이스를 제어할 수 있는 디바이스 파일을 생성하고, 응용 프로그램은 이 devfs파일 시스템에 마운트된 디렉토리에 접근함으로써 디바이스를 다룬다.
이러한 devfs 파일 시스템은 오직 존재하는 device들만을 보여준다. /dev안에서서 다른 이름으로 사용된다. device 이름에 유연성이 없고, dynamic한 major,minor  넘버 할당이 허락되지 않는다.
device naming 정책이 커널 메모리 안에 있어야하며, 더 이상 필요하지 않을때도 커널의 ram안에 영원히 존재 한다는 단점 또한 존재한다.
devfs 파일 시스템은 커널 2.6.18 버전에서는 완전히 제거 되었다.

참고 문헌 : 리눅스 디바이스 드라이버 - 유영창 저