otvdm: Chạy ứng dụng Windows 16-bit trên Windows 64-bit nhờ bản winevdm chỉnh sửa

Công nghệ27 tháng 10, 2026·3 phút đọc

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.

otvdm: Chạy ứng dụng Windows 16-bit trên Windows 64-bit nhờ bản winevdm chỉnh sửa

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 otvdmGiao 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ạy otvdmw.exe.
  • Để cài đặt, chạy shortcut "install" hoặc nhấp chuột phải vào install.inf và 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.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