۱۴۰۳ فروردین ۲۹, چهارشنبه

حەماسەتکار هەزاران بەرنامەی مۆدێرن دەخاتە ناو ویندۆز ٩٥

 


حەماسەتکار

هەزاران بەرنامەی مۆدێرن دەخاتە ناو ویندۆز ٩٥

دروستکەر و گەشەپێدەری ڤیدیۆ مات کەی سی .NET ی گواستۆتەوە بۆ سیستەمی کارپێکردنی نزیکەی ٢٩ ساڵە و ڕێگەی پێدەدات هەزاران بەرنامەی نوێتر بەڕێوەببات.


ویندۆز ٩٥ یەکەم سیستەمی کارپێکردن بوو کە زۆرێک لە سویدییەکان پێی ئاشنا بوون کاتێک خاوەندارێتی کۆمپیوتەر لە ناوەڕاستی نەوەدەکاندا تەقیەوە. بە شێوەیەکی بەرچاو بەکارهێنەر دۆستانەتر و بەتواناتر بوو لە وەشانی کۆنتر، لەگەڵ تایبەتمەندیەکانی وەکو فرەکارکردنی پێشوەختە و بیرگەی پارێزراو — هەرچەندە هێشتا زۆر زیاتر تووشی تێکچوون بوو لە وەشانی مۆدێرن و ویندۆز.

بۆ ئەو ئارەزومەندانەی کە دەیانەوێت دووبارە ئەزموونی سیستەمی کۆن بکەنەوە، بەربەستێکی سەرەکی ئەوەیە کە ئەوەندە کەم بەرنامەی نوێتر کاردەکەن. مات کەی سی ویستی ئەوە چاک بکاتەوە، و توانی هەزاران بەرنامەی تاڕادەیەک مۆدێرن بەدەستبهێنێت بۆ ئەوەی کار لەسەر ئەو سیستەمە بکەن کە ئێستا نزیکەی ٢٩ ساڵە و سەرەتا پۆرتکردنی چوارچێوەی .NET ی مایکرۆسۆفت. لە ڤیدیۆیەکی نزیکەی کاتژمێرێکدا لە یوتیوبدا نیشان دەدات کە چۆن ئەو کارەی کردووە.

سەرەتا هێواش بوو. چوارچێوەکە لە سەرەتای ساڵانی ٢٠٠٠ پەرەی پێدراوە و هەرگیز بۆ ویندۆز ٩٥ نەبووە، هەرچەندە لە وەشانی سەرەتاییدا کار لەسەر ویندۆز ٩٨ی جێنشینی کردووە، مات کەی سی چینێکی گونجاوی Kernelex تاقیکردەوە کە وا دەکات بەرنامە مۆدێرنەکانی .NET لەسەر ویندۆز ٩٨ کاربکەن، و زیادیکردووە بۆ یان فایلە پێویستیەکانی DLL ساختە کرد، بەڵام هەر شکستی هێنا.

لە کۆتاییدا دەرکەوت کە شۆفێرێک بە ناوی “ndphlpr” بووە هۆی تێکچوونی .NET و دوای هەندێک کاری بەدواداچوون لە ئامرازی Windbg، گەیشتە هەڵەی کۆتایی: فەنکشنی “NotifyWinEvent” لە user32.dll نەمابوو. چاککردنیشی ئاسان نەبوو، بەڵام مەحاڵ نەبوو.

