리눅스 디바이스 드라이버 | 장치 파일(Device File) | /dev 디렉토리

리눅스는 모든 것을 파일로 관리합니다. 리눅스에는 장치 파일(Device File)은 여러 프로그램에서 시스템에 설치된 하드웨어에 접근할 수 있게 하는 파일입니다. 디바이스를 구동하기 위해 리눅스 디바이스 드라이버가 필수 요구 사항입니다.

리눅스 시스템이 마우스 장치 파일을 참조해서 마우스의 조작을 하게 하거나 프린트의 출력 등을 담당하는 것을 생각할 수 있으며, 주로 스토리지를 마운트 하는데 많이 사용된다고 할 수 있습니다.

✅ 리눅스 장치 파일 | /dev 디렉토리

장치 파일은 /dev 디렉토리에 위치하며 주요 장치 파일의 종류는 다음과 같습니다.

장치 파일 종류설명
/dev/input/mice마우스
/dev/sro0, /dev/sr1CD 드라이브 0은 첫번째, 1은 두번째
/dev/sda /dev/sdbSATA 접속 장치: 하드 디스크 SSD, 플래시 메모리 등.
/dev/xvda1 /dev/xvda1 AWS와 같은 클라우드(EC2 인스턴스 등)의 스토리지
/dev/usb/xxx/xxxUSB 장치. xxx는 USB 장치의 번호
/dev/tty가상 터미널
/dev/null아무 것도 표시하지 않은 장치 파일로 출력 내용을 없앨 때 리다이렉트(>)로 사용
리눅스 디렉토리 구조

✅ 리눅스 디바이스 드라이버(Device Driver)

리눅스에서 각종 마우스, 키보드, 스토리지, 프린터 등의 장치(Device)를 구동하기 위해 디바이스 드라이버가 필수적으로 요구됩니다. 디바이스 드라이버는 장치 파일을 추상화 시켜 사용자 프로그램이 인터페이스를 통해 디바이스에 접근할 수 있도록 해 주는 프로그램입니다.

1. 사용자 관점에서 디바이스 드라이버

  • 사용자는 디바이스 자체에 대한 정보를 알 필요 없음
  • 디바이스는 하나의 파일로 인식
  • 파일에 대한 접근을 통해 Real Device에 접근 가능

2. 리눅스에서 디바이스

  • 리눅스에서 디바이스는 특별한 파일로 취급되고 엑세스가 가능함.
  • 각각의 디바이스는 Major Number 와 Minor number를 소유.
    • Major number : 커널에서 디바이스 장치 구분
    • Minor number : 같은 종류의 디바이스들을 구분
ll -a

✅ 리눅스 디바이스 드라이버의 구조와 종류

리눅스 디바이스 드라이버 종류와 구조

1. Character Device

캐릭터 디바이스는 스트림 데이터를 캐릭터(문자) 단위로 처리하는 디바이스를 나타냅니다. 일반적으로 터미널, 키보드, 마우스 등이 캐릭터 디바이스에 해당합니다. 이러한 디바이스는 데이터를 한 번에 하나의 문자 또는 바이트씩 처리하며, 데이터의 흐름은 순차적입니다.

  • 특징
  • 버퍼와 캐시를 사용하지 않음.
  • 터미널, 키보드, 사운드 카드, 프린터 등
Character Device
Character Device File

2. Block Device

  • 특징
  • random access 가능
  • 버퍼 및 캐쉬 사용
  • 파일 시스템에 Mount 되어 관리됨
  • 하드디스크, SSD, RAM, CD-ROM
Block Device File
Block Device File

3. Network Device

대응하는 장치 파일이 없으며, 네트워크 통신을 통해 패킷을 송수신 할 수 있는 장치입니다.

  • 특징
  • 응용 프로그램과의 통신은 표준 파일 시스템 호출 대신 Socket 또는 Bind와 같은 시스템 호출
  • 이더넷, PPP 등

Similar Posts

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서 디바이스✅ 리눅스 디바이스 드라이버의 구조와 종류1. Character…

  • 리눅스: useradd 명령어 & passwd 명령어

    useradd 명령어는 리눅스에서 사용자의 ID(계정)를 생성하는 명령어입니다. root 권한으로 생성이 가능하며 기본적인 명령은 아래와 같습니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서 디바이스✅ 리눅스 디바이스 드라이버의 구조와 종류1. Character Device2. Block Device3. Network Device리눅스 useradd 명령어 옵션 리눅스 useradd 사용 예 기본으로 사용할 수 있는…

  • 리눅스 top 명령어(CPU, 메모리 점유율 확인)

    리눅스 top 명령어는 구동 중인 OS의 상태를 보여주는 명령어이며 table of processes의 뜻을 가지고 있습니다. 총 메모리 사용량, CPU 사용량 등을 보여주며 각 프로세스의 구체적인 메모리와 CPU 사용량을 개별적으로 확인할 수 있습니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서 디바이스✅ 리눅스 디바이스 드라이버의 구조와 종류1….

  • Linux: crontab 설정

    윈도우 스케줄러와 비슷한 개념의 리눅스 crontab은 주기적으로 홈페이지 및 DB 데이터를 백업해야 하거나 특정 시간에 로그 파일 등을 삭제해서 서버 유지 관리가 필요한 경우에 사용되는 스케줄러입니다. 크론탭은 특정 시간에 주기적으로 작업이 자동으로 이루어지도록 설정하는 것을 의미합니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서 디바이스✅ 리눅스…

  • 우분투 APM 설치 [Ubuntu 22.04.5..]

    설치된 우분투 서버에 APM을 설치 진행합니다. 우분투 APM 설치 버전은 apache 2.4 php 7.4 mariadb 10.11 버전으로 설치를 진행합니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서 디바이스✅ 리눅스 디바이스 드라이버의 구조와 종류1. Character Device2. Block Device3. Network Device✅ 패키지 업데이트 및 apache2 설치 업데이트, 업그레이드…

  • WAS와 WEB 서버 차이

    웹서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에 요청을 하면 요청을 받아 정적 콘텐츠를 제공하는 서버입니다. 정적 콘텐츠는 HTML, CSS, 이미지, 파일 등의 콘텐츠가 제공됩니다. WAS란 DB 조회 또는 다양한 로직의 처리가 요구되는 동적 콘텐츠를 제공하기 위해 만들어진 Application 서버입니다. 목차✅ 리눅스 장치 파일 | /dev 디렉토리✅ 리눅스 디바이스 드라이버(Device Driver)1. 사용자 관점에서 디바이스 드라이버2. 리눅스에서…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   6   =