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

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스는 모든 것을 파일로 관리합니다. 리눅스에는 장치 파일(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

  • 셸 스크립트란? 셸과 셸 프롬프트&bash shell

    ▥ 셸 스크립트란(shell script)? 1. 셸이란? 키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다. 2. 셸 프롬프트 셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반 유저일 때, 해쉬 표시(#)는 터미널 세션이 슈퍼 유저(superuser)의 권한을 가졌을 때 표시된다. (#)는 루트(root) 사용자 로그인 해서 관리자 권한을 가진 것을 의미한다. 3….

  • 리눅스 chgrp 명령어

    리눅스 chgrp 명령어는 파일 및 디렉토리의 그룹을 변경할 수 있는 명령어이며, Change Group의 약자입니다. ✅ 리눅스 chgrp 명령어 기본 사용법 chgrp 명령어에서 옵션은 거의 사용되지 않습니다. ✅ chgrp 명령어 옵션 옵션 설명 -R 하위 디렉토리에 적용. ✅ chgrp 명령어 사용 예시

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

    useradd 명령어는 리눅스에서 사용자의 ID(계정)를 생성하는 명령어입니다. root 권한으로 생성이 가능하며 기본적인 명령은 아래와 같습니다. 리눅스 useradd 명령어 옵션 리눅스 useradd 사용 예 기본으로 사용할 수 있는 예입니다. 리눅스 /etc/skel 디렉토리 계정 생성 시 설정 값이 정의되는 /etc/skel 데릭토리는 사용자를 생성 했을 때 해당 계정의 홈 디렉토리에 기본으로 들어가는 파일이 있습니다. /etc/skel 설정은…

  • Apache MPM Module: Prefork, Worker, Event 3가지 방식 비교 및 Event Module 최적화 설정

    Apache MPM Module은 Apache HTTP Server의 중요한 부분으로, 서버의 요청 처리 방식을 결정합니다. MPM(Multi-Processing Module)은 서버의 성능과 확장성에 큰 영향을 미치는 역할을 합니다. ✅ MPM Module(Multi-Processing Module) MPM 모듈은 서버가 요청을 처리하는 방식을 정의하며, 서버의 성능, 안정성, 확장성에 영향을 미칩니다. 주요 MPM 모듈로는 Prefork, Worker, Event가 있습니다. 확장성과 성능이 중요한 사이트는 Worker MPM을…

  • [Linux] usermod 명령어

    usermod 명령어는 user modification(사용자 수정)의 약자로 이미 존재하는 사용자 계정의 속성을 변경할 때 사용됩니다. usermod는 사용자의 로그인 이름, UID (사용자 ID), 홈 디렉토리, 로그인 셸, 그룹 등의 속성을 변경할 수 있는 명령어입니다. ✅ usermod 명령어 기본 옵션 ✅ 주요 옵션 ✅ 사용 예시 🔲 사용자 홈 디렉토리 변경 사용자의 홈 디렉토리를 변경할 때 -m…

  • 셸 스크립트: 변수(variable)와 상수(constant)

    셸 스크립트에서 변수란 단어가 가진 의미는 변할 수 있는( variable) 값이다. 또 상당수의 애플리케이션에서 변수가 이와 같은 의미로 사용되고 있다. 상수(constant)는 이름이 정의되고 값이 지정된다는 점은 변수와 같다. 하지만 그 값은 변하지 않는다는 점이 다르다. 쉘은 변수와 상수를 따로 구분하지 않는데 용어를 구분하는 이유는 쉘 이용자의 편의를 위해서이다. 1. 변수(variable) 앞서 말했듯이 변수가…

답글 남기기

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

Prove your humanity: 8   +   2   =