.

파일 시스템 정리

by 담배맛구마

> 파일시스템에 대해서 강의들을 기회가 있어서 강의내용과 평소 궁금했던거 정리



1.


파일시스템은 데이터들을 효과적으로 관리하기 위한 구조적인 틀.


파일 시스템 관련된 자료들을 찾아보면 항상 HDD 이미지 한장 올려놓고 섹터가 뭐니 클러스터가 뭐니 부터 시작한다.

파일 시스템이 어떻든 간에 결국 데이터들은 HDD같은 저장매체에 담기기 때문이다.


뭐 요런 이미지


대략적으로 살펴보면 플래터(하나의 판)를 파인애플마냥 쪼개서 구분하고있다.


B의 Sector는 데이터를 기록하는 최소 단위이다. HDD의 경우 전통적으로 512 Byte이다. (매체마다 다른듯?)

엄밀히 따지면 571 Byte 인데, 59 Byte는 Sector의 식별을 위한 고유값이라고 한다. 결국 데이터 저장 공간은 512 Byte!

왜 512 Byte 인지에 대한 어떤 근거나 유래? 같은건 찾아봐도 안나오네


D의 Cluster는 Sector의 집합이다. 이건 SW적으로 구현한 것인데 점점 전산장비들이 처리하는 데이터 크기가 증가하면서 기존의 Sector 단위로 데이터를 처리하게되면 공간의 효율적 사용은 가능하겠지만 읽고  쓰는 속도가 너무 느려짐.

그래서 Sector들을 묶어서 Cluster라는 개념을 만들어서 데이터를 읽고 씀.


Cylinder 그림 넣고싶은데 맘에드는게없네 귀찮아 걍 생략!




2.


Sector나 Cluster들에 뭔가 값을 읽고 쓰려면 하나의 Sector나 Cluster를 주소를 지정하는 방식이 필요하다.


주소지정 방식으론 CHS, LBA 방식이 있는데 현재는 LBA를 많이 사용한다.


CHS 방식은 Cylinder-Head-Sector의 약자로 Cylinder와 Head, Sector의 구조로 주소를 지정하는 방식이다.

이름부터 냄새가 나듯 HDD의 물리적인 구조를 그대로 따다가 주소를 지정한다.

예를 들어, CHS(1, 2, 3)은 1번 Cylinder에 2번 Head로 3번 Sector를 지정한다.


CHS가 가졌던 문제점은 HDD 인터페이스와 BIOS 인터페이스와의 차이로 인해 용량에 한계가 있었음.

HDD 인터페이스는 CHS(16, 4, 8) 까지 지원

BIOS 인터페이스는 CHS(10, 6, 6) 까지 지원

따라서, 최대한 맞추면 CHS(10, 4, 6) 까지만 지원 가능해지므로

2^10 * 2^4 * 2*6 * Sector Size(512 Byte) = 504MB


LBA 방식은 Linear Based Address는 이름에서 냄새가 나듯 Sector들을 선형으로 나열한것처럼 하는 방식!

초기에는 CHS 처럼 28Bit 주소 방식사용하다가 128GB라는 용량 한계가 생겨서

48Bit 주소 방식으로 늘렸어. 이건 144PB까지 사용 가능함



컴퓨터 관련되서 표준들보면 이런식으로 그 당시에는 아무문제없다고 부족함없다고 판단했다가

다시 늘리거나 변경하는 경우가 많은것 같다. 적절한진 모르겠지만 IPv6

144PB도 언젠가는 부족해질테고 어떻게 바뀔진 모르겠다.



3.


원래는 MBR 언급하고 바로 FAT32 할라했는데 Partitioning을 먼저 하는게 맞는거 같음.

왜냐하면 MBR은 Partitioning된 저장매체(HDD 등)에서 정보를 저장하는 Sector이기 때문.


Partitioning은 말 그대로 HDD나 SSD 등의 저장 매체를 논리적으로 쪼개는 기법이다.


Partitioning을 했다는 것의 정보를 저장하는데 크게 MBR(Master Boot Record), GPT(GUID Partition Table)이 있다.


MBR은 IBM PC XT의 DOS 2.0 부터 사용되어서 현재까지도 쓰이고 있는 오래된 방식이다.


MBR은 Partitioning이 된 저장 매체의 첫 번째 Sector에 위치하며 그 크기도 딱 512 Byte이다.


부팅을 위한 코드 446Byte와 16Byte로 구성된 4개의 Partition 정보와 2Byte의 MBR Signature로 구성된다.


요렇게 생겼!

어... 이미지에 주황색 부분이 MBR로 되어있는데 사실 Master Boot Code로 표현하는게 맞다.



Partition 정보는 다음과 같이 해석하면 된다.



반응형

'Note' 카테고리의 다른 글

TCPDUMP로 웹 서비스 패킷을 이쁘게 찍어보자  (0) 2021.09.05
NTP(Network Time Protocol)  (0) 2018.07.29
Bootable DOS by CD For Firmware Update  (2) 2018.07.29
Chrom Offline Installer for Win32  (0) 2017.09.11
Project Euler  (0) 2015.09.12

블로그의 정보

정윤상이다.

담배맛구마

활동하기