피드로 돌아가기
You can now run WSL on Windows 95, in case you're crazy, too
The RegisterThe Register
Infrastructure

GPF 핸들러 기반의 커널 인터셉트로 Windows 9x 내 Linux 6.19 실행 구현

You can now run WSL on Windows 95, in case you're crazy, too

Brandon Vigliarolo2026년 4월 22일2advanced

Context

Windows 9x 아키텍처의 제약으로 인한 현대적 Linux 커널 실행 불가 환경 분석. 특히 하드웨어 인터럽트 테이블 길이 제한으로 인해 표준 Linux syscall 호출 방식인 int 0x80 사용이 불가능한 구조적 한계 존재.

Technical Solution

  • POSIX API 대신 Windows 9x API를 호출하도록 패치된 Linux 6.19 커널 설계
  • VxD(Virtual Device) 드라이버를 통한 시스템 초기화 및 유저스페이스 이벤트 릴레이 구조 구축
  • IDT(Interrupt Descriptor Table) 길이 제약을 해결하기 위해 GPF(General Protection Fault) 핸들러를 활용한 syscall 인터셉트 로직 구현
  • GPF 발생 시 faulting instruction을 감시하여 int 0x80 발견 시 명령어 포인터를 강제 진행시키고 Linux 커널로 syscall을 디스패치하는 우회 경로 설계
  • 16비트 DOS 프로그램을 TTY 인터페이스로 활용하여 최소한의 오버헤드로 Linux 커널과 통신하는 경량 클라이언트 구현
  • Windows 커널과 동일한 Ring 0 CPU 권한을 Linux 커널에 부여하여 협력적 실행 모델 채택

1. 하드웨어/OS 수준의 인터럽트 테이블 제약 시 예외 핸들러(Exception Handler)를 통한 제어 흐름 가로채기 가능성 검토

2. 커널 수준의 통합 설계 시 권한 모델(Ring 0) 공유에 따른 시스템 불안정성 및 보안 리스크 분석 필수

3. 레거시 환경 지원을 위한 인터페이스 구현 시 기능 최소화를 통한 경량 프록시/클라이언트 구조 설계 고려

원문 읽기