WOW CD

CD한 장에 1GB가 넘는 여러 가지 윈도우가 들어가는 비밀은?

윈도우를 사용하는 사람이라면 와우 CD 라는 말을 많이 들어봤을 것이다. 와우 CD는 여러 가지의 윈도우를 1장의 CD에 담고 있는 것을 말한다. 윈도우 2000 CD만 해도 5장이 기본인데 어떻게 1장에 다 들어갈까? 만약 이게 가능하다면 과연 어떠한 원리로 이렇게 되는 것일까?

■ 중복되는 부분을 공유함으로써 용량 절감


설치를 진행하는 초기화면

윈도우 2000의 제품은 여러 종류가 있고, 그래서 CD도 5장에 육박한다. 하지만 와우 CD는 단지 1장만으로 모든 셋업 프로그램이 해결된다. 어떻게 이런 일이 생기는 걸까?

와우 CD의 기본 원리는 매우 간단하다. 각 제품마다 실행되는 프로그램이 있는데 여기서 매우 많은 양이 중복된다는 것이다. 이 중복되는 부분을 함께 사용하게 만들어 줌으로써 엄청난 데이터의 양이 줄어들게된다.



■ 한 개의 파일에 여러 개의 포인터가 대용량의 비밀


와우 CD가 정말 존재함을 알 수 있다. 자세한 디렉토리까지 보여준다.


i386 폴더 안에 포함돼 있는 driver.cab이란 파일 내부

와우 CD는 CDFS라는 CD-ROM 파일 구조에서 약간의 변형을 가하는 작업이다. 보통 파일 시스템에서는 검색의 효율성을 감안해서 인덱스 구조로 파일을 관리하게 된다. '인덱스 + 실제 데이터'의 방식으로 운용하게 되는데, 이런 인덱스의 내용에는 파일명과 여러 가지 속성(변경 날짜, 일반 파일, 시스템 파일 등), 그리고 실제 데이터가 저장된 위치를 가리키는 포인터로 구성된다.

하드디스크는 보통 실린더, 헤드, 섹터의 구조를 가지고 데이터의 읽기/쓰기 헤더를 움직여서 읽기/쓰기 기능을 수행한다. 하지만 운영체제가 이러한 구조로 움직인다면 효율성면에서 매우 저하되기 때문에 운영체제만의 구조로 작동해야 한다. 마이크로소프트에서는 클러스터 단위로 작동한다. 클러스터의 구조는 '시작 클러스터 번호 + 다음 클러스터 번호'와 같은 방식으로 이뤄진다.

예를 들어서 각제품의 i386 폴더에는 Drivers.cab이라는 파일들이 있다. 각 파일의 대략적인 사이즈는 57메가 정도다. 이 파일 3가지만 모아도 벌써 170메가바이트를 차지하게 된다. CDimage 프로그램의 -o 옵션은 이것을 수정한다.



■ 부팅 폴더를 만들어 원하는 버전으로 부팅 가능


3가지 제품 모두에 들어가 있는 i386 디렉토리의 구조

개인용 PC의 경우는 BIOS 기반으로 작동하고, 운영체제 역시 이 BIOS에 많이 의존한다. 와우 CD의 경우 CD-ROM으로 부팅해야 하기 때문에 BIOS에서 CD-ROM을 처음 부팅 장치라고 설정한 후 진행해야 하고, CD-ROM에 설치 CD를 넣은 상태에서 부팅한다.

보통 윈도우나 도스의 경우에는 1.44MB의 부팅 영역이 지원되나 윈도우 2000의 경우 더 많은 양이 돼 직접적으로 부트 섹터 부분에 넣을 수는 없다. 그래서 CD에 포함되는 것이 바로 부트 섹터다(부트 섹터가 들어간 CD는 부팅 CD라 칭함)

부팅 CD는 부트 섹터에서 부팅 영역을 읽어 들인 후 NTLDR를 읽어 들이고 그후에 NTDETECT. COM 파일을 실행해서 간단한 하드웨어 테스트를 한다.

그리고 설치에 필요한 드라이버를 읽어들이고 설치 프로그램을 작동하는 방식이다. 와우 CD의 경우는 한 CD에 3가지 제품이 있기 때문에 일반적인 방식으로는 1가지 제품밖에 부팅하지 못한다. 즉 멀티부팅을 하게 된다는 말이다.

WPRO 라는 Professional 버전 부팅 폴더
WSRV 라는 Server 버전 부팅 폴더
WADV 라는 Advanced Server 버전 부팅 폴더


※ CD Image란?
CDFS라는 CD 파일 시스템 역시 이런 방식을 따르게 된다. CDimage 프로그램은 CD-ROM 프리마스터링 유틸리티(Cdrom Premastering Utility)다. 즉 파일 시스템을 기초로 해서 CD-ROM 파일 구조인 ISO 파일을 생성해준다. 와우 버전은 마이크로소프트의 CDimage.exe 파일이 핵심이 되어 만들어진다. 여기서 핵심이 되는 것이 바로 옵션인 CDimage -o이다. CDFS(CDrom File System)를 ISO 방식으로 제작할 때 위와 같은 옵션을 주게 되면 파일 인덱스에 링크를 만들게 된다.

즉 3가지 제품(Professional 버전, Server 버전, Advanced Server 버전)에서 공통적으로 사용되는 파일들의 인덱스 부분을 수정하게 되는 것이다. 3가지 제품은 모두가 윈도우 2000 기반이고(이 점이 핵심이다. 공통된 부분을 통합해서 사용하기 때문이다), 각 버전별로 따로 몇 가지 기능을 추가하기만 하면 와우 버전이 완성되는 것이다.

출처 : 월간 PC Line 2002년 1월호