1. 이것은 무엇인가?

Devfs는 루트 파일시스템에서 "실제" 캐릭터 및 특수 블럭디바이스를 취급하는 것에 대한 다른 방법이다. 커널 디바이스 드라이버는 메이저/마이너 번호에 의해 등록되는 것보다 더 나은 이름으로 디바이스를 등록할수 있다. 이 디바이스들은 그 드라이버에 지정된 소유권과 보호권한을 가진 상태로 자동적으로 devfs에 나타날 것이다. 데몬(devfsd)은 이러한 기본값을 덮어써서 사용할 수 있다. Devfs는 커널 2.3.46 이후 버전부터 사용할수 있다.

참고: devfs는 옵션이라는 것을 명심하자. 만약 예전방식의 disc-based 디바이스 노드를 선호한다면, 간단하게 CONFIG_DEVFS_FS=n (기본값)라고 두면 된다. 이 경우에, 아무것도 바뀌지 않는다. 또한 devfs를 활성화시켰다면 기본값은 예전의 디바이스 이름과 완벽하게 호환되도록 관리된다는 것을 기억하라.

devfs를 바라보는데에 두가지 관점이 있다 : 하나는 디바이스 네임스페이스가 단지 마운트된 파일시스템처럼 네임스페이스라는 것에 기초한 것이다. 다른 하나는 그 디바이스 네임스페이스의 관점을 제공하는 파일시스템의 코드에 대한 관점이다. 내(원저자)가 이런 구분을 만든 이유는 devfs는 각 마운트마다 같은 디바이스 네임스페이스를 보여주면서 여러번 마운트 될수 있기 때문이다.

devfs에 대한 댓가는 커널코드의 크기와 메모리 사용량이 소량 증가하는 것이다. 약 7페이지의 코드(__init 섹션에서)와 그 네임스페이스에서 각 개체에 대하여 72바이트의 메모리가 필요하다. 보통의 시스템은 수백개의 디바이스 개체를 가지며, 이것은 좀더 많은 페이지를 필요로 한다. ramdisc 에 /dev 를 넣는 방법과 이것을 비교해 보라.

일반적인 머신에서, 그 댓가는 0.2 퍼센트 이하이다. 64메가의 램을 가지는 보통의 시스템에서는 0.1 퍼센트 이하이다. devfs 에 대해 "bloatware"라는 비난은 정당성이 없다.