۵ آبان ۱۴۰۵ github.com ۳ دقیقه مطالعه

اجرای نرم‌افزارهای ۱۶ بیتی ویندوز روی سیستم‌های ۶۴ بیتی با ابزار WineVDM

اجرای نرم‌افزارهای ۱۶ بیتی ویندوز روی سیستم‌های ۶۴ بیتی با ابزار WineVDM — 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows

خلاصه

پروژه متن‌باز WineVDM امکان اجرای برنامه‌های قدیمی ۱۶ بیتی ویندوز را روی سیستم‌عامل‌های مدرن ۶۴ بیتی فراهم می‌کند. این ابزار با استفاده از یک شبیه‌ساز CPU و تبدیل کدهای Win16 به Win32، چالش عدم پشتیبانی سخت‌افزاری و نرم‌افزاری ویندوزهای جدید از اپلیکیشن‌های قدیمی را حل می‌کند.

معرفی پروژه WineVDM و مسئله‌ای که حل می‌کند

با گذشت زمان و حذف کامل پشتیبانی از برنامه‌های ۱۶ بیتی در نسخه‌های ۶۴ بیتی ویندوز، اجرای نرم‌افزارهای قدیمی یا بازی‌های خاطره‌انگیز دوران Windows 3.1 به یک چالش تبدیل شده است. مایکروسافت مدت‌هاست که زیرسیستم ۱۶ بیتی را از سیستم‌عامل‌های خود کنار گذاشته است. پروژه WineVDM (که با نام otya128/winevdm در گیت‌هاب شناخته می‌شود) دقیقاً همین خلأ را پر می‌کند و به توسعه‌دهندگان و کاربران اجازه می‌دهد برنامه‌های قدیمی ۱۶ بیتی ویندوز (از نسخه‌های ۱.x تا ۳.x) را روی ویندوزهای ۶۴ بیتی اجرا کنند.

معماری و نحوه عملکرد فنی

این ابزار ترکیبی از تکنیک‌های شبیه‌سازی پردازنده و ترجمه API است تا برنامه‌های قدیمی بتوانند روی محیط مدرن اجرا شوند. بخش‌های اصلی معماری این پروژه عبارتند از:

  • شبیه‌ساز CPU: از آنجا که ویندوز ۶۴ بیتی اجازه تغییر LDT را نمی‌دهد (و فراخوانی NtSetInformationProcess همیشه خطا برمی‌گرداند)، این ابزار به یک شبیه‌ساز پردازنده برای مدیریت کدهای ۱۶ بیتی نیاز دارد.
  • تبدیل کدهای Win16 به Win32: این بخش بر اساس کدهای پروژه Wine توسعه یافته است. توابع ۱۶ بیتی با استفاده از ابزار convspec و فایل‌های spec به توابع معادل ۳۲ بیتی نگاشت می‌شوند.
  • مدیریت Handleها و مسیرها: تبدیل دوطرفه بین HANDLEهای ۱۶ بیتی و native، به همراه قابلیت هدایت مسیر پوشه WINDOWS (برای برنامه‌هایی که تلاش می‌کنند تنظیمات خود را در %WINDIR% ذخیره کنند).
  • شبیه‌ساز محدود DOS: توانایی اجرای فایل‌های اجرایی DOS را نیز دارد، هرچند توسعه‌دهندگان توصیه می‌کنند برای کارهای سنگین DOS از ابزارهایی مثل DOSBox استفاده شود.

نحوه نصب و استفاده

برای استفاده از این ابزار، کافی است مراحل زیر را دنبال کنید:

  1. آخرین نسخه پایدار یا ناپایدار را از مخزن گیت‌هاب دانلود کنید.
  2. در صورت دریافت خطای مربوط به مفقود بودن VCRUNTIME140.dll، بسته Visual C++ Redistributable نسخه ۳۲ بیتی را نصب کنید.
  3. برای نصب فایل‌های سیستمی ویندوز، کافی است روی فایل install.inf کلیک راست کرده و گزینه Install را انتخاب کنید تا با مکانیزم نصب‌کننده‌های جایگزین ویندوز هماهنگ شود.
  4. پس از نصب، می‌توانید فایل‌های اجرایی Win16 را مستقیماً اجرا کنید یا آن‌ها را روی otvdm.exe بکشید و رها کنید (Drag and Drop).

برای کامپایل کردن پروژه از طریق سورس‌کد نیز می‌توانید از Visual Studio 2017 یا ابزار استاندارد CMake استفاده کنید:

git clone https://github.com/otya128/winevdm.git
cd winevdm
mkdir build
cd build
cmake ..
make

سیگنال‌های بلوغ و وضعیت پروژه

این پروژه با زبان C نوشته شده و تحت لایسنس آزاد GPL-2.0 منتشر می‌شود. بررسی آمار گیت‌هاب نشان می‌دهد که این ابزار توجه زیادی را به خود جلب کرده و دارای ۳,۴۸۸ ستاره و ۲۰۸ فورک است. فعالیت روی مخزن به‌صورت پیوسته جریان دارد.

چرا این خبر در Hacker News مطرح شد؟

این پروژه به این دلیل مورد توجه کاربران هکرنیوز قرار گرفته که یکی از آزاردهنده‌ترین مشکلات ارتقاء نرم‌افزاری را حل می‌کند. بسیاری از مهندسان نرم‌افزار و برنامه‌نویسان قدیمی، ابزارهای تخصصی یا ابزارهای مهندسی معکوسی دارند که هنوز وابسته به محیط‌های ۱۶ بیتی هستند. کاربران در بخش نظرات از اینکه بالاخره راه حل کارآمدی برای اجرای این برنامه‌ها روی سیستم‌های مدرن ۶۴ بیتی فراهم شده ابراز خرسندی کرده‌اند.

در یک نگاه

  • نام پروژه: WineVDM (otya128/winevdm)
  • زبان اصلی: C
  • مجوز (License): GPL-2.0
  • تعداد ستاره‌ها: ۳,۴۸۸
  • کاربرد اصلی: اجرای نرم‌افزارهای ۱۶ بیتی ویندوز (۱.x تا ۳.x) روی ویندوزهای ۶۴ بیتی

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.