나는 책을 읽고 있습니다LWN에 관한 기사여기에는 중요한 진술이 있습니다.
원시 장치(/dev/raw/rawN)는 O_DIRECT I/O의 특별한 경우입니다. 이러한 장치는 O_DIRECT를 지정하지 않고도 열 수 있지만 여전히 직접 I/O 의미를 제공합니다. 따라서 O_DIRECT로 열린 파일(또는 장치)에 적용되는 원시 장치에도 동일한 규칙이 모두 적용됩니다.
/dev/sda
이것은 오늘날의 상황 과 다른 상황을 의미하는가 ?
답변1
아니요, /dev/raw
기존의 것과 동일 하지 않습니다 /dev/sda
. ~에 따르면Linux 2.4 SCSI 하위 시스템 HOWTO: 11장. 원시 장치:
원시 장치는 기존 블록 장치(예: 디스크)에 바인딩되어 해당 기존 블록 장치로 "원시" IO를 수행하는 데 사용될 수 있습니다. 이 "원시" IO는 일반적으로 블록 장치와 관련된 캐시를 우회합니다. 따라서 원시 장치는 물리적 장치에 대한 보다 "직접적인" 경로를 제공하고 애플리케이션이 해당 물리적 장치에 대한 IO 타이밍을 더 효과적으로 제어할 수 있도록 합니다. 이는 일반적으로 자체 캐싱을 수행하는 데이터베이스 관리 시스템과 같은 복잡한 애플리케이션에 원시 장치를 적합하게 만듭니다.
원시 장치는 문자 장치(주 번호 162)입니다. 첫 번째 마이너 번호(즉, 0)는 제어 인터페이스용으로 예약되어 있으며 일반적으로 /dev/rawctl에 있습니다. raw라는 유틸리티(man raw 참조)를 사용하여 원시 장치를 기존 블록 장치에 바인딩할 수 있습니다. 이러한 "기존 블록 장치"는 디스크 또는 CDROM/DVD일 수 있으며 기본 인터페이스는 Linux에서 지원하는 모든 인터페이스(예: IDE/ATA 또는 SCSI)일 수 있습니다.
HOWTO의 정보 외에도 읽어야 할 다른 소스가 있습니다.