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

کشف قدیمی‌ترین اپلیکیشن گرافیکی ویندوز که بدون شبیه‌ساز روی ویندوز ۱۱ اجرا می‌شود

کشف قدیمی‌ترین اپلیکیشن گرافیکی ویندوز که بدون شبیه‌ساز روی ویندوز ۱۱ اجرا می‌شود — Oldest GUI application that still runs on Windows 11

خلاصه

این مقاله بررسی می‌کند که قدیمی‌ترین نرم‌افزار گرافیکی تاریخ ویندوز که بدون نیاز به شبیه‌ساز یا تغییر روی ویندوز ۱۱ اجرا می‌شود چیست. نویسنده با بررسی نسخه‌های اولیه ویندوز NT و حل مسائل مربوط به فرمت فایل‌های اجرایی و قراردادهای فراخوانی، به نتایج جالب توجهی می‌رسد.

بررسی سازگاری رو به عقب (Backwards Compatibility) در سیستم‌عامل ویندوز همیشه یکی از مباحث جذاب برای توسعه‌دهندگان بوده است. در این مقاله، نویسنده به دنبال پاسخ به این سؤال جالب است که قدیمی‌ترین اپلیکیشن دارای رابط کاربری گرافیکی (GUI) که بدون هیچ‌گونه اصلاح یا ابزار شبیه‌سازی روی آخرین نسخه ویندوز ۱۱ اجرا می‌شود، کدام است.

چالش‌های اجرای برنامه‌های قدیمی روی ویندوز ۱۱

از آنجایی که سیستم‌عامل‌های ۶۴ بیتی مدرن دیگر از NTVDM (محیط مجازی داس و برنامه‌های ۱۶ بیتی) پشتیبانی نمی‌کنند، اجرای برنامه‌های ۱۶ بیتی قدیمی بدون ابزار جانبی غیرممکن است. بنابراین، دامنه‌ی جستجو به برنامه‌های اولیه دوران NT محدود می‌شود.

در بررسی‌های اولیه، بازی FreeCell متعلق به نسخه بتای Win32s (تاریخ فوریه ۱۹۹۳) به عنوان یکی از گزینه‌ها شناخته شد که همچنان به خوبی روی ویندوز ۱۱ اجرا می‌شود.

تلاش عمیق‌تر و بررسی نسخه‌های پیش‌نمایش NT

نویسنده با جستجو در آرشیو اینترنت (Internet Archive) به سراغ نسخه‌های پیش‌نمایش ویندوز NT 3.1 (متعلق به سال‌های ۱۹۹۱ و ۱۹۹۲) رفت. در این مسیر موانع فنی زیادی وجود داشت:

  • فرمت PE اولیه: نسخه‌های سال ۱۹۹۱ از فرمت پیش‌نویس PE استفاده می‌کردند که با ویندوز امروزی سازگار نیست.
  • قرارداد فراخوانی (Calling Convention): در بیزهای ارائه‌شده تا اواسط سال ۱۹۹۲، برای فراخوانی APIهای ویندوز به جای قرارداد stdcall از cdecl استفاده می‌شد. این موضوع باعث می‌شد آرگومان‌ها دو بار از روی پشته پاک شوند و برنامه کرش کند:
push hwnd        ; ۴ بایت آرگومان
call [ShowWindow] ; تابع ShowWindow در ویندوز ۱۱ از stdcall استفاده می‌کند و با ret 4 پاک می‌شود
add esp, 4       ; فراخواننده در سال ۱۹۹۲ دوباره آرگومان را پاک می‌کند که منجر به خطا می‌شود

پیروزی با CDPLAYER.EXE

در میان فایل‌های Build 347 (تاریخ نوامبر ۱۹۹۲)، فایل CDPLAYER.EXE توجه نویسنده را جلب کرد. تا آن زمان مشکل قرارداد فراخوانی حل شده بود، اما سایر برنامه‌های آن نسخه به خاطر مشکلات کتابخانه C زمان اجرا (C Runtime) کرش می‌کردند. این برنامه با استفاده از کتابخانه سیستمی crtdll.dll (که ویندوز ۱۱ هنوز نسخه ۳۲ بیتی آن را در پوشه SysWOW64 نگه می‌دارد) توانست اجرا شود.

البته برای کار کردن کامل آن به یک درایو مجازی نیاز است، اما اجرای رابط کاربری برنامه‌ای با سن نزدیک به ۳۴ سال روی مدرن‌ترین ویندوز بسیار شگفت‌انگیز است.

تقلب جذاب با شبیه‌ساز

اگر محدودیت عدم استفاده از شبیه‌ساز را کنار بگذاریم، با استفاده از پروژه‌هایی مثل otvdm می‌توان حتی برنامه‌های ۱۶ بیتی قدیمی‌تر مانند بازی Reversi متعلق به ویندوز 1.01 (سال ۱۹۸۵) را نیز روی ویندوز ۱۱ اجرا کرد.

دیدگاه کاربران هکرنیوز

در بحث‌های هکرنیوز، کاربران به این نکته اشاره کردند که طراحی‌های گرافیکی قدیمی سادگی و کارایی خاص خود را دارند. همچنین بررسی آیکون‌ها و المان‌های رابط کاربری در آن دوران نشان می‌دهد که برخی استانداردهای امروزی (مانند آیکون تکرار) از همان زمان شکل گرفته‌اند در حالی که برخی دیگر (مانند دکمه‌های تصادفی‌سازی) کاملاً ناشناخته بوده‌اند.

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

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

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