(1) 디바이스 드라이버의 이해
: 디바이스 드라이버는 컴퓨터 시스템에 부착되어 있는 여러 디바이스들을 제어하기 위해 사용되는 프로그램이다.

- 임베디드 시스템을 개발의 경우 시스템에 장착되는 장치들을 사용하기 위해 장치들의 드라이버를 직접 만들어서 커널에 포함시켜야 한다.

- 디바이스 드라이버는 시스템콜 인터페이스(System Call Interface)와 하드웨어 제어(Hardware Control) 사이에 위치한다.

- 디바이스 드라이버는 응용프로그램이 디바이스 드라이버를 통해 각종 주변 하드웨어 장치에 접근할 수 있도록 한다.

- 디바이스 드라이버는 크게 문자|블록|네트워크 디바이스 드라이버로 나뉜다.

- 디바이스 파일은 해당 H/W로 데이터를 보내고 H/W로 부터 테이터를 읽기위해 사용된다.

  ○ 디바이스 파일은 일종의 정보파일이다.
  ○ /dev 디렉토리 하위에 존재한다.

  ○ IDE HDD는 hd (첫번째 HDD는 /dev/hda, 두번째 HDD는 /dev/hdb 로 나타낸다.)
  ○ SCSI HDD는 sd( /dev/sda)
  ○ 리눅스 콘솔 화면은 console ( /dev/console)
  ○ 가상 콘솔은 tty ( /dev/tty)
  ○ 가상 터미널은 pts ( /dev/pts/0)
  ○ 이더넷은 eth(단지 커널에서 네트워크 디바이스를 식별하려고 붙은 이름(eth0, eth1)과 같은 것으로 파일로 존재하지 않는다.)


                crw-rw-rw-    1    root    tty       4,    0    Jul    15  /dev/tty0
                brw-rw----    1    root    disk    3,    0    mar   13 /dev/

- 맨 앞의 c,b 는 타입
- 뒤의 4,3 은 주번호 : 디바이스드라이버를 찾을때 사용(유형)
- 그 바로 뒤의 0은 부번호 : 같은유형의 디바이스 드라이버를 구분
- 주번호와 부번호는 inode에 기록된다 , (inode i_rdev 변수의 상위 8bit에는 주번호가, 하위 8bit에는 부번호가 저장)
- 새로운 디바이스를 리눅스에 추가시 새로운 주번호가 생긴다.



※ 출처 : http://idkkangjs.blog.me/30091117058

by 민트앤라떼 2011. 9. 28. 13:57