Linux(Android)의 /dev 폴더 이해

Linux(Android)의 /dev 폴더 이해

Linux 파일 시스템이 어떻게 작동하는지 이해하고 싶지만 제가 가지고 있는 유일한 Linux 시스템은 루팅된 Android 휴대폰뿐이므로 Android 휴대폰에서 adb 셸을 사용하여 본 내용을 바탕으로 질문합니다.

~에서여기그리고여기Android 시스템에 연결된 모든 하드웨어는 운영 체제에서 파일로 처리된다는 내용을 읽었습니다. 따라서 /dev/dsp는 오디오 하드웨어이고 이 파일에 기록된 모든 내용은 스피커를 통해 사운드로 나타납니다. 따라서 이 파일에 1바이트 문자 스트림을 쓰면 먼저 2바이트 단어로 해석될 것이라고 가정합니다. wav 파일과 같이 왼쪽 및 오른쪽 채널에 대해 인터리브되고 스피커를 통해 재생됩니까? 그러나 adb 쉘에서 /dev로 이동하여 ls 명령을 사용하면 dsp 파일을 볼 수 없습니다.

내 질문은 /dev 폴더의 파일 이름 지정이 표준입니까, 아니면 이름을 가질 수 있습니까? 그것은 말한다여기이름은 완전히 무작위로 지정할 수 있습니다.

몇 가지 명명 체계가 있지만 대부분의 경우 이러한 명명 체계는 완전히 비논리적입니다.

이것이 사실이라면 어떤 파일이 무엇을 나타내는지 어떻게 알 수 있습니까?

답변1

귀하의 tldp 링크에는 약간의 역사가 있습니다. /dev파일 시스템의 일부로만 생각 하면 하위 시스템의 본질을 놓치는 것입니다.

AB의 의견에는 메이저/마이너가 언급되어 있지만 그의 링크는 원시 목록일 뿐입니다. 여기할당된 장치 kernel.org HTML몇 가지 추가 정보가 있습니다.

나는 이 맥락에서 "모든 것이 파일이다"는 오해의 소지가 있다고 생각합니다. 의 파일이 /dev호출됩니다.특수 파일, 문자 또는 블록. "c" 또는 "b"는 이를 나타냅니다.

]# ls -l /dev/tty1 /dev/sda1 
brw-rw---- 1 root disk 8, 1 Nov  5 17:27 /dev/sda1
crw------- 1 root tty  4, 1 Nov  7 05:48 /dev/tty1

문서의 Major=8:

   8 block      SCSI disk devices (0-15)
                  0 = /dev/sda          First SCSI disk whole disk
                 16 = /dev/sdb          Second SCSI disk whole disk
                 32 = /dev/sdc          Third SCSI disk whole disk
                    ...
                240 = /dev/sdp          Sixteenth SCSI disk whole disk

그러나 이는 숫자가 높은 파티션이 갑자기 major=259가 되는 이유를 직접적으로 설명하지도 않습니다.

]# ls -l  /dev/sda16
brw-rw---- 1 root disk 259, 0 Nov  5 17:27 /dev/sda16

이 "sda" 예제는 주로 대용량 저장소이기 때문에 선택했습니다. 이것이 Android로 어떻게 변환되는지 모르겠습니다.

블록 장치(파티션)는 직접 쓸 수도 있지만 일반적으로 파일 시스템으로 포맷한 후 마운트합니다.

일반적으로 /dev의 파일은 장치 자체가 아니라 장치에 대한 인터페이스입니다.


현재 /dev는 /sys와 같은 의사 파일 시스템입니다.

TARGET    SOURCE     FSTYPE
/dev      dev        devtmpfs
/sys      sys        sysfs
/         /dev/sda3  ext4

부팅하는 동안 /dev는 커널에 의해 채워집니다. 사용자는 모듈을 로드하여 장치를 추가할 수 있습니다. 예를 modprobe loop들어주세요/dev/loop0-7

(제안된 편집은 "커널에 의해"가 아닌 "udev에 의해" 채워지는 것이었습니다. 제 생각에는 이것이 패딩 자체보다 이름 지정의 문제라고 생각합니다. 자세한 내용을 알고 싶습니다.)

외부 USB 저장소를 연결하면 sdb, sdc 등을 얻을 수 있지만 모듈이 usb_storage로드된 경우에만 가능합니다.

이것상호 작용/dev 특수 파일의 특성은 이름에도 표시됩니다. sda 또는 tty와 같은 일부는 기술적이며 일부(/dev/disk/by-... 아래)는 편의나 식별을 위해 제공되는 링크입니다.

관련 정보