ئێستا مات کەی سی گۆڕانکارییەکانی خۆی لە ڕێگەی پڕۆژەی dotnet9x لە Github (https://github.com/itsmattkc/dotnet9x) بە ئاشکرا ئاشکرا کردووە. پێویستی بە ویندۆز ٩٥ بی (OSR ٢) یان نوێتر هەیە، ئینتەرنێت ئێکسپلۆرەر ٥.٠١ و درێژکراوەی USB ی مایکرۆسۆفت بۆ ویندۆز ٩٥. ڕێگە بە زۆربەی ئەو بەرنامانەی کە بۆ .NET ٢.٠ پەرەی پێدراوە کاربکەن، لەگەڵ پشتگیری دروستکردن بۆ ٣.٥.


گیت هاب (https://github.com/itsmattkc/dotnet9x)

GitHub - itsmattkc/dotnet9x: دەرچەی پشتەوەی .NET 2.0 - 3.5 بۆ ویندۆز 9x

باکپۆرتی .NET 2.0 - 3.5 بۆ ویندۆز 9x. بەشداریکردن لە پەرەپێدانی itsmattkc/dotnet9x بە دروستکردنی ئەکاونتێک لە GitHub.

پێشەکی

ئەم پڕۆژەیە باکپۆرتێکی کارە لە پێشکەوتنی .NET Framework 2.0 - 3.5 بۆ ویندۆز 9x. لە ئێستادا پێدەچێت 2.0 تاڕادەیەکی زۆر کارا بێت لە کاتێکدا کارکردن لەسەر 3.5 تازە دەستی پێکردووە.


بە فەرمی .NET Framework 3.5 هەرگیز پشتگیری لە هیچ شتێکی لە خوار XP نەکردووە، و .NET بە گشتی هەرگیز پشتگیری 95ی نەکردووە. ئەم پڕۆژەیە ئەوە دەگۆڕێت، CLR 2.0 بۆ 95 و Framework 3.5 بۆ 9x پشتگیری دەکات.


دامەزراندن

ویندۆز ٩٥

.NET CLR 2.0 پێویستی بە دامەزراندنی ئەمانەی خوارەوە هەیە:


ویندۆز ٩٥ بی (OSR ٢) یان نوێتر. لە ئێستادا وەشانی کۆنتر کار ناکەن، لەگەڵ ئەوەشدا من لێکۆڵینەوە لە ڕێگاکانی تێپەڕاندنی ئەم پێداویستییە دەکەم (بڕوانە خوارەوە).

ئینتەرنێت ئێکسپلۆرەر 5.01. دامەزرێنەرەکە لەم کۆگایەدا لە bin/msie501 پاکەت کراوە. ڕۆژێک پلانم هەیە بیکەم بە بەشێکی ئۆتۆماتیکی لە پرۆسەی دامەزراندن، لەگەڵ ئەوەشدا بۆ ئێستا دەبێت بە دەستی جێبەجێی بکەیت.

تەواوکەری مایکرۆسۆفت USB. دامەزرێنەرەکە لەم کۆگایەدا لە bin/usbsupp کۆکراوەتەوە یان لەوانەیە لەسەر دیسکی دامەزراندنی ویندۆز ٩٥ت بێت لە other/updates/usb. هەر لەبەر ئەمەشە 95 B پێویستە، تەواوکەری USB پاچ بۆ VMM32.VXD دەکات کە ڕێگە بە .NET دەدات کار بکات، و لەسەر RTM/A بەردەست نییە. لە ئێستادا لێکۆڵینەوە لەوە دەکەم کە بۆچی ئەمە پێویستە و ئایا دەتوانرێت پەچە بکرێتەوە.

ئارەزوومەندانە:

بۆ ڕێگەدان بە سوکێتەکان، نوێکردنەوەی سوکێتی مایکرۆسۆفت ویندۆز ٢ دابمەزرێنە.

کاتێک ئەوانە دامەزران، بە سادەیی dotnet9x.exe لە تابی Releases دابەزێنە و دایبمەزرێنە! دوای ئەوە پێویستە ئەو بەرنامانەی کە بۆ .NET Framework 2.0 - 3.5 نووسراون کاربکەن.


پرسە ناسراوەکان

لە تاقیکردنەوەکەمدا، وا دیارە ئەمە تاڕادەیەکی زۆر ئێستا کاردەکات، بەڵام ڕەنگە .NET هێشتا هەندێک بانگەواز بۆ فەنکشنەکانی سیستەم ونبوو بکات کە پێویستە چاکبکرێنەوە یان دووبارە جێبەجێبکرێنەوە. ئەگەر تووشی ئیستسنای چاوەڕواننەکراو یان پەیامی هەڵە بوویت، ئازادانە لە تابی کێشەکاندا تەوەرێک دروست بکە.

Enthusiast

ports thousands of modern programs to Windows 95

Video creator and developer Matt KC has ported .NET to the nearly 29-year-old operating system, allowing it to run thousands of newer programs.

Windows 95 was the first operating system many Swedes became familiar with when PC ownership exploded in the mid-1990s. It was significantly more user-friendly and capable than older versions, with features like preemptive multitasking and protected memory — though it was still much more crash-prone than modern Windows versions.

For enthusiasts who want to experience the old system again, a major obstacle is that so few newer programs work. Matt KC wanted to fix that, and managed to get thousands of reasonably modern programs to work on the now nearly 29-year-old system by first porting Microsoft's .NET framework. In a nearly hour-long video on Youtube, he shows how he went about it.

At first it was slow. The framework was developed in the early 2000s and was never intended for Windows 95, although in early versions it worked on the successor Windows 98. Matt KC tried the Kernelex compatibility layer that makes modern .NET applications run on Windows 98, and added to or faked the necessary DLL files, but it still failed.

In the end, it turned out that a driver named “ndphlpr” was causing .NET to crash, and after some detective work in the Windbg tool, he arrived at the final error: The “NotifyWinEvent” function was missing from user32.dll. Fixing it wasn't easy either, but not impossible.

Now Matt KC has made his changes publicly available via the dotnet9x project on Github (https://github.com/itsmattkc/dotnet9x). It requires Windows 95 B (OSR 2) or later, Internet Explorer 5.01, and Microsoft's USB Extension for Windows 95. It allows most programs developed for .NET 2.0 to work, with build support for 3.5.


GitHub (https://github.com/itsmattkc/dotnet9x)

GitHub - itsmattkc/dotnet9x: Backport of .NET 2.0 - 3.5 to Windows 9x

Backport of .NET 2.0 - 3.5 to Windows 9x. Contribute to itsmattkc/dotnet9x development by creating an account on GitHub.

Introduction

This project is a work-in-progress backport of .NET Framework 2.0 - 3.5 to Windows 9x. Currently 2.0 is believed to be largely functional while work on 3.5 has just begun.


Officially, .NET Framework 3.5 never supported anything below XP, and .NET in general never supported 95. This project changes that, backporting CLR 2.0 to 95 and Framework 3.5 to 9x.


Installation

Windows 95

.NET CLR 2.0 requires the following to be installed:


Windows 95 B (OSR 2) or newer. Currently older versions will not work, however I am investigating ways to get around this requirement (see below).

Internet Explorer 5.01. The installer is packaged in this repository at bin/msie501. One day I plan to make it an automatic part of the installation process, however for the time being you'll have to run it manually.

Microsoft USB Supplement. The installer is packaged in this repository at bin/usbsupp or may be on your Windows 95 install disc at other/updates/usb. This is why 95 B is necessary, the USB supplement makes patches to VMM32.VXD that allow .NET to work, and it isn't available on RTM/A. I am currently investigating why this is necessary and whether it can be patched out.

Optional:

To allow sockets, install the Microsoft Windows Socket 2 Update.

Once those are installed, simply download dotnet9x.exe from the Releases tab and install! After that, applications written for .NET Framework 2.0 - 3.5 should run.


Known Issues

In my testing, this appears to largely work now, but .NET may still make some calls to missing system functions that need to be patched or reimplemented. If you run into an unexpected exception or error message, feel free to make a thread in the Issues tab.

هیچ نظری موجود نیست:

ارسال یک نظر