قدیمی ترین برنامه رابط کاربری گرافیکی که هنوز روی ویندوز 11 اجرا می شود
آدرس مقاله: https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/ آدرس نظرات: https://news.ycombinator.com/item?id=50248055 امتیاز: 243 # نظرات: 152
مدتی است که در مورد یک سوال احمقانه فکر می کنم، این که قدیمی ترین برنامه با رابط کاربری گرافیکی که همچنان در ویندوز 11 بدون تغییر یا شبیه سازی اجرا می شود، چیست.
با توجه به سازگاری عالی ویندوز به عقب، انتظار داشتم که پاسخ چیزی بسیار قدیمی باشد.
متأسفانه، ویندوز 11 به تنهایی نمیتواند برنامههای ویندوز 16 بیتی را اجرا کند، زیرا ویندوز 64 بیتی فاقد NTVDM است، بنابراین ما باید چیزی از اوایل دوران NT پیدا کنیم.
یادم می آید چندی پیش این سوال را در یک انجمن ناشناس پرسیدم، جایی که شخصی به من اشاره کرد Win32s، و پیشنهاد کرد که نسخه اولیه آن را با FREECELL.exe پیدا کنم.
بنابراین من دقیقا این کار را انجام دادم، و ببینید، FREECELL.EXE با تاریخ اصلاح شده 22 فوریه 93 در حال اجرا و کاملا قابل پخش، بدون هیچ تغییری در آخرین نسخه ویندوز 11:
در زمان این پست، این یک برنامه 33 سال و 8 ماهه است که تقریبا به اندازه من قدمت دارد.
بنابراین من فکر کردم "باحال"، این را یک معمای حل شده در نظر گرفتم و مدت کوتاهی بعد آن را فراموش کردم. اما بنا به دلایلی، اخیرا دوباره این سؤال در ذهن من ایجاد شد و این بار تصمیم گرفتم عمیقتر بگردم تا ببینم آیا میتوانم چیز قدیمیتری پیدا کنم.
با جستجوی نسخههای قدیمی ویندوز در آرشیو اینترنت، برخی از نسخههای اولیه NT 3.1 را پیدا کردم که امیدوارکننده به نظر میرسیدند، اما به نظر میرسید مشکل اصلی یا ناسازگاری با فرمت اجرایی امروزی یا تغییرات API بود که بعدا در توسعه ایجاد شد.
اولین نسخههای 1991 از یک قالب پیشنویس PE استفاده میکردند که با ویندوز مدرن سازگار نبود، و تا اواسط سال 1992 به جای stdcall برای فراخوانیهای Windows API، قرارداد فراخوانی cdecl را فرض میکردند، بنابراین آرگومانها دو بار حذف میشدند، به این ترتیب:
که به طور قابل درک باعث از کار افتادن برنامه می شود.
یک برنامه کاربردی بود که توجه من را جلب کرد، از بیلد 347، و آن CDPLAYER.EXE بود که در 16-نوامبر-1992 پیوند داده شد. در آن زمان قرارداد فراخوانی ثابت شد، اما سایر برنامههای آن بیلد در زمان اجرا C همراه خود خراب میشوند. CDPLAYER.EXE با استفاده از crtdll.dll سیستم از آن جلوگیری می کند و ویندوز 11 همچنان crtdll.dll را در SysWOW64 ارسال می کند.
اگر برنامه را شروع کنید، چیزی شبیه به این دریافت خواهید کرد:
دلیلش این است که کامپیوتر من درایو CD-ROM ندارد. اما میتوانید از یک DLL کوچک (cdemu.dll) برای شبیهسازی یک DLL با برخی دادههای صوتی جعلی و در واقع دریافت آن برای پخش صدا استفاده کنید:
برای برنامه ای که تقریبا 34 سال از عمرش می گذرد بسیار جالب است!
بنابراین قبلا اشاره کردم که برنامه های 16 بیتی خارج از تصویر هستند زیرا دیگر پشتیبانی نمی شوند.
اما اگر بخواهید می توانید از چیزی مانند otvdm برای اجرای برنامه های قدیمی ویندوز استفاده کنید.
ببینید، نسخه کاملا قابل پخش REVERSI.EXE در تاریخ 15 نوامبر 1985 که بر روی ویندوز 11 اجرا می شود و از ویندوز 1.01 گرفته شده است:
و اگرچه استفاده از otvdm مانند تقلب به نظر می رسد، به نظر من به اندازه کافی جالب است که در این پست قرار دهم.
متن اصلی (انگلیسی)
Oldest GUI application that still runs on Windows 11
Article URL: https://blog.enlyth.com/posts/oldest-windows-gui-app-win-11/ Comments URL: https://news.ycombinator.com/item?id=50248055 Points: 243 # Comments: 152