IT 이야기/IT
[센서 노드 디바이스 드라이버 정리 (1/3)] 임베디드 리눅스
옥사마
2010. 3. 25. 16:21
ㅇ 임베디드 리눅스 디바이스 드라이버 구조
- 디바이스 종류
ㅁ 케릭터 디바이스
- 임의의 길이를 갖는 문자열을 다루는 디바이스 드라이버
- 응용 프로그램에서 직접적으로 호출되는 버퍼를 갖지 않는 디바이스 드라이버
ㅁ 블록 디바이스
- 하드 디스크 드라이버와 같이 일정 크기의 버퍼를 통해 데이터를 처리하는 디바이스
- 커널 내부의 파일 시스템에서 관리하는 내부적인 버퍼가 있는 디바이스 드라이버
ㅁ 네트워크 디바이스 드라이버
- 네트워크 측과 연결된 디바이스 드라이버
- 응용 프로그램에서 직접 접근할 수 없고 네트워크 프로토콜 스택과 연동
- 기본적인 API
ㅁ open (), close (): 디바이스를 열고 닫음
ㅁ read (), write (): 디바이스와 통신
ㅁ lseek (): 디바이스의 접근 위치 변경
ㅁ ioctl (): 디바이스의 제어
ㅁ fsync (): HW와 드라이버 버퍼 내용의 동기화 처리
- 디바이스 종류
ㅁ 케릭터 디바이스
- 임의의 길이를 갖는 문자열을 다루는 디바이스 드라이버
- 응용 프로그램에서 직접적으로 호출되는 버퍼를 갖지 않는 디바이스 드라이버
ㅁ 블록 디바이스
- 하드 디스크 드라이버와 같이 일정 크기의 버퍼를 통해 데이터를 처리하는 디바이스
- 커널 내부의 파일 시스템에서 관리하는 내부적인 버퍼가 있는 디바이스 드라이버
ㅁ 네트워크 디바이스 드라이버
- 네트워크 측과 연결된 디바이스 드라이버
- 응용 프로그램에서 직접 접근할 수 없고 네트워크 프로토콜 스택과 연동
- 기본적인 API
ㅁ open (), close (): 디바이스를 열고 닫음
ㅁ read (), write (): 디바이스와 통신
ㅁ lseek (): 디바이스의 접근 위치 변경
ㅁ ioctl (): 디바이스의 제어
ㅁ fsync (): HW와 드라이버 버퍼 내용의 동기화 처리