시스템 호출과 장치 드라이버
- 파일과 장치의 접근 및 제어에 쓰이는 함수들이 몇 가지 있는데 이러한 함수가 시스템 호출(system call)에 속한다. 이 시스템 호출은 unix/linux가 직접 제공하는 것으로, 프로그램과 운영체제 사이의 인터페이스 역할을 한다.
- 운영체제의 핵심부인 커널(kernel)에는 여러 개의 장치 드라이버(devece driver)들이 있다. 장치 드라이버는 시스템 하드웨어의 제어를 위한 저수준 인터페이스들의 모음이다.
- 하드웨어의 독특한 특성들은 일번적으로 ioctl(I/O control의 약자)이라는 시스템 호출을 통해서 파악하거나 제어할 수 있다.
-/dev에 있는 장치들도 디스크 파일을 위한 것들과 동일한 시스템 호출들을 이용해서 이들을 열고, 읽고, 쓰고 닫을 수 있다. 예를 들어 정규 파일에 접근하는 데 쓰이는 open 시스템 호출을 이용해서 사용자터미널이나 프린터, 테이프 드라이버에 접근 할 수 있다.
open : 파일이나 장치를 연다
read : 열린 파일이나 장치에서 자료를 읽는다.
write : 파일이나 장치에 자료를 기록한다.
close : 파일이나 장치를 닫는다.
ioctl : 장치 드라이버에 제어 정보를 보낸다.
ioctl 시스템 호출은 몇 가지 필수적인 하드웨어 고유 제어기능을 위한 것이기때문에 그 용법은 장치마다 다르다. 예를 들어 테이프드리아브의 경우 ioctl을 이용해서 테이프를 되감을 수 있으며, 직렬 포트의 경우 ioctl을 이용해서 자료의 전송 제어 특성을 변경할 수 있다. 이러한 다양성 때문에, 서로 다른 컴퓨터들에서 ioctl이 반드시 동일하게 작동한 다는 보장은 없다. 또한 각 드라이버 역시 자신만의 ioctl명령들을 정의한다.
'개발 > Linux' 카테고리의 다른 글
파일다루기 - 파일 디렉터리 접근 권한 관리 (0) | 2014.10.15 |
---|---|
파일다루기 - 라이브러리 함수들 (0) | 2014.10.10 |
파일 다루기 - 리눅스 파일 구조 (0) | 2014.10.10 |
실습 2 : 정적 라이브러리 (0) | 2014.10.09 |
개발 시스템의 개요 (0) | 2014.10.09 |