BLOG ARTICLE 디바이스 드라이버 | 1 ARTICLE FOUND

  1. 2009.11.18 linux device driver 1

linux device driver 1

os/LINUX 2009. 11. 18. 03:21
디바이스 드라이버의 가장 기본적인 목적 중의 하나는 사용자의 프로그램을 커널의 중요한 데이터 구조나 하드웨어 장치에 직접 접근하지 못하도록 따로 분리시키는 것이다. 가령 사용자 프로그램에서 하드 디스크에 데이터를 쓰려고 할 때 하드 디스크의 섹터 크기가 512바이트이니 1024바이트인지 등을 신경쓰지 않아도 된다는 것이다. 사용자는 단순히 파일을 열어서 쓰기 명령을 내리면 된다. 그러면 디바이스 드라이버가 자세한 세부 내용을 모두 처리하고, 사용자에게는 복잡함과 하드웨어 디바이스를 프로그래밍하는 어려운 과정을 숨긴다. 즉, 유명한 UNIX/LINUX 규약에 따라서 모든 것을 하나의 파일로 다룰 수 있는 기반을 제공하는 것이다.

디바이스 드라이버(device driver), 로드 가능한 커널 모듈(LKM:Loadable Kernel Module) 그리고 모듈이라는 각각의 용어들이 모두 '로드 가능한 커널 디바이스 드라이버 모듈'을 가리킨다.

리눅스에서 디바이스 드라이버는 넓은 의미에서 두 가지로 나눌 수 있다. 캐릭터 디바이스와 블록 디바이스가 그것이다. 캐릭터 디바이스는 순차적인 데이터를 직렬 스트림 형식으로 주고 받는 장치라고 볼 수 있다. 캐릭터 디바이스의 예로는 시리얼 포트나 키보드 등을 들 수 있다. 블록 디바이스는 데이터를 블록 단위로 읽거나 쓸 수 있고, 해당 장치의 임의의 위치에 접근할 수 있는 능력을 가지는 장치로 특징지을 수 있다. 블록 디바이스의 예로는 하드 드라이브나 플로피 드라이브를 들 수 있다.
AND