장치 파일(device file) 또는 특수 파일(special file)은 유닉스 계열 운영 체제에서 마치 흔한 파일처럼 보이는 파일 시스템 안에 보이는 장치 드라이버인터페이스이다. 소프트웨어가 표준 입출력 시스템 호출을 사용하여 장치 드라이버와 상호 작용할 수 있게 해 준다.

장치 파일들은 프린터와 같은 주변 기기를 위한 단순한 인터페이스를 제공하기도 한다. 그러나 디스크 파티션과 같이 그러한 장치들의 리소스에 접근하는 데에만 사용될 수 있다. 장치 파일은 시스템 리소스에 접근할 때에도 유용하다.

유닉스 특수 파일 편집

 
리눅스 커널을 단순화한 구조. 파일 시스템은 입출력 하위 시스템의 일부로 구현되어 있다.

유닉스 계열 운영 체제에서 두 가지 종류의 일반적인 장치 노드가 존재한다. 바로 문자 특수 파일(character special file)과 블록 특수 파일(block special file)이다. 이 둘의 다른 점은 운영 체제와 하드웨어가 처리하는 데이터 읽기/쓰기 방식이다. 이 두 노드 모두 장치 특수 파일(device special file)이라 불린다.

문자 장치 편집

문자 특수 장치(character special file) 또는 문자 장치(character device)는 버퍼링되지 않은, 직접 접근을 하드웨어 장치에 제공한다.

블록 장치 편집

블록 특수 파일(block special file) 또는 블록 장치(block device)는 버퍼링된 접근을 하드웨어 장치에 제공하며, 이들의 세부 사항에 따라 어느 정도의 추상화를 제공한다.[1]

의사 장치 편집

노드 생성 편집

노드들은 mknod라는 시스템 호출을 통해 만들어진다. 노드를 만드는 명령 줄 프로그램 또한 mknod이다. 노드들은 일반적인 파일 시스템의 시스템 호출(rename, unlink)과 명령어(mv, rm)을 통해 이동하거나 삭제할 수 있다.

일부 유닉스 버전들은 makedev나 MAKEDEV라는 스크립트를 포함하고 있으며, 디렉터리 /dev에 있는 필요한 모든 장치를 만들어준다.

명명 규칙 편집

다음의 두문자들은 장치 종류의 식별을 위하여 /dev 계층의 일부 장치 이름에 사용할 수 있다.:

리눅스 기반 운영 체제에서 일반적으로 쓰이는 두문자들이 더 존재한다:

devfs 편집

devfs는 장치 파일 시스템이나 유닉스 계열 운영 체제의 특정한 구현체이며, 장치 파일들을 대표하는데 사용된다. 기반이 되는 구현 구조는 운영 체제에 따라 다양하다.

물리적으로 구현된 파일 시스템(예: 하드 드라이브)에서 이러한 특수 파일들을 관리하는 것은 편리성이 떨어지며, 여하튼 커널의 보조를 받아야 하기 때문에 물리적으로 저장되지 않는 특수 목적의 논리 파일 시스템이라는 개념이 등장하였다.

MS-DOS 장치 파일 편집

몇 가지 장치 파일은 아래에 나열되어 있다:

파일 이름 목적
CON 콘솔 장치
PRN 프린터
AUX 보조 장치
COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 직렬 포트
LPT1 LPT2 PRN 병렬 포트
NUL 비트 버킷 (아무것도 표시하지 않음을 말하기도 함)

각주 편집

  1. “IEEE Std 1003.1, 2013 Edition”. 2014년 4월 24일에 확인함.