티스토리 뷰
지난 번 포스트에서는 하드디스크를 인식시키는 과정을 했다. 물론 그 과정만으로 데이터를 저장할 수도 있겠지만, 파일의 저장과 관리를 효율적으로 하기 위해서는 그 데이터 저장에도 원칙이 있어야 한다. 그 원칙이 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로 이뤄진다.
파일생성과 삭제가 잘 이뤄지는 것을 확인할 수 있다.
'Study > OS' 카테고리의 다른 글
[OS] Mint64OS 28절 Serial Communication. (0) | 2013.02.06 |
---|---|
[OS] Mint64OS 27절 file system cache / Ram disk (0) | 2013.02.05 |
[OS] Mint64OS 26절 Standard IO Function (0) | 2013.02.05 |
[OS] Mint64OS 24절 HardDiskDrive (0) | 2013.02.01 |
[OS] Mint64OS 23절 Dynamic Memory Allocation (0) | 2013.01.31 |
[OS] Mint64OS 22절 실수 연산 (0) | 2013.01.30 |
[OS] Mint64OS 21절 MultiThreading (0) | 2013.01.30 |
- Total
- Today
- Yesterday
- reward
- TensorFlow Lite
- Policy Gradient
- 파이썬
- Kinect for windows
- processing
- End-To-End
- 한빛미디어
- DepthStream
- PowerPoint
- Variance
- Gan
- Windows Phone 7
- ColorStream
- dynamic programming
- 강화학습
- ai
- 딥러닝
- Pipeline
- Offline RL
- Distribution
- RL
- Expression Blend 4
- Kinect
- Off-policy
- bias
- SketchFlow
- windows 8
- arduino
- Kinect SDK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |