> 패키지 및 시스템 관리 > mknod

mknod: 특수 파일 생성

mknod 명령어는 블록 장치, 문자 장치, FIFO(명명된 파이프)와 같은 특수 파일을 생성하는 데 사용됩니다. 이 파일들은 일반 파일과는 다르게 시스템의 특정 하드웨어 장치나 프로세스 간 통신 메커니즘과 연결됩니다. 주로 시스템 관리자가 장치 드라이버와 상호작용하거나 프로세스 간 통신 채널을 설정할 때 사용합니다.

개요

mknod는 파일 시스템 내에 특수한 목적을 가진 파일을 생성합니다. 이 파일들은 실제 데이터를 저장하기보다는 특정 장치나 통신 채널에 대한 인터페이스 역할을 합니다. 블록 장치는 디스크와 같은 블록 단위로 데이터를 전송하는 장치를, 문자 장치는 터미널이나 시리얼 포트처럼 문자 단위로 데이터를 전송하는 장치를 나타냅니다. FIFO는 두 개 이상의 프로세스 간에 데이터를 교환하는 데 사용되는 명명된 파이프입니다.

주요 용도

  • 블록 장치 파일 생성
  • 문자 장치 파일 생성
  • FIFO(명명된 파이프) 생성

주요 옵션

mknod 명령어는 생성할 특수 파일의 종류를 지정하는 옵션과 장치 파일의 경우 주(Major) 및 부(Minor) 장치 번호를 지정하는 인수를 사용합니다.

파일 종류 지정

장치 번호 지정 (블록/문자 장치 전용)

생성된 명령어:

명령어를 조합해 보세요.

설명:

`mknod` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

mknod 명령어는 주로 root 권한으로 실행되어야 합니다. 다음 예시들은 일반적인 사용법을 보여줍니다.

FIFO(명명된 파이프) 생성

mknod my_pipe p

프로세스 간 통신에 사용될 FIFO 파일을 생성합니다.

블록 장치 파일 생성 (예: 가상 디스크)

sudo mknod /dev/myblockdev b 8 16

주 번호 8(SCSI/SATA 디스크)과 부 번호 16을 가진 블록 장치 파일을 생성합니다. 실제 장치에 연결되지 않으면 작동하지 않습니다.

문자 장치 파일 생성 (예: 가상 터미널)

sudo mknod /dev/mychardev c 4 64

주 번호 4(가상 터미널)와 부 번호 64를 가진 문자 장치 파일을 생성합니다. 실제 장치에 연결되지 않으면 작동하지 않습니다.

생성된 특수 파일 확인

ls -l my_pipe /dev/myblockdev /dev/mychardev

ls -l 명령어를 사용하여 생성된 특수 파일의 종류와 권한을 확인합니다. 'p'는 FIFO, 'b'는 블록 장치, 'c'는 문자 장치를 나타냅니다.

팁 & 주의사항

mknod 명령어는 시스템의 중요한 부분을 다루므로 사용에 각별한 주의가 필요합니다.

권한

  • 대부분의 경우, mknod는 root 권한(sudo)으로 실행해야 합니다. 일반 사용자는 FIFO 파일을 생성할 수 있지만, 장치 파일은 시스템 무결성 때문에 root 권한이 필요합니다.

장치 번호 이해

  • 주(Major) 및 부(Minor) 장치 번호는 시스템 커널이 특정 장치 드라이버와 그 드라이버가 관리하는 개별 장치를 식별하는 데 사용됩니다. 잘못된 번호를 사용하면 시스템 오작동을 일으킬 수 있으므로, 정확한 번호를 확인하고 사용해야 합니다. `/proc/devices` 또는 `ls -l /dev` 명령어를 통해 기존 장치들의 번호를 참고할 수 있습니다.

파일 시스템 손상 위험

  • 존재하지 않는 장치에 대한 장치 파일을 생성하거나, 기존 장치 파일과 충돌하는 번호를 사용하는 것은 시스템 불안정이나 데이터 손상으로 이어질 수 있습니다. 반드시 필요한 경우에만 신중하게 사용해야 합니다.

동일 카테고리 명령어