모든 Linux 장치 파일은 가상 파일입니까?

모든 Linux 장치 파일은 가상 파일입니까?

다음 두 파일은 가상 파일입니다.

/dev/sda1
/proc/cpuinfo

나는 이것이 /dev/sda1장치 파일(장치 드라이버를 가리키는)이라는 것을 알고 있으므로 이 파일에 액세스하면 실제로 장치 드라이버에 액세스하는 것입니다.

그런데 /proc/cpuinfo이 파일도 장치 파일인가요? 그렇다면 다른 가상 파일은 모두 리눅스 장치 파일인가요?

답변1

아래 설명된 대로 의 모든 파일은 /proc파일 시스템에서 제공됩니다 .proc맨페이지:

파일 시스템은 proc커널 데이터 구조에 대한 인터페이스를 제공하는 의사 파일 시스템입니다.

이는 커널이 저장하는 데이터에 대한 액세스를 제공하기 위해 커널에서 제공하는 특수 파일 시스템입니다.예를 들어CPU 정보( cpuinfo), 프로세스 정보(각 프로세스 식별자에 해당하는 의 숫자 디렉터리에 있음 /proc)... 그 안에 있는 파일은 장치 파일이 아니며 커널에서 정보를 검색하기 위해 함수 호출을 수행하기 위한 유효한 끝점입니다.

기타 특수 파일 시스템에는 devtmpfssysfs.

따라서 아니요, 모든 "가상" 파일은 장치 파일이 아닙니다. 장치 노드가 실제 파일로 존재하기 때문에 장치 파일은 전혀 가상이 아닙니다. 대부분의 사람들이 파일에 대해 생각하는 것과 같은 방식으로 작동하지는 않지만 그럼에도 불구하고 파일입니다.

다음 질문은 모든 것을 더 잘 이해하는 데 도움이 될 수 있습니다.

답변2

아니요. Linux에서는 /proc커널 데이터 구조에 대한 인터페이스를 제공하는 의사 파일 시스템입니다. 여기에는 아래 파일과 동일한 의미를 갖는 문자 또는 블록 특수 파일이 없습니다 (이러한 파일을 사용하여 파일 시스템을 마운트하거나 모뎀 또는 테이프 드라이브 등과 통신할 /dev수 없습니다 )./proc

proc(5)시스템 설명서에 이 파일 시스템( man 5 proc)이 자세히 설명되어 있습니다.

관련 정보