(1) 블록 디바이스
: 하드디스크처럼 내부에 파일 시스템을 가질 수 있는 디바이스다.

- 유닉스에서는 블록으로만 접근 가능하다. (1KB)

- 리눅스에서는 바이트 단위로도 접근 가능하다. (문자디바이스와 같이)
  ○ 리눅스에서는 문자디바이스와 블록디바이스가 커널 내부적으로 수행되는 데이터 처리방법만 다를뿐 응용프로그래머
      입장에서는 동일하게 보인다. (커널과 블록 디바이스 드라이버 사이의 소프트웨어인터페이스에서만 차이가 나는것이다.)

- 블록 디바이스는 파일 시스템을 통해 접근하고, 효율적인 처리를 위해 버퍼를 사용한다.


(2) 네트워크 디바이스

- 모든 네트워크의 동작은 네트워크 인터페이스(or 네트워크 디바이스)를 통해 이루어진다.
  ○ 네트워크 인터페이스는 외부호스트와 데이터를 주고 받을 수 있다.

- 네트워크 인터페이스는 보통 H/W Device이다. (예외 : Loop back과 같은 S/W Device도 있다.)

- 네트워크 인터페이스(or 디바이스)는 파일명이 없다. 리눅스 시스템에서 붙인 eth0, eth1.. 등의 이름은 네트워크 인터페이스를
  구분하기 위한 것이다.

- 커널 내부에 있는 네트워크 프로토콜 스택과 연동하도록 설계되어 있기 때문에, find명령어로 찾을 수도 없다.

- 네트워크 디바이스 드라이버는 응용 프로그램에서 직접 접근할 수 없으나, ifconfig같은 특별한 명령을 통해 시스템콜을 이용해
  네트워크 디바이스 드라이버 함수 부분을 부분적으로 호출하고 제어할 수 있다.


※ 출처 : http://idkkangjs.blog.me/30091117058

'L inux > Device Driver' 카테고리의 다른 글

디바이스 파일 생성  (0) 2011.09.28
디바이스 파일과 드라이버 함수 연결  (0) 2011.09.28
문자 디바이스  (0) 2011.09.28
디바이스 드라이버의 이해  (2) 2011.09.28
인터페이스 정보 얻기  (0) 2011.04.14
by 민트앤라떼 2011. 9. 28. 16:03