목록전체 글 (63)
Piki's Play
-> UFS(Unix File System)는 다양한 종류가 있으며 FreeBSD, HP-UX, NetBSD, OpenBSD, 애플 OS X, Sun 솔라리스 같은 유닉스 시스템에서 사용하는 파일시스템이다. 많은 운영체제들이 자신들에게 맞게 지속적으로 데이터 구조체들을 수정했지만, 내부구조의 개념은 거의 동일하다. 현재 이 파일시스템은 UFS1과 UFS2 두 종류가 있고, UFS2는 대용량 디스크와 더 큰 시간스탬프를 지원한다. 하지만 이 책에서는 두 파일시스템을 UFS라는 용어로 통일해서 사용하겠다. 수사관들은 유닉스 서버를 조사할 때 UFS 파일 시스템을 분석할 수 있다. Ext2와 Ext3는 UFS를 기반으로 발전했으며, 그 이유에 대해서는 앞장에서 상세히 설명했다. 이 장은 "Ext2와 Ext3 ..
14.6 응용프로그램 범주 - Ext3는 오직 한가지 응용프로그램 수준의 기능 즉, 파일스시템 저널만을 갖는다. Ext2에는 저널기능이 없고, 할당같은 다른 응용프로그램 범주기능이 일반 사용자 파일에 구현되어있다. ▶ 파일시스템 저널링 - 8장에서 설명했던 파일시스템 저널을 Ext3는 포함한다. 파일시스템 저널은 파일시스템이 손상되었을때 재빨리 복구할 수 있도록 파일시스템에 업데이트를 기록한다. ▷ 개요 - 파일시스템 저널은 보통 inode8을 사용한다. Ext3 저널은 슈퍼블록에서 위치가 지정되기 때문에 어디든 위치할 수 있긴하다. 저널은 호환시스템 기능으로 저널 사용시 슈퍼블록에 해당 값을 설정한다. 슈퍼블록은 또한 저널 장치를 위해 비호환 기능도 존재한다. 비호환 기능이 설정될 때 파일시스템은 외부..
14.5 파일 이름 범주 - 데이터 파일 이름 범주는 각 파일과 디렉토리 이름을 저장하는 데이터 구조체를 포함한다. 이 절에서는 그 데이터가 어디에 저장이되고, 그것들을 어떻게 분석하는지를 설명한다. ▶ 개요 - ExtX에는 파일이나 디렉토리의 이름을 저장하는 다양한 방법이 있는데, 여기서는 3가지 방법을 설명하겠다. 먼저 이름 할당에 사용하는 디렉토리 엔트리에 대해 알아보고 하드링크, 소프트 링크, 해시트리를 설명한다. ▷ 디렉토리 엔트리 - ExtX 디렉토리는 inode에서 특별한 타입 값이 있는 것을 제외하고는 정규 파일과 같다. 디렉토리들은 디렉토리 엔트리 데이터 구조체들의 목록을 포함할 블록들을 할당한다. 디렉토리 엔트리는 파일 이름과 파일의 메타데이터를 어디에서 찾을 수 있는지를 설명하는 간단..
-> 메타데이터 범주는 파일이나 디렉토리를 설명하는 데이터를 포함한다. 이 절은 데이터가 어디에 저장되어 있는지, 그리고 그것들을 어떻게 분석하는지에 대해 설명한다. ▶ 개요 - ExtX 에서 파일의 주 메타데이터는 inode 데이터 구조체에 저장된다. 추가적인 메타데이터는 확장된 속성들에 저장될 수 있다. ▷ inode - 모든 ExtX inode 들의 크기는 동일하고, 슈퍼블록에 정의되어있다. 한개의 inode는 모든 파일들과 디렉토리에 할당되고, 각 inode에는 1로 시작하는 주소가 있다. 슈퍼블록에서 크기가 주어지는 inode 집합은 각 블록 그룹에 할당된다. 각 그룹의 inode들은 테이블에 저장되고 그 위치는 그룹 기술자에서 주어진다. 그 그룹은 다음과 같은 계산으로 결정될 수 있다. gro..
- 내용범주는 파일과 디렉토리의 내용을 포함한다. 이 절에서는 ExtX 내용 범주와 해당 범주의 분석방법에 대해 알아본다. ▶ 개요 - ExtX는 데이터 유닛으로 '블록'을 사용하고 한 블록은 연속적인 섹터의 그룹이다. 이 절은 블록크기와 주소, 그리고 그것들의 할당 상태를 어떻게 결정하는지를 설명한다. ▷ 블록 - 한 ExtX 블록은 1024, 2048, 4096 바이트이고, 그 크기는 슈퍼블록에서 주어진다. - ExtX의 기초가된 UFS는 조각(fragment)로 한 블록을 나누었다. 조각크기를 문서화해서 알려주는 슈퍼블록 필드가 존재함에도 불구하고, ExtX의 리눅스 코드는 이것을 지원하지 않는다. 따라서 따로 명세가 없고, 이 책에서는 조각 크기가 블록 크기와 같다는 것으로 추측하고 있다. - 모..
- 많은 리눅스 운영체제 배포판은 기본 파일시스템으로 Ext2와 Ext3 파일시스템을 사용한다. Ext3는 기존의 Ext2에서 저널링 기능을 더했지만, 거의 모든 Ext2 구성은 그대로 남아있다. ExtX는 UFS(UNIX File System)를 기초로해서 만들었고, UFS의 쓸모없는 기능들을 제거하여 이해하고 분석하기 쉬워졌다. 다른 운영체제와 달리 리눅스는 많은 파일시스템을 지원하고, 각 배포판은 기본으로 사용할 파일시스템을 선택할 수 있다. - Ext3 파일시스템이 리눅스 기본 파일 시스템이지만, ExtX와 전혀 다른 구조를 가진 Reiser와 같은 파일시스템들을 사용하기도 한다. 이번 장에서는 ExtX가 어떻게 동작하는지 살펴보고 15장에서 데이터 구조체에 대해 다루도록 하겠다. 14.1 소개 ..