윈도우 9x에서 리눅스를? 개발자가 만든 기상천외 프로젝트!

by DD
1개월 전
조회수 10

WSL9x는 Windows 9x 커널 내에서 Linux 커널을 실행하여 두 운영체제의 기능을 동시에 활용하도록 설계됨

VxD 드라이버(VxD Driver), 패치된 Linux 커널, wsl.com 클라이언트 프로그램으로 구성됨

GPF 핸들러(GPF Handler)를 활용하여 시스템 콜(System Call)을 처리하는 기술적 세부 사항이 존재함

커뮤니티에서는 재미(Fun)를 위한 프로젝트로, 기술적 성취에 대한 긍정적 평가가 주를 이룸

WSL9x 아키텍처 개요

WSL9x는 Windows 9x 커널 내에서 Linux 커널을 실행하기 위해 세 가지 주요 구성 요소를 활용한다. 패치된 Linux 커널(Patched Linux Kernel)은 Win9x API를 호출하도록 수정되었으며, VxD 드라이버(VxD Driver)는 WSL9x 초기화 및 시스템 콜 처리를 담당한다. 또한, wsl.com 클라이언트 프로그램은 MS-DOS 프롬프트를 TTY 윈도우로 사용하기 위한 인터페이스를 제공한다. 이러한 구성 요소들은 윈도우 9x 환경에서 리눅스 애플리케이션을 실행할 수 있도록 한다.

시스템 콜(System Call) 처리 방식

WSL9x는 Windows 9x의 제한된 인터럽트 디스크립터 테이블(Interrupt Descriptor Table)로 인해 시스템 콜을 처리하기 위해 GPF 핸들러(General Protection Fault Handler)를 사용한다. 구체적으로, GPF 핸들러는 `int 0x80` 명령어를 감지하여 Linux i386 시스템 콜 인터럽트로 처리한다. 이 방식은 윈도우 9x 환경에서 리눅스 커널의 시스템 콜을 실행할 수 있게 해주는 핵심 기술이며, 운영체제 간의 상호 작용(Interaction)을 가능하게 한다.

개발 환경 및 빌드 과정

WSL9x를 빌드하기 위해서는 i386-linux-musl 크로스 툴체인(Cross Toolchain)과 Open Watcom v2 툴체인이 필요하다. 먼저, `make defconfig` 및 `make vmlinux` 명령어를 사용하여 패치된 Linux 커널을 빌드한다. 그 후, 환경 변수를 설정하고 Windows 9x가 사전 설치된 하드 드라이브 이미지(hdd.base.img)를 준비한다. 마지막으로, `make` 명령어를 실행하여 WSL9x를 포함하는 새로운 hdd.img를 생성한다. 이 과정은 복잡한 환경 설정(Complex Environment Setup)을 요구한다.

커뮤니티 반응 및 프로젝트 의의

커뮤니티에서는 WSL9x를 재미(Fun)를 위한 프로젝트로 평가하며, 기술적 성취에 대한 긍정적인 반응을 보였다. 특히, 윈도우 9x 환경에서 리눅스 커널을 실행하는 독창적인 아이디어와 구현 방식에 대해 높은 관심을 보였다. 이 프로젝트는 과거 운영체제에 대한 향수를 불러일으키는 동시에, 운영체제 내부 구조(Internal Structure)에 대한 깊이 있는 이해를 보여주는 사례로 평가받는다.

wsl9x: Windows 9x subsystem for Linux

댓글 0

첫 번째 댓글을 남겨보세요!