왜 (root) 의 하위 디렉토리입니까 /dev
? /
에 표시된 컴퓨터의 하드 드라이브에서 설치된 파일 시스템의 모든 것이 아니기 때문에 질문합니다 /dev
. 그렇다면 dev
루트 디렉토리가 아닌 이유는 무엇입니까? 그러면 모든 디스크가 거기에 표시됩니다.
답변1
나는 Unix V1이 단일 디스크에서 실행될 것이라고 믿습니다. 그건 진짜가 없어가상 FS.네임스페이스의 루트에서 시스템 파일 시스템을 찾을 수 있습니다 /
. 간접 참조가 필요하지 않습니다.;아니오 SYSTEMROOT
= c:/windows
변수. 기억하세요, 이것은 손으로 쓴 어셈블리 코드입니다.미니멀리스트아이디어는 매우 유용합니다.
여기의 아이디어는 종종 우아함으로 설명됩니다.. /bin/ls
실행 중인 시스템에서 실행하거나 를 읽고 싶습니다 . 매번 /etc/motd
디스크가 어떻게 호출되는지(DOS') 생각할 필요가 없습니다 .C:
DOS/CPM의 드라이브 문자는 실제로 계층화된 파일 시스템 구현보다 앞서 있습니다. 그러나 플로피 디스크의 파일 시스템을 많이 사용하는 시스템에 대해 서로 다른 장단점이 있는 사용자 인터페이스 기능으로 생각할 수도 있습니다. 실제로 DOS 시스템 디스크를 실행할 수 있습니다.그것을 제거하다, 계속해서 DOS 셸을 사용하여 두 번째 디스크에서 프로그램을 실행합니다. 따라서 시스템 파일 시스템이 항상 마운트되어 있지 않기 때문에 시스템 파일 시스템의 특수 파일에 의존하지 않는 드라이브를 참조하는 방법이 필요합니다.
드라이브 문자는 현대 시스템과 별로 관련이 없는 것 같습니다. 여기서는 Unix가 약간 만족스럽습니다. :)
Unix V1에는 이미 사람과 코드가 내부화되는 것과 /dev
같은 경로가 있습니다. /etc
처음부터 mount
"분리형 파일 시스템"에도 사용됩니다 .
(후속 릴리스에서는 두 번째 디스크를 사용했습니다 . 두 번째 bin 디렉토리를 지원하기 위해 /usr
검색 경로(환경 변수)가 추가되었습니다 .)PATH
/usr/bin
표준 경로를 어지럽히면 종종 과도한 극화가 발생합니다.(합당한 이유가 있더라도). 시간이 지나면서 몇 가지 개혁을 거쳤으며 Linux에서 이를 확인할 수 있습니다. 하지만C:
누구도 모든 것을 붙잡아야 할 설득력 있는 이유를 찾지 못합니다..
답변2
이것은 합의입니다. 단순히 호출파일 시스템 계층 표준. 더 이상 할 일이 없습니다.
답변3
발견한 장치 파일이 /dev
실제 파일이 아니기 때문입니다.마운트 포인트*. 단지 편리한 파일 시스템 기반 액세스 참조일 뿐입니다.장치 자체. 아래에서 유사한 계층 구조를 볼 수 있습니다 /sys
. 특히 view 입니다 /sys/block
.
왜 /dev/sda
다른 파티션에 대한 하위 디렉토리가 있는 디렉토리와 해당 파티션의 파일 시스템 내용 대신 특수 유형의 파일을 사용합니까? 그들 대부분은단지 때문에. 유닉스 디자이너할 수 있다이전에도 비슷한 일이 있었지만 이것이 그들이 하는 일입니다.
왜 /dev
장치 파일을 에 넣지 않습니까 /
? 음, 거기에는 많은 파일이 있습니다. 추악해 보일 것입니다. 너할 수 있다그러나 원한다면 가십시오. 예를 들어 다음을 살펴보세요 /dev/sda
.
$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 Apr 27 23:18 /dev/sda
시작 부분은 b
이것이 블록 장치임을 나타냅니다. "8,0"은주요 및 보조 장치 번호— 기본적으로 커널이 특정 드라이버에 해당한다고 알고 있는 미리 정의된 마법의 숫자입니다.
원하는 곳 어디에서나 만들 수 있습니다. 예를 들어:
$ sudo mknod /tmp/this-is-my-main-disk-drive b 8 0
$ ls -l /tmp/this-is-my-main-disk-drive
brw-r--r--. 1 root root 8, 0 May 1 14:31 /tmp/this-is-my-main-disk-drive
$ sudo fdisk -l /tmp/this-is-my-main-disk-drive
Disk /tmp/this-is-my-main-disk-drive: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[...]
그러나 이제 시스템의 모든 사람이 장치를 읽을 수 있으므로 심각한 보안 허점이 발생했습니다. 그러지 마세요.
* 음, 몇 가지 사항을 제외하고는 단순성을 위해 지금은 무시하겠습니다.