-
- 모든 것은 파일이다 라는 유닉스의 설계 철학에 따라, 모든 장치들은 특수 파일을 통해 접근한다.
-
블록 장치
- 장치 별로 정의된
블록
단위로 데이터를 읽고 쓴다. - 위치에 상관 없이 접근할 수 있는 탐색 기능 을 제공한다.
블록 장치 노드
라는 특수 파일을 이용해서 접근한다.캐릭터 장치
와 다르게, 파일시스템에 마운트되어 사용된다.- 장점
- 애플리케이션과 장치 사이에 파일시스템이 존재하므로 장치 노드의 관리가 간편하다.
- 단점
- 파일시스템의 버퍼링 단계가 추가되므로 성능이 저하된다.
- 장점
- 블록 장치의 예시로
하드 드라이브
,블루레이 디스크
,플래시 메모리 장치
를 들 수 있다.
- 장치 별로 정의된
-
캐릭터 장치
- 스트림 형태로 데이터를 읽는다.
- 데이터를 스트림으로 받으므로, 앞에서부터 읽어야 한다.
캐릭터 장치 노드
라는 특수 파일을 이용해서 접근한다.블록 장치
와 다르게, 애플리케이션에서 장치 노드를 직접 사용한다.- 장점
- 애플리케이션에서 직접 장치 노드를 사용하므로 성능이 향상된다.
- 단점
- 장치 노드 관리 측면에서 파일시스템의 도움을 받을 수 없으므로 애플리케이션이 직접 파일을 관리해야 하는 책임을 떠맡는다.
- 장점
- 캐릭터 장치의 예시로
키보드
,마우스
,프린터
등의 장치들이 있다.
-
- 모든 것은 파일이다 라는 유닉스의 설계 철학에 따라, 모든 장치들은 특수 파일을 통해 접근한다.
-
리눅스
가 장치 드라이버들을모듈
형태로 분리한 것은마이크로 커널
의 형태를 차용한 것이라고 볼 수 있다.리눅스
는 기본적으로모노리딕 커널
이다.
- 커널 이미지를
모듈
로 분리하면 다음과 같은 장점이 있다.모듈
을 필요에 따라 추가하고 제거할 수 있다.- 디버깅에 유리하다.
- 부팅 시 기본 커널 이미지만 사용하므로 오버헤드가 적다.
- 새로운 장치 드라이버를 추가하는 것이 용이하다.
-
- 통합 장치 모델 은 장치와 장치 간 관계를 표현하는 단일 체계를 제공한다.
- 통합 장치 모델 의 초기 도입 의도는 전원을 관리하기 위한 장치 트리 를 제공하는 것이었다.
- 통합 장치 모델 을 사용하면 다음과 같은 이점을 얻을 수 있다.
- 시스템 모든 장치들의 상태를 확인할 수 있고, 서로가 어떻게 연결되어 있는지 파악할 수 있다.
- 장치와 장치 드라이버를 연결해준다.
- 물리적 장치 구조를 추상화하여 장치를 적절히 분류할 수 있게 해준다.
- 올바른 장치 전원 차단 순서를 알 수 있게 해준다.
-
-
- 장치 트리를 이루는 장치를 추상화하여 해당 장치의 정보들을 담고있는 구조체다.
-
kobject
객체 군 의 기본 동작 을 정의하는 구조체다.- 동일한 유형의
kobject
들은 같은ktypes
을 가리킨다. - 같은
ktypes
을 가리키고 있는kobject
들은 같은 동작을 사용한다.
-
- 서로 관련된
kobject
들을 모아놓은kobject
의 집합이다. - 연결리스트로
kobject
들을 연결한다.
- 서로 관련된
-
ktype
은 동작 을 정의하고,kset
은 객체를 묶는 역할을 한다.
-