/dev

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page /dev and the translation is 57% complete.
Outdated translations are marked like this.

/dev 디렉터리

대부분의 리눅스 사용자는 /dev/sda1을 첫 번째 주 하드 드라이브의 처음 분할 영역을 가리킨다고 이해합니다. 참 쉽죠?

그런데 USB, IEEE 1394, 탈부착 가능 PCI 등의 탈부착 가능 장치를 고려해보죠. 어떤 장치가 첫 번째 장치일까요? 얼마나 오래동안 첫 번째 장치일까요? 처음 장치를 떼어냈을 때, 다른 장치에 이름을 어떻게 붙일까요? 작동 중이었던 하드웨어와의 상호 작용은 어떻게 될까요? 누군가가 (마침 첫 번째 프린터에 해당하던)고성능 레이저 프린터의 전원 플러그를 뽑기로 해서 인쇄 작업이 거의 맛이 간 매트릭스 프린터로 옮겨간다면 재밌는 일이 되지 않을까요?

장치 관리자에 들어가보겠습니다. (udeveudev 같은) 최신 장치 관리자는 반드시:

  • 사용자 영역에서 실행됩니다.
  • 동적으로 장치 파일en을 만들고 제거합니다.
  • 일관성 있는 이름을 제공합니다.
  • 사용자 영역 프로그램 인터페이스(API)를 제공합니다.

항상 변경은 장치 구조내에서 일어나며 커널에서는 udev에서 받을 uevent를 쏴보냅니다. udev/etc/udev/rules.d, /run/udev/rules.d, /lib/udev/rules.d 디렉터리에 선언한 규칙을 따릅니다. uevent에 들어간 정보를 기반으로 규칙 또는 실행이 필요한 규칙을 찾고 요구한 동작을 수행합니다. 이 동작은 장치 파일을 만들거나 삭제하는 행위가 될 수 있겠지만 펌웨어 파일을 커널 메모리로 불러오는 작업을 실행하는 동작이 될 수도 있습니다.