본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

리눅스 2.4커널 기반 파일 시스템 분석

by kyuho.choi 2009. 7. 9.
728x90
반응형
2.4대 커널의 리눅스에서 파일 시스템을 다루는 방법에 대하여 간단히 정리해보도록 한다.

파일 시스템의 마운트에 있어 두 가지 유용한 방법이 있는데(네트워크), 

    nfs(network file system) : connection ness
    rfs(remote file system) : connection oriented

의 방식을 들 수 있다. nfs와 rfs의 차이에는 connection 즉 시스템 로그인에 대하여 차이를 보이는 데, 

nfs의 경우는 인증된 클라이언트가 시스템에 접속하게 되는 경우 별도의 로그인 과정을 거치지 않고 

호스트의 파일 시스템을 마운트할 수 있다.

rfs의 경우 시스템 로그인 과정 후에 클라이언트는 호스트의 파일 시스템을 마운트 할 수 있으며, 

원하는 작업이 끝난 후 로그아웃을 해야하는 차이를 보인다.


이와 유사하게 coda filesystem의 경우 connection이 끊겨도 재연결시에 data를 유지하는 특성이 있으며,

nfs, rfs와 유사한 용도로 사용하는 samba도 네트워크를 통한 파일 시스템의 마운트 작업을 할 수 있다.

하지만 ftp와 ssh를 사용하는 게 더 낫지 않은가 싶기도 하지만, 그래도 파일 시스템이니 계속 정리하도록 한다. ㅡ,.ㅡㅋ

커널 레벨에 존재하는  VFS(Virtual File System)에서는 여러 타입의 파일 시스템을 지원하고 있는 데, 

그 중 주목할 만한 것으로 /proc 파일 시스템을 언급하지 않을 수 없다.


/proc의 경우 루트파일시스템에서 확인할 수 있는 데, 이 것의 특징은 디스크가 아닌 memory영역에 존재하며, 

컴퓨터의 상태 정보를 확인할 수 있는 특수 파일 시스템이라 할 수 있다.


저장 장소를 기준으로 파일시스템에서 사용되는 용어가 분류 되는 데, 블록의 경우 디스크로 페이지 프레임의 경우 메모리로

그 존재 영역이 구분된다.


디스크 블록 관리 기법 또한 크게 두 가지로 나눌 수 있다.

    연속할당 : 대용량 file 저장 용이성, 디스크 효율성 감소의 특징
    불연속할당 : 블록 체인 사용으로 저장된 파일 관리의 용이성

위 두 방법의 공통적인 단점으로 대용량 파일 관리의 어려움을 들 수 있다.

불연속 할 당의 경우  index 블록을 사용하여 한 파일 마다 하나의 스트럭처를 지니게 되는 데,

리눅스/유닉스에서는 이를i-node structure라 하며,  inode는 /include/linux/ext2_fs_i.h 파일에 정의되어 있다.



파일 관리는 4가지로 구분되며

    direct -> 4*12 -> 48 
    indirect -> 4*1024 -> 4096(4M)
    2 indirect -> 4*1024*1024 -> 4G
    3 indirect -> 4*1024*1024*1024 

위와 같이 구분되지만, 실제 리눅스에서는 2indirect 까지만 사용되며 3indirect의 경우는 흔히 사용되는 방법은 아니다.

(대용량의 파일을 전용으로 관리해야하는 필요가 있는 경우 사용)

작성 시간 관계상 다음 내용은 추후에 작성예정 -_-;;
728x90
반응형

댓글