글
(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
'L inux > Device Driver' 카테고리의 다른 글
블록 디바이스 / 네트워크 디바이스 (0) | 2011.09.28 |
---|---|
문자 디바이스 (0) | 2011.09.28 |
인터페이스 정보 얻기 (0) | 2011.04.14 |
ioperm() - 포트의 입출력 허가권 설정 / inb, outb (0) | 2011.04.12 |
mknod() - 디바이스 파일 생성 (0) | 2011.04.04 |
RECENT COMMENT