디스크, 파티션 및 파일 시스템용 장치 파일 및 드라이버?

디스크, 파티션 및 파일 시스템용 장치 파일 및 드라이버?

리눅스에서는

  1. /dev/sda하드디스크의 경우 하드디스크의 인터페이스 종류와 같은 장치 파일이 있습니다 ./dev/hda

    장치 파일이 있다는 것은 하드 드라이브의 드라이버가 실행 중이라는 의미입니까?

    어떤 장치 드라이버인지 어떻게 알 수 있나요?

  2. 하드 드라이브의 파티션에는 /dev/sda1또는 /dev/hda1.

    해당 장치 파일이 있다는 것은 해당 파티션의 드라이버가 실행 중이라는 의미입니까?

    어떤 장치 드라이버인지 어떻게 알 수 있나요?

    디스크 파티션용 드라이버는 디스크용 드라이버와 동일합니까?

  3. 하드 디스크 파티션에 있는 파일 시스템의 경우 /.

    파일 시스템을 마운트하기 전에 파일 시스템 드라이버가 실행되고 있지 않습니까?

    파일 시스템에는 해당 파일 시스템 유형에 대한 장치 드라이버가 있으므로(예를 들어 Linux에는 ntfs 파일 시스템에 대한 일부 장치 드라이버가 있음) 파일 시스템이 장치로 간주됩니까?

    파일 시스템의 장치 파일은 무엇입니까? 파일 시스템의 마운트 디렉터리가 파일 시스템의 장치 파일인가요?

답변1

  1. 예, /dev/sda와 같은 디스크 장치가 존재한다면 해당 디스크의 드라이버가 로드되었다는 의미입니다. 다음을 실행하여 정확한 드라이버를 확인할 수 있습니다.

    ls -l /dev/sda

    brw-rw---- 1 루트 디스크 8, 0 Apr 8 2014 /dev/sda

이 경우 메이저 번호 = 8이므로 커널 소스 코드에서 이 드라이버가 무엇인지 검색할 수 있습니다.

  1. 실행 중인 파티션 같은 것은 없습니다. 그리고 파티션 드라이버가 없습니다. 파티션은 스토리지 드라이버를 통해 액세스되는 스토리지 장치의 일부입니다(포인트 1 참조).

    ls -l /dev/sda1

    brw-rw---- 루트 디스크 1개 8, 2014년 4월 8일 1일 /dev/sda1

  2. 파일 시스템의 경우 올바른 이름은 드라이버가 아닌 커널 모듈입니다. 드라이버는 장치에 따라 다릅니다. 파일 시스템에 마운트되지 않은 경우에도 모듈을 로드할 수 있습니다. 그것은 독립적이다. 파일 시스템에 장치 파일이 없습니다.

답변2

리눅스에서는 "운전사"는 특정 하드웨어를 지원하는 "커널 모듈"만큼 사용됩니다.

커널 지원은 옵션이 선택되고 커널이 소스에서 컴파일되어 두 가지 형태(정적 또는 동적으로 로드된 모듈)로 제공될 때 결정됩니다. (모놀리스 대 마이크로커널)

정적 모듈은 기본 기능을 확장하기 위해 필요에 따라 핵심 기능과 동적 모듈을 로드할 수 있는 커널의 고정 부분입니다.

블록 및 문자 장치의 이름은 적어도 커널에는 중요하지 않습니다. 메이저 및 마이너 번호는 커널이 액세스하기 위해 사용하는 모듈을 나타냅니다. 메이저 및 마이너 번호의 범위는 정적으로 할당됩니다(확인Documentation/devices.txt커널 소스 코드에 나열됨), 최신 커널 모듈에서는 동적 메이저/마이너 번호 매기기를 사용합니다.

첫 번째 SCSI 디스크를 호출하는 것은 순전히 관례이지만 /dev/sda커널이 액세스할 올바른 모듈을 선택하는 데 사용되는 기본 및 번호입니다.

ls -l /dev/sda 
brw-rw---- 1 root disk 8, 0 Apr 8 2014 /dev/sda 

예를 들어, 동일한 매직 넘버 8,0을 사용하여 새 장치를 설정하여 동일한 디스크에 액세스할 수 있습니다.mknod

 mknod /dev/my-first-disk b 8 0

이를 통해 귀하의 첫 번째 질문에 대한 답변에 더 가까워졌습니다.장치 항목이 있다는 것은 실행 중인 커널이 이를 지원한다는 의미입니까? 아니요.mknod를 사용하면 커널 모듈에서 사용/예약되지 않은 장치라도 메이저 및 마이너 번호와 이름으로 장치를 만들 수 있습니다.

미묘한 차이는 대부분의 사람들이 자신의 장치를 만들지 않고 대신에 의존한다는 것입니다.우데브이를 동적으로 수행하십시오. 그런 다음 장치 이름이 있으면 일반적으로 일부 하드웨어가 올바르게 식별되었음을 나타냅니다.

현재 로드된 동적 모듈을 표시 lsmod하지만 사용 가능한 정적 지원을 위해서는 커널을 빌드하는 데 사용되는 컴파일 시간 옵션에 대한 지식이 필요하며 일반적으로 /boot/config-<kernel-version>정적 지원은 항상 사용 가능합니다.

파일 시스템은 장치가 아니라 장치에 저장된 바이트를 사용 가능한 데이터로 변환하는 계층입니다. 훨씬 더여기

관련 정보