도와주세요!!
글 수 15,339
2003.12.03 12:48:47 (*.186.47.173)
6677
캐랙터 디바이스 드라이버 또는 문자형 디바이스 드라이버라고 하죠..
임베디드 리눅스에서 가장 많이 사용되는 형태인데
다른 디바이스 드라이버와 달리 응용 프로그램에서 장치파일에 저수준 입
출력 파일 함수 ( open,close,read,write )를 수행하면
이에 대응하는 함수들이 호출되는 형태라고 보시는 것이 가장 무난할것
같네여
즉 open 을 수행하면 디바이스 드라이버 안에 이에 해당하는 open이
수행되고
read를 수행하면 디바이스 드라이버안에 이에 해당하는 read 함수가
수행되는 구조죠
블록 디바이스 드라이버나 네트워크 디바이스 드라이버는 응용 프로그램에서
직접 사용되지 않고 커널에서 주로 이용됩니다.
예를 들면 우리가 특정 파일을 읽는다고 하면
read 함수를 사용하죠 이것이 커널 내부의 VFS 층을 통과하면서ㅓ
파일에 연결된 블럭 디바이스 드라이버가 구동되는 것이죠
네트워크 디바이스 드라이버도 비슷한데 소켓 함수중
recv 와 같은 함수를 사용하면
커널의 네트워크 구현층이 해당 이더넷의 네트워크 드라이버를
구동하는 것이죠
대충 이런 개념으로 보시면 될듯 싶습니다.
임베디드 리눅스에서 가장 많이 사용되는 형태인데
다른 디바이스 드라이버와 달리 응용 프로그램에서 장치파일에 저수준 입
출력 파일 함수 ( open,close,read,write )를 수행하면
이에 대응하는 함수들이 호출되는 형태라고 보시는 것이 가장 무난할것
같네여
즉 open 을 수행하면 디바이스 드라이버 안에 이에 해당하는 open이
수행되고
read를 수행하면 디바이스 드라이버안에 이에 해당하는 read 함수가
수행되는 구조죠
블록 디바이스 드라이버나 네트워크 디바이스 드라이버는 응용 프로그램에서
직접 사용되지 않고 커널에서 주로 이용됩니다.
예를 들면 우리가 특정 파일을 읽는다고 하면
read 함수를 사용하죠 이것이 커널 내부의 VFS 층을 통과하면서ㅓ
파일에 연결된 블럭 디바이스 드라이버가 구동되는 것이죠
네트워크 디바이스 드라이버도 비슷한데 소켓 함수중
recv 와 같은 함수를 사용하면
커널의 네트워크 구현층이 해당 이더넷의 네트워크 드라이버를
구동하는 것이죠
대충 이런 개념으로 보시면 될듯 싶습니다.