임베디드 시스템 개발의 필수 코스, 파일시스템 제작의 원리와 실습을 파헤친다!
[임베디드 시스템 개발 단계의 필수 코스]
부트로더 개발 → 파일시스템 개발 → 커널/디바이스 드라이버 → 응용프로그램 개발
주요 파일시스템
윈도우 영역의 양대 산맥 파일시스템 FAT과 NTFS
리눅스 커널 2.6의 기본 파일시스템 EXT2와 EXT3
CD-ROM 미디어의 특징을 잘 살린 ISO9660 파일시스템
원리를 깨닫고 실습으로 익혀 최적의 파일시스템을 개발한다!
파일시스템은 공개된 소스가 많아 쉽게 가져다 쓸 수 있다. 그러나, 그냥 가져다 쓰는 소스는 확장성이 떨어지고 사후 관리도 불안하여 기존 파일시스템을 기반으로 하여 대부분 자체 파일시스템을 개발하게 된다. 즉, 임베디드 시스템 개발의 필수 개발 코스가 되어버린지 오래다.
이 책은 개념과 원리에서 그치지 않고 실습하면서 독자의 현장 적응력을 길러주는 데 주력하였다. 또한, 가장 많이 활용되는 범용적인 파일시스템을 다루어 이를 기반지식으로 다양한 파일시스템 학습을 스스로 해나갈 수 있도록 그 토대를 제공한다.
주요 원리와 실습
파일시스템과 저장 장치의 이해 + 실제 저장 장치에서 섹터를 읽고 화면 출력 실습
파티션의 종류와 구조(MBR 및 DOS 파티션 구조) + 파티션 정보 분석과 화면 출력 실습
FAT의 부트레코드 + 부트 레코드가 담겨 있는 섹터를 읽고 분석하는 실습
FAT의 데이터 저장 알고리즘 + 파일의 이름과 크기를 분석하는 실습
FAT 파일시스템의 실제 원리 + 섹터를 읽어 파일 데이터를 다른 볼륨에 복사하는 실습
NTFS 메타데이터 및 속성의 원리 + 속성 분석 및 메타데이터 파일 분석 실습
NTFS B-Tree 분석과 실제 동작 원리 + B-Tree 실습과 NTFS 최종 실습
EXT2의 데이터 저장 알고리즘 + 섹터를 읽어 파일 데이터를 다른 볼륨에 복사하는 실습
EXT3 파일시스템의 저널링 분석 + EXT 파일시스템 최종 실습(파일 쓰기와 삭제 등)
ISO9660의 핵심 구조 분석 + ISO 파일을 읽어 파일 데이터를 다른 볼륨에 복사하는 실습
추천평(미디어서평)
"이 책의 진행 방식은 우선 파일시스템들의 구조를 분석한 후, 예제를 통해서 그 내용을 실습해보도록 하고 있다. 필자는 독자들에게 실습을 반드시 분석해보거나 실제로 따라 해보라는 말을 해주고 싶다. 때로는 100줄의 설명보다는 10줄의 소스 코드가 이해를 하는 데 도움이 되기 때문이다.
- 저자 서문 중에서