IT 이야기/IT

[센서 노드 디바이스 드라이버 정리 (1/3)] 임베디드 리눅스

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