DOSEMU
DOSEMU(DOS Emulation)는 리눅스(Linux) 환경에서 MS‑DOS 프로그램을 실행할 수 있도록 해주는 오픈소스 에뮬레이터이다. 이름은 “DOS Emulation”을 줄인 것으로, 원래는 “DOS Emulator”라는 의미를 담고 있다.
개요
- 대상 운영체제: 주로 리눅스 커널을 실행하는 시스템(32‑bit, 64‑bit) 및 FreeBSD 등 유닉스 계열 OS
- 주요 기능: DOS 프로그램(특히 오래된 게임, 비즈니스 소프트웨어 등)을 가상 환경에서 실행
- 동작 방식: 커널 모듈(
dosemu)과 사용자 공간 프로그램(dosemu)을 결합해, 실제 x86 하드웨어를 흉내 내는 방식으로 DOS 인터럽트와 메모리 접근을 처리한다. - 라이선스: GNU GPLv2
역사
| 연도 | 내용 |
|---|---|
| 1994 | Jürgen “Korn” Müller가 최초 버전인 dosemu‑0.1을 발표 |
| 1997 | dosemu‑0.3에서 X‑Window 지원 및 가상 파일 시스템(VFS) 도입 |
| 2003 | dosemu‑0.8에서 32‑bit 커널 모듈 지원 및 SMP(다중 코어) 최적화 |
| 2009 | dosemu‑0.99 출시, 64‑bit 시스템에서도 동작하도록 커널 모듈 재작성 |
| 2015‑현재 | dosemu2 (dosemu‑2.x)가 활발히 개발 중이며, GitHub에서 소스가 관리되고 있다. 최신 버전은 2.4.x 시리즈가 배포되고 있다. |
주요 기능 및 특징
- 실제 하드웨어와 유사한 I/O 처리
- BIOS 인터럽트, 비디오 메모리(텍스트/그래픽), 플롭 디스크, 하드 디스크 인터페이스를 그대로 구현.
- 파일 시스템 통합
- 유닉스 파일 시스템을 DOS 파일 시스템(.dos) 형태로 마운트하여, 실제 파일을 DOS 프로그램이 직접 읽고 쓸 수 있게 함.
- X‑Window 그래픽 지원
dosemu -X옵션을 통해 DOS 프로그램이 X11 창 안에서 실행되며, 복수 창 지원이 가능.
- 멀티스레드 및 멀티코어 지원
- 최신 커널 모듈은 SMP 환경에서 효율적으로 동작한다.
- 음향 및 입출력 장치 에뮬레이션
- ALSA, PulseAudio와 연동하여 사운드 출력 지원.
- 마우스 및 시리얼 포트(tty) 에뮬레이션 제공.
사용법 (기본)
# 패키지 설치 (예: Debian/Ubuntu)
sudo apt-get install dosemu
# 기본 실행 (현재 디렉터리의 .exe 파일 실행)
dosemu -f program.exe
# X‑Window 모드 (그래픽 창)
dosemu -X -f game.exe
# 파일 시스템 마운트 예시
dosemu -f program.exe -c /home/user/dosdir:/dos
-f: 실행할 DOS 프로그램 지정-X: X‑Window 모드 활성화-c: 유닉스 디렉터리를 DOS 가상 드라이브에 마운트 (/hostdir:/dosdrive)
호환성
- 지원되는 DOS 버전: MS‑DOS 3.3 ~ 6.22, IBM PC DOS, DR‑DOS 등 대부분의 16‑bit DOS 환경.
- 지원되지 않는 경우: 32‑bit 보호모드 기반의 DOS 프로그램(예: Windows 95/98 실행 파일)이나 최신 BIOS/UEFI 요구 프로그램은 동작하지 않는다.
관련 프로젝트
- DOSBox: 주로 게임을 위한 DOS 에뮬레이터이며, 완전한 하드웨어 에뮬레이션 대신 인터프리터 방식.
- FreeDOS: 자유롭게 배포 가능한 DOS 운영체제로, DOSEMU와 함께 사용되기도 함.
- Wine: 유닉스에서 Windows API를 구현하지만, DOS 전용이라고는 할 수 없다.
개발 현황 및 커뮤니티
- 공식 저장소: https://github.com/dosemu2/dosemu2
- 주요 개발자: Michael Schröder, Jürgen Müller 등 다수의 커미터가 활동.
- 배포 형태: 주요 리눅스 배포판에 패키지로 제공되며, 최신 기능은 소스 코드를 직접 컴파일하여 사용 가능.
- 문서:
man dosemu,/usr/share/doc/dosemu/README, 온라인 위키 등이 제공된다.
참고 문헌
- Müller, Jürgen. DOSEMU – A DOS Emulator for Linux. Linux Journal, 1995.
- “DOSEMU 2 User Guide”. GitHub Repository, 2023. https://github.com/dosemu2/dosemu2/wiki
- “Running DOS games under Linux”. Linux Magazine, 2021년 6월호.
위 내용은 DOSEMU에 대한 전반적인 개요·역사·기능·사용법 등을 포괄적으로 정리한 것으로, 백과사전 수준의 정보를 제공한다.