ecryptfs(일반적으로 FUSE 파일 시스템)는 버퍼 캐시와 어떻게 상호 작용합니까?

ecryptfs(일반적으로 FUSE 파일 시스템)는 버퍼 캐시와 어떻게 상호 작용합니까?

내 가정(잘못된 것 같음)은 ecryptfs(보통 FUSE 파일 시스템)가 다음 스태킹 메커니즘을 사용한다는 것입니다.

  • 사용자 코드 문제read()
  • 커널은 기존(암호화되지 않은) 버퍼의 요청을 충족하려고 시도합니다.
  • 버퍼가 존재하지 않습니다. 커널이 ecryptfs에 청크 로드를 요청합니다.
  • ecryptfs는 커널이 물리적(암호화된) 블록을 로드하도록 요구하며, 커널은 이를 수행하고 이를 버퍼 캐시에 저장합니다.
  • ecryptfs는 물리적 블록을 해독합니다.
  • 커널은 해독된 블록을 버퍼 캐시에 저장합니다.
  • 후속 읽기는 캐시의 해독된 블록에서 수행됩니다.

그러나 암호화된 파일 시스템과 암호화되지 않은 파일 시스템에서 동일한 작업에 대한 "sys" 시간을 비교하면 캐시의 유일한 버퍼가 암호화되고 ecryptfs가 각 에서 실행되는 것으로 보입니다 read().퓨즈홈페이지에는 버퍼 캐싱에 대한 언급이 없지만, 블록 수준이 아닌 시스템 호출 수준에서 작업이 발생한다고 표시하는 것으로 보입니다.

ecryptfs(Dustin?) 또는 FUSE 내부에 익숙한 사람이 이 질문에 답할 수 있습니까?

관련 정보