otvdm: Chạy ứng dụng Windows 16-bit trên Windows 64-bit nhờ bản winevdm chỉnh sửa
Dự án otvdm là phiên bản chỉnh sửa của winevdm, cho phép chạy các ứng dụng Windows 16-bit như Windows 1.x, 2.x, 3.0, 3.1 trên hệ điều hành Windows 64-bit hiện đại. Công cụ này giải quyết vấn đề Windows 64-bit không thể sửa LDT, mở ra khả năng hồi sinh phần mềm cũ cho người dùng và lập trình viên.

Việc chạy các phần mềm Windows 16-bit trên hệ điều hành 64-bit hiện đại từ lâu là một bài toán khó, bởi Microsoft đã loại bỏ khả năng hỗ trợ trực tiếp cho kiến trúc này. Dự án otvdm ra đời như một giải pháp thay thế, giúp hồi sinh những ứng dụng tưởng chừng đã "chết" từ thời Windows 3.1.
otvdm là phiên bản chỉnh sửa của winevdm — một trình giả lập Windows 16-bit — được chuyển sang chạy trên Windows 64-bit. Điểm đáng chú ý là công cụ này không chỉ giả lập môi trường Windows cũ mà còn xử lý được những hạn chế kỹ thuật cốt lõi của hệ điều hành hiện đại.
Cách hoạt động và những thách thức kỹ thuật
Điểm mấu chốt khiến việc chạy ứng dụng 16-bit trên Windows 64-bit trở nên phức tạp là Windows 64-bit không thể sửa LDT (Local Descriptor Table). Hàm NtSetInformationProcess với tham số ProcessLdtInformation luôn trả về lỗi, khiến các ứng dụng 16-bit không thể hoạt động bình thường.
Dự án otvdm giải quyết vấn đề này bằng cách tích hợp một trình giả lập CPU cùng các đoạn mã chuyển đổi Win16 sang Win32 dựa trên wine. Các routine chuyển tiếp từ 16-bit sang 32-bit được tạo tự động thông qua công cụ convspec, cho phép các lệnh gọi hàm như DestroyWindow hoạt động xuyên kiến trúc.
Giao diện ứng dụng Windows 16-bit chạy trên otvdm
Bên cạnh đó, công cụ còn bao gồm giả lập DOS cho Win16, chuyển đổi HANDLE native 16-bit và nhiều bản vá tương thích. Đáng chú ý, otvdm tận dụng cơ chế của Windows 64-bit — vốn tự động khởi chạy một trình cài đặt thay thế khi phát hiện trình cài đặt 16-bit — thông qua file install.inf.
Cách cài đặt và sử dụng
Người dùng có thể tải phiên bản ổn định hoặc phiên bản mới nhất (chưa ổn định) từ kho GitHub của dự án. Nếu gặp lỗi thiếu VCRUNTIME140.dll, cần cài đặt Microsoft Visual C++ Redistributable cho Visual Studio 2017 (bản 32-bit).
Quy trình sử dụng khá đơn giản:
- Kéo và thả file thực thi Win16 vào
otvdm.exe, hoặc chạyotvdmw.exe. - Để cài đặt, chạy shortcut "install" hoặc nhấp chuột phải vào
install.infvà chọn "Install". - Sau khi cài, có thể chạy trực tiếp các file binary Win16 mà không cần thao tác thêm.
Lưu ý: Nếu registry bị khởi tạo lại bởi Windows Update, người dùng cần thực hiện lại quy trình cài đặt. Có thể gỡ cài đặt bằng cách chạy
uninstall.reg.
Cấu hình chi tiết được quản lý qua file otvdm.ini. Với các lập trình viên muốn tự biên dịch, dự án hỗ trợ cả Visual Studio 2017 (cần chỉnh sửa PropertySheet.props) lẫn CMake thông qua các lệnh git clone, cmake và make quen thuộc.
Khả năng giả lập DOS và giới hạn
otvdm cũng có thể chạy các file thực thi DOS như một trình giả lập DOS, với phiên bản DOS có thể thiết lập qua biến môi trường VDMDOSVER. Tuy nhiên, theo chính tác giả, khả năng giả lập DOS còn chưa hoàn thiện và người dùng được khuyến nghị sử dụng DOSBox hoặc MS-DOS Player cho nhu cầu này.
Một chi tiết thú vị là otvdm còn xử lý việc chuyển hướng thư mục WINDOWS: nhiều chương trình Win16 cố gắng lưu cài đặt vào %WINDIR%.ini, điều mà Windows hiện đại không cho phép, nên công cụ này sẽ tự động chuyển hướng các thao tác ghi đó.
Ý nghĩa với người dùng Việt Nam
Với những ai còn lưu giữ phần mềm cũ phục vụ công việc — từ các công cụ kế toán, thiết kế đến phần mềm chuyên ngành chạy trên nền Windows 3.1 — otvdm là lựa chọn đáng cân nhắc thay vì phải duy trì một máy ảo nặng nề. Dự án là mã nguồn mở, miễn phí và có cộng đồng phát triển trên GitHub, phù hợp với cả người dùng phổ thông lẫn lập trình viên muốn tìm hiểu sâu về kỹ thuật tương thích ngược.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
OpenAI biến công cụ lập trình thành "dots" – trợ lý cá nhân luôn trực chiến
27 tháng 10, 2026