티스토리 뷰

Study/OS

[OS] Mint64OS 25절 File System

생각많은 소심남 2013. 2. 2. 17:15

지난 번 포스트에서는 하드디스크를 인식시키는 과정을 했다. 물론 그 과정만으로 데이터를 저장할 수도 있겠지만, 파일의 저장과 관리를 효율적으로 하기 위해서는 그 데이터 저장에도 원칙이 있어야 한다. 그 원칙이 File system이고, 몇년전까지만 해도 가장 일반적으로 쓰인 File system이 이른바 Table을 만들어서 관리하는 규약인 File Allocation Table (FAT) 방식이다. 여기서 등장하는 Table 의 Size에 따라서 뒤에 숫자가 붙는다. 예를 들어 FAT32인 것은 Table size가 32bit인 fileSystem인 것이다. *nix 규격에서는 따로 ext라는 file System을 사용한다.


 이 책에서는 독자적으로 File system을 만들되 전체적으로는 Table을 통해서 관리하는 형식을 취한다. 흔히 이런 file System에서는 Meta Data Area와 Data Area로 나뉘는데 앞에서 말하는 데이터의 저장은 실질적으로는 이 Data Area에서 이뤄진다. Meta Data는 실질적으로 Data의 간략한 정보를 담기 위한 조그마한 Table과 같은 것이고, 여기서는 보통 Cluster Link Table이 그 역할을 한다. 이 Meta Data안에는 Master Boot Record(MBR), Reserved, Cluster Link Table로 구성되어 있는데 이중 MBR은 하드디스크의 첫부분 섹터로 보통 bootLoader, partition, File system에 대한 정보를 담고 있다. 사실 윈도우를 설치하는 과정에서도 이 MBR을 지정하는 과정이 포함되어 있으며, 이 부분이 제대로 이뤄지지 않는 경우에는 부팅이 제대로 이뤄지지 않는다.

 파일을 삭제 했을 경우 OS 상에서 그 파일을 볼 수 없지만, 파일 복구 프로그램을 사용하면 거의 완벽하게 복원이 되는 것을 볼 수 있는데 이 경우로 보아 파일 삭제는 Data Area에 있는 실제 Data가 삭제되는 것이 아니라 이 Meta Data안의 파일에 대한 정보를 없애서 Access를 하지 못하게 하는 경우이다. 그래서 삭제를 했다 하더라도 Meta Data만 제대로 복원한다면 그 Data Area를 덮어쓰지 않는 한 복원할 수 있는 것이다.


당연한 이야기이겠지만 이런 File system을 구현하기 위해서는 간단한 파일 생성 및 삭제 관련 command가 필요하며, 해당 폴더내의 파일 정보도 읽을 수 있어야 한다. 여기서 제공하는 내용은 파일의 이름과 크기, 그리고 어느 cluster에 위치해 있는지를 알려줘야 하고, 내부적으로는 그 위치를 Cluster Link Table로부터 찾아서 접근하는 방식을 취한다.



초기에는 해당 파일 시스템으로 인식이 안되었기 때문에 초기화 과정이 수행되지 않는다.



역시 파일 시스템으로 등록되지 않았으므로 그 정보도 빼올 수가 없다. 정상적으로 인식시키기 위해서는 새로운 하드디스크를 format시키고 mount하는 과정을 거쳐야 한다. 윈도우에서는 이같은 과정을 GUI로 보여주고 리눅스에서도 gParted라는 것을 사용하면 GUI 환경에서 파일시스템을 구성할 수 있다.



정상적으로 인식되었고, 기본 검색단위가 Cluster로 이뤄진다.



파일생성과 삭제가 잘 이뤄지는 것을 확인할 수 있다.



댓글