Device File   장치 화일, 장치 파일

(2024-01-19)

디바이스 파일


1. [Unix/Linux]  장치 화일물리적 디바이스를 표현하는 특수 파일
     - 하드디스크,키보드,프린터 등 장치들도 모두 파일로 취급 됨    ☞ Unix/Linux 파일 처리 참조

  ㅇ 만일, 사용자 프로그램이 하드웨어(장치)에 접근하려면,
     - 장치 파일을 사용하여, 
        . (/dev 디렉토리에 위치함. 아래 2.항 참조)
     - 커널을 통해 접근하게 됨

  ㅇ 한편, 사용자 프로그램이 장치 파일에 접근하면,
     - 커널은, 
        . 이에따른 I/O 호출 요청을 확인하고, 장치 드라이버에게 요청 내용을 전달하고, 
        . 장치 드라이버가 실제 장치로부터 자료를 읽거나 쓰는 등의 작업을 함
     - 장치 드라이버는, 
        . 모든 하드웨어를 일관된 인터페이스로 표현해 줌
     - 즉, 커널은,
        . 사용자 프로그램이 장치 파일에 가해진 연산을,
        . 장치 드라이버 프로그램에 대한 호출로 바꾸어줌


2. [Unix/Linux]  장치 화일의 식별

  ㅇ 주 번호(major device number) 및 부 번호(minor device number)로 구성
     - 주 번호 : 장치 유형(Device Type)에 따라 부여 
     - 부 번호 : 장치 단위(Device Unit)에 따라 부여, 각 장치의 부가적인 정보

     * 例) 
        . 두번째 하드 디스크의 파티션 3 이면, /dev/hdb3 
        . 첫번째 SCSI 디스크의 파티션 1 이면, /dev/sda1

  ㅇ 장치 화일들은, 
     - 그 파일Inode 내에 저장되어진, 주 번호와 부 번호를 통해,
     - 실제 장치와 짝지워지게 됨


3. [Unix/Linux]  장치 화일의 생성

  ㅇ 장치 파일은, mknod 명령어를 사용하여 만들 수 있음

     - mknod  ① 파일명 ② 유형 ③ major ④ minor 
        . ① 파일명은, 
           .. 만들어질 장치 파일의 이름
        . ② 파일유형은,           ☞ Unix/Linux 파일 종류 참조
           .. 문자 장치에 대해서는 c, 블록 장치에 대해서는 b 등
        . ③ major 및 ④ minor는, 
           .. major device number와 minor device number

     - 또는, 시스템호출 mknod()를 통해서,
        . 프로그램 내에서도 가능


4. [Unix/Linux]  특수 장치 화일

  ※ (소유자 : root, 권한 : 모든 사용자가 읽기/쓰기 가능)

  ㅇ null 장치 파일  :  /dev/null  (주 번호 : 1, 부 번호 : 3)
     - 소유자 : root, 권한 : 모든 사용자가 읽기/쓰기 가능
     - 이 장치에 대한, 쓰기 요청은 무시, 읽기 요청은 EOF 반환

  ㅇ zero 장치 파일  :  /dev/zero  (주 번호 : 1, 부 번호 : 5)
     - 소유자 : root, 권한 : 모든 사용자가 읽기/쓰기 가능
     - 이 장치에 대한, 쓰기 요청은 무시, 읽기 요청은 무한한 null 바이트 스트림을 반환
 
  ㅇ full 장치 파일  :  /dev/full  (주 번호 : 1, 부 번호 : 7)
     - 이 장치에 대한, 쓰기 요청은 ENOSPC 오류 (가득참) 반환, 읽기 요청은 null 문자(\0)을 반환

I/O 장치 (주변장치)
   1. 주변장치, 제어기   2. DMA, PIO   3. 디바이스 드라이버   4. 디바이스 파일  
UNIX 장치
   1. 장치 화일   2. tty  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"