2012-05-24 2 views
4

제목에서 알 수 있듯이 Unix 커널이 논리적 파일 오프셋을 논리 블록 번호로 변환 한 다음 i- 노드에서 가져 오는 방법을 알아내는 데 문제가 있습니다.유닉스 커널은 어떻게 파일 오프셋을 변환합니까?

참고로 Maurice J. Bach의 "UNIX 운영 체제 디자인"에서 처음 설명한 "bmap"알고리즘에 대한 자세한 설명을 참조하겠습니다.

은 .. 감사

+0

일반적으로 매핑은 기본적으로 디렉토리 계층 및 파일 데이터를 플랫 블록 장치의 표현 및 범위에 매핑하는 데 사용됩니다. 필자는 원래 유닉스에 익숙하지 않았기 때문에 구체적인 도움을 줄 수 없다. – pmdj

+0

@pmjordan : 감사합니다. 필자는 유닉스 파일 시스템에 대한 정보를 요구하지 않고있다. ext2에 관해서는 나에게 잘 될 것이다. – user996922

답변

4

나는 불행하게도 UNIX의 원래 구현에 당신을 도울 수있다; 상위 레벨 디렉토리 계층 구조를 온 디스크 표현에 맵핑하고 베어 블록 디바이스의 범위를 파일에 할당하는 작업은 보통 하나 이상의 파일 시스템으로 떨어집니다. POSIX 스펙은 파일 시스템에 대한 몇 가지 높은 수준의 요구를하지만 실제로 디스크에서 끝나는 것은 각 파일 시스템에 따라 다릅니다.

ext2 파일 시스템은 비교적 간단하지만, 책의 전체 장을 여전히 채우고 있습니다. 그러한 책은 입니다. Linux 커널 이해 Daniel P. Bovet 및 Marco Cesati.

더 간단하고 높은 수준의 소개 문안은 리눅스 커널 자체와 함께 제공되며 can also be found here입니다. 그 디렉토리에는 또한 documentation on other Linux file systems과 "VFS"레이어가 포함되어 있습니다.이 레이어는 모든 파일 시스템이나 대부분의 파일 시스템에 공통적 인 많은 상위 레벨 요소를 처리합니다. Wikipedia's ext2 article도 높은 수준에서 그것을 다룹니다. 또한 자세한 온라인 설명에 대한 링크도 제공합니다.

이것은 유감스럽게도 SO 답변에 들어 맞는 주제는 아니지만 위의 안내가 도움이되기를 바랍니다.