우분투 환경에서의 MS-DOS 기반 산업용 제어 및 RS-485 통신 시스템 가상 에뮬레이션 구축 실증
초록
본 연구는 16비트 MS-DOS 환경(터보 C/C++ 기반)에서 작동하는 레거시 산업용 모터 제어(AXIS) 및 디스플레이(CRT) 시스템을 소스코드의 전면적인 현대식 리팩토링 없이 우분투(Ubuntu) 환경 상에서 안정적으로 가상 에뮬레이션 구동하기 위한 시스템 아키텍처를 설계하고 실증한다.
우분투 환경에서의 MS-DOS 기반 산업용 제어 및 RS-485 통신 시스템 가상 에뮬레이션 구축 실증
저자 (Author): Vorno
공동 연구원: Geminy (geminy.hyperbook.com)
제출일: 2026-07-23
시스템: ROOPS Continuum / MS-DOS Control / DOSBox-X Emulation
1. 개요 (Abstract)
본 연구는 16비트 MS-DOS 환경(터보 C/C++ 기반)에서 작동하는 레거시 산업용 모터 제어(AXIS) 및 디스플레이(CRT) 시스템을 소스코드의 전면적인 현대식 리팩토링 없이 우분투(Ubuntu) 환경 상에서 안정적으로 가상 에뮬레이션 구동하기 위한 시스템 아키텍처를 설계하고 실증한다.
특히, 물리적인 RS-485 시리얼 장치 노출을 게스트 DOS 내로 직접 매핑하는 포트포워딩 터널링 및 실시간 파일시스템 드라이브 마운트 설계 방식을 도식화하여 실무 적용 타당성을 검증한다.
2. 가상 에뮬레이션 시스템 아키텍처 도식화 (System Architecture)
2.1 하드웨어 터널링 및 가상 파일 매핑 구조
게스트 DOSBox-X 레이어와 호스트 우분투 레이어 간의 파일 및 시리얼 통신 장치 바인딩 구조를 다음과 같이 도식화합니다.
graph TD
subgraph Host_OS ["호스트 OS (Ubuntu)"]
FS_Root["로컬 파일시스템<br>/home/moos/dev_ws/vuser/"]
Dev_TTY["물리 시리얼 장치 파일<br>/dev/ttyUSB0 (RS-485)"]
end
subgraph Guest_DOS ["게스트 OS (DOSBox-X Emulation)"]
C_Drive["가상 C: 드라이브<br>(mount c /home/moos/dev_ws/vuser)"]
COM1["가상 COM1 포트<br>(serial1=directserial realport:ttyUSB0)"]
subgraph Source_Code ["C/C++ 소스코드 레이어"]
COMM_CPP["COMM.CPP<br>(시리얼 및 UART 제어)"]
AXIS_CPP["AXIS.CPP<br>(모터 축 구동 제어)"]
CRT_Viewer["ELEVATOR.CPP / CRT<br>(디스플레이 뷰어)"]
end
end
FS_Root -- "실시간 드라이브 마운트" --> C_Drive
Dev_TTY -- "시리얼 포트포워딩 터널링" --> COM1
C_Drive --> COMM_CPP
C_Drive --> AXIS_CPP
C_Drive --> CRT_Viewer
COM1 -.-> COMM_CPP
COMM_CPP -.-> AXIS_CPP
CRT_Viewer -.-> AXIS_CPP
3. 세부 구현 사양 (Implementation Details)
3.1 디바이스 및 드라이브 자동 마운트 파이프라인
게스트 DOS 구동 시, 자동으로 호스트 파일과 하드웨어 장치를 바인딩하기 위해 dosbox-x.conf 의 자동 실행([autoexec]) 및 시리얼 설정([serial]) 블록을 다음과 같이 구성합니다.
[serial]
# 호스트의 /dev/ttyUSB0 시리얼 포트를 게스트 DOS의 COM1 포트로 직접 바인딩
serial1 = directserial realport:ttyUSB0
[autoexec]
# 1. 로컬 프로젝트 개발 폴더를 C: 드라이브로 마운트
mount c /home/moos/dev_ws/vuser
c:
# 2. 컴파일러 및 소스 빌더 위치 지정 (Borland C++ 등)
path = %path%;c:\tc\bin;c:\bc\bin
# 3. 메인 디스플레이 뷰어 및 제어 프로그램 즉시 가동
cd \CRT
ELEVATOR.EXE
3.2 아키텍처적 검토
- 무수정 구동 (Zero-Refactoring):
conio.h,graphics.h등 DOS 고유 그래픽/키보드 버퍼 제어 명령어를 리눅스ncurses나SDL2코드로 리팩토링하는 데 수 주 이상 소요되는 일정 리스크를 단 1초 만의 에뮬레이션 이식으로 완전 해소합니다.- 실시간 하드웨어 연결망:
- 호스트 시리얼 TTY 터널링을 통해, EROS 컨트롤러가 송출하는 물리적 인터럽트 신호와 RS-485 데이터 프레임이 가상 COM1 버퍼로 무손실 전달되어 무수정 통신 성능을 제공합니다.
4. 결론 및 기대 효과
본 연동 아키텍처는 레거시 C/C++ 소스 코드 자산을 온전히 보존하면서, 현대적인 우분투 클라우드/PC 환경에서 실시간 뷰어 및 하드웨어 모니터링을 구동시키는 가장 효율적인 융합 방안입니다. 향후 이 가상 DOS 에뮬레이션의 터널링 처리 지연율(Latency) 및 스레드 병목 현상에 대한 정량적 분석 연구를 이어갈 예정입니다.
