CD한 장에 1GB가 넘는 여러 가지 윈도우가 들어가는 비밀은?
윈도우를 사용하는 사람이라면 와우 CD 라는 말을 많이 들어봤을 것이다. 와우 CD는 여러 가지의 윈도우를 1장의 CD에 담고 있는 것을 말한다. 윈도우 2000 CD만 해도 5장이 기본인데 어떻게 1장에 다 들어갈까? 만약 이게 가능하다면 과연 어떠한 원리로 이렇게 되는 것일까?
■ 중복되는 부분을 공유함으로써 용량 절감
윈도우 2000의 제품은 여러 종류가 있고, 그래서 CD도 5장에 육박한다. 하지만 와우 CD는 단지 1장만으로 모든 셋업 프로그램이 해결된다. 어떻게 이런 일이 생기는 걸까?
와우 CD의 기본 원리는 매우 간단하다. 각 제품마다 실행되는 프로그램이 있는데 여기서 매우 많은 양이 중복된다는 것이다. 이 중복되는 부분을 함께 사용하게 만들어 줌으로써 엄청난 데이터의 양이 줄어들게된다.
와우 CD는 CDFS라는 CD-ROM 파일 구조에서 약간의 변형을 가하는 작업이다. 보통 파일 시스템에서는 검색의 효율성을 감안해서 인덱스 구조로 파일을 관리하게 된다. '인덱스 + 실제 데이터'의 방식으로 운용하게 되는데, 이런 인덱스의 내용에는 파일명과 여러 가지 속성(변경 날짜, 일반 파일, 시스템 파일 등), 그리고 실제 데이터가 저장된 위치를 가리키는 포인터로 구성된다.
하드디스크는 보통 실린더, 헤드, 섹터의 구조를 가지고 데이터의 읽기/쓰기 헤더를 움직여서 읽기/쓰기 기능을 수행한다. 하지만 운영체제가 이러한 구조로 움직인다면 효율성면에서 매우 저하되기 때문에 운영체제만의 구조로 작동해야 한다. 마이크로소프트에서는 클러스터 단위로 작동한다. 클러스터의 구조는 '시작 클러스터 번호 + 다음 클러스터 번호'와 같은 방식으로 이뤄진다.
예를 들어서 각제품의 i386 폴더에는 Drivers.cab이라는 파일들이 있다. 각 파일의 대략적인 사이즈는 57메가 정도다. 이 파일 3가지만 모아도 벌써 170메가바이트를 차지하게 된다. CDimage 프로그램의 -o 옵션은 이것을 수정한다.
개인용 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 버전 부팅 폴더 |
출처 : 월간 PC Line 2002년 1월호