Linux 에서는 하드 드라이브부터 키보드에 이르기까지 시스템에 연결된 모든 장치가 특수 파일로 표현됩니다. 장치 파일 또는 장치 노드라고 불리는 이러한 파일은 소프트웨어가 하드웨어 드라이버와 상호 작용할 수 있는 방법을 제공합니다. 이러한 파일의 중앙 위치는 /dev 디렉토리입니다.
Linux 에서 /dev 디렉토리란 무엇인가요?
/dev 디렉토리는 Linux 파일 시스템 계층 구조의 기본 부분입니다. 여기에는 장치를 나타내는 특수 파일이 포함되어 있습니다. 이 파일들은 일반 파일처럼 취급되므로 표준 명령줄 유틸리티를 사용하여 상호 작용할 수 있습니다. 예를 들어, ls /dev 명령을 사용하여 현재 시스템에 있는 모든 장치 파일 목록을 볼 수 있습니다.
ls /dev
ls /dev를 실행하면 커널이 인식하는 하드웨어 또는 가상 장치의 각 항목에 해당하는 수많은 항목이 표시됩니다.
장치 파일과 상호 작용하기
인지하지 못했더라도 이미 장치 파일과 상호 작용한 적이 있을 것입니다. 가상 장치의 일반적인 예는 /dev/null입니다. 명령의 출력을 /dev/null로 리디렉션하면 커널이 모든 입력을 단순히 폐기하도록 하는 특수 장치로 보내는 것입니다.
/dev의 내용과 상호 작용하기 위해 명령을 사용하지만, Linux 에 특정 dev command가 있는 것은 아니라는 점에 유의하는 것이 중요합니다. 대신, 이러한 장치 파일에서 읽거나 쓰기 위해 ls, cat 등 기존 유틸리티를 사용하지만, 이를 직접 수행하려면 주의가 필요합니다.
/dev 의 진화
이전 Unix 및 Linux 시스템에서 /dev 디렉토리는 정적이었습니다. 이는 설치 중에 가능한 모든 하드웨어에 대한 장치 파일이 생성되었음을 의미했습니다. 이 접근 방식은 심지어 존재하지도 않는 하드웨어에 대한 사용되지 않는 장치 파일로 가득 찬 혼잡한 dev folder linux를 초래했습니다. 게다가, 커널이 장치를 감지하는 순서에 따라 장치 이름이 재부팅 시 변경될 수 있어 구성 문제가 발생했습니다.
다행히도 최신 Linux 시스템은 동적 접근 방식을 사용합니다. udev와 같은 시스템은 이제 하드웨어가 연결 및 분리됨에 따라 장치 파일을 동적으로 생성 및 제거하여 /dev in linux 환경을 관리합니다. 이를 통해 /dev에는 현재 사용 중인 장치에 대한 파일만 포함되며 영구적인 명명 체계를 제공하여 시스템을 보다 안정적이고 관리하기 쉽게 만듭니다.