30
2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r 빌빌빌빌빌 빌빌 FAT 빌 빌빌빌 빌 !!!

빌게이츠가 만든 FAT 을 공부하자 !!!

Embed Size (px)

DESCRIPTION

빌게이츠가 만든 FAT 을 공부하자 !!!. 정말 빌게이츠가 만든것 맞아 ??. 그럼 FAT 이 뭐야 ?????. File Allocation Table 의 FAT 이라는것 !. 뚱뚱한 파일 시스템 ???. 아니라는것 !!!. 그럼 FAT 은 어떻게 생겨먹었는데 !??. 링크드 리스트 형태로 데이터를 관리하는 파일 시스템 초간단 파일 시스템 !!!!!!!!!!!!!!! 이라는것 !!!. 빌 ~~~ 당신은 천재 !!~~ 너무 간단해 !!!. - PowerPoint PPT Presentation

Citation preview

Page 1: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

빌게이츠가 만든

FAT 을 공부하자 !!!

Page 2: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

정말 빌게이츠가 만든것 맞아 ??

Page 3: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼 FAT 이 뭐야 ?????

뚱뚱한파일 시스템 ???아니라는것 !!!

File Allocation

Table의 FAT 이라는것 !

Page 4: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼 FAT 은 어떻게 생겨먹었는데 !??링크드 리스트 형태로

데이터를 관리하는 파일 시스템

초간단 파일 시스템 !!!!!!!!!!!!!!!

이라는것 !!!

빌 ~~~당신은 천재 !!~~너무 간단해 !!!

Page 5: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

링크드 리스트 구조 아시죠 ????꼬리에 꼬리를 무는 자료구조 !!!

Page 6: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

FAT 파일 시스템의 형태를 먼저보자 !!!FAT12 TABLE 1 섹터 9 개

FAT12 TABLE 2 섹터 9 개

Root Directory Entry 섹터 14개

Data Area 클러스터 단위

이렇게 생겨먹었다 !!!

Page 7: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

“FAT 테이블”은 뭐죠 ???

FAT12 TABLE 1 섹터 9 개

FAT12 TABLE 2 섹터 9 개링크드 리스트 정보가 저장된어 있는장부다 !!!

Page 8: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼 FAT 장부는 어떻게 생겼어 ???

FAT12 TABLE 1 섹터 9 개클러스터번호 클러스터번호클러스터번호 클러스터번호클러스터번호 클러스터번호클러스터번호 클러스터번호클러스터번호 클러스터번호클러스터번호 클러스터번호클러스터번호 클러스터번호

Page 9: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼“ Root 디렉토리 엔트리”는 뭐죠 ???

이안에 파일 4개에대해서 적혀있다 !!!!!그런데 처음 시작번호는여기 없다 ..디렉토리장부( 테이블 ) 에 있다 !!1

Page 10: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

파일을 뽑아보자 !!!!!!

그런데 이곳엔 처음 시작 클러스터 번호는 없다 . 어디있을까 ?

Page 11: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

FAT12 FAT16 FAT32 의 차이점은 ????클러스터번

호클러스터번

크기차이다 !!FAT12: 12 비트 , FAT16:16 비트 , FAT32 : 32 비트

클러스터번호

클러스터번호클러스터번

호클러스터번

호클러스터번호

클러스터번호클러스터번

호클러스터번

호클러스터번호

클러스터번호클러스터번

호클러스터번

Page 12: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

FAT 테이블에 어떤값들이 저장되나 ???

FAT12 FAT16 FAT32

0x000 0x0000 0x0000000 Free Cluster

0x001 0x0001 0x0000001 Reserved Cluster

0x002 - 0xFEF

0x0002 - 0xF-FEF

0x0000002 – 0xFFFF-FEF

Used cluster;value points tonext cluster

0xFF0 - 0xFF6

0xFFF0 - 0xFFF6 0xFFFFFF0 – 0xFFFFFF6 Reserved values

0xFF7 0xFFF7 0xFFFFFF7 Bad cluster

0xFF8 - 0xFFF

0xFFF8 - 0xFFFF 0xFFFFFF8 – 0xFFFFFFF Last cluster in file

Page 13: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼“ Root 디렉토리 엔트리”는 뭐죠 ???

Root Directory Entry 섹터 14개 그렇다

Dir 할때보여주는“ 파일목록”이 저장된 이것도 장부다 !!!

Page 14: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

그럼 루트 디렉토리가 어떻게 생겼는지 확인해보자 .!!!

파일이름 8byte확장자3byte

속성1byte

예약영역

1byte

ZERO3 BYTE

ZERO6 BYTE

TIME2

BYTE

DATE2

BYTE

FAT포인터

2 BYTE

SIZE4 BYTE

Page 15: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

Page 16: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

CHOBITS.BIN 을 읽어보자 !!!!!!

1.디렉토리 엔트리에 ..’CHOBITS.BIN’ 가

있는지 뒤진다 !!!!2. 있으면…시작 클러스터번호을 알아낸다 .3. 해당 클러스터을 읽어낸다 !!!!!4. 이제 이전 클러스터번호에 해당하는

FAT 테이블에 가서 값을 읽어본다 . 이값이

‘ FF8~FFF’ 가 아니며 3 번을 반복한ㄷ .

Page 17: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

이제 소스를 봐보자 !!!!

1.디렉토리 엔트리에 ..’CHOBITS.BIN’ 가

있는지 뒤진다 !!!!

Page 18: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

2. 있으면…시작 클러스터번호을 알아낸다 .

Page 19: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

3. 해당 클러스터을 읽어낸다 !!!!!

Page 20: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

3. 해당 클러스터을 읽어낸다 !!!!!

Page 21: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

Int 13h 는 뭐죠 ?????

Page 22: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

섹터 번호에서 트랙번호해드번호를 어떻게 알아내요 ?

Page 23: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

클러스터는 뭐단말인가 ??

Page 24: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

섹터 번호에서 트랙번호해드번호를 어떻게 알아내요 ?

트랙번호 = 섹터번호 / (Sectors per track*2)

해드번호 = 섹터번호 / Sectors per track

섹터번호 in Track = 섹터번호 % Sectors per track + 1

물리 섹터는 0 번부터가 아니고 1번부터이기 때문에 1 을 더해준다 .

Page 25: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

DIR 을 구현해볼수 있습니까 ????

디렉토리 엔트리의 내용을 주면 되는것

아닌가 ?????? 쉽겠네 !!!

Page 26: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

DIR 을 구현해볼수 있습니까 ????

Page 27: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

Page 28: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

Page 29: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

FAT12 파일 시스템의 부트섹터를 까보자 !

Bios Param-eter Block

Boot Code

Page 30: 빌게이츠가  만든 FAT 을 공부하자 !!!

2 3 t h K o r e a O p e r a t i n g S y s t e m S e m e n a r

Bios Param-eter Block