Двадцать восемь лет спустя тысячи приложений перенесены обратно в Windows 95 -

порт .NET Framework обеспечивает обратную совместимость с современным программным обеспечением.

ВНИМАНИЕ! Использован перевод гугл!

Lego Island и ножницы входят в число протестированных приложений

Двадцать восемь лет спустя тысячи приложений перенесены обратно в Windows 95 - Windows 95, Microsoft, Windows, Старое железо, Видео, YouTube, Длиннопост

Демонстрация MattKC функционирующего инструмента создания снимков экрана с помощью click-and-drag (щелчка и перетаскивания) в Win95 после внесения изменений. (Изображение предоставлено MattKC на YouTube)

Ютубер MattKC , по его собственным словам, портировал «тысячи приложений» на Windows 95, кропотливо перенося самую выдающуюся функцию Windows 98, .NET Framework, обратно в старую 95. В конце концов, основным ограничением Windows 95 по сравнению с 98 является отсутствие .NET Framework — во многих других отношениях Windows 98 удивительно близка к своей предшественнице по дизайну и функциям. Но почему он это сделал?

51-минутное видео, которое мы просмотрели несколько раз, в основном демонстрирует подлинный энтузиазм по поводу той эпохи аппаратного и программного обеспечения, как можно было бы предположить, если бы он захотел снять фильм о расширении Windows 95 через 28 лет после ее выпуска. В оригинальном видео, прикрепленном ниже, также есть несколько забавных моментов с живыми актерами, которые задают тон и характер, включая несколько прекрасно снятых антрактов.

Проклятие KernelEx не работает в Windows 95; MattKC должен выяснить, как заставить .NET Framework работать правильно. Отсутствующих файлов .DLL предостаточно, но использование инструмента дампа позволяет идентифицировать имена отсутствующих файлов, поэтому отсутствующую DLL можно заменить или проигнорировать. Даже после портирования всех недостающих DLL-файлов .NET все равно не уступает.

Для работы .NET в Windows 95 требуется больше ключей реестра, чем секунд в исходном 51-минутном 53-секундном видео — общее количество необходимых ключей реестра составило 5409.

Но даже после портирования .NET не может должным образом JIT (Just In Time) отлаживать себя в Windows 95. Причиной, по-видимому, является «ndphlpr», загадочный устаревший драйвер Windows, не используемый в Windows 98, но «необходимый» для .NET из-за сбоя .NET. без этого. MattKC определяет, что ложь компьютеру о наличии ndphlpr может сработать, но после того, как исследование показывает, что никто не знает, что это такое, он пытается полностью это исправить.

Это выдает ошибку исключения машинного кода. Инструмент WinDebug не поддерживает .NET изначально (поскольку он еще не должен существовать), поэтому MattKC все еще приходится иметь дело с некоторыми проблемами совместимости при параллельном тестировании Windows 95 и 98. W95 и W98 запускались в WinDebug в течение нескольких дней, чтобы найти проблему, и сброс прогресса был кропотливым.

В конце концов MattKC наконец нашел заблокированный блок кода, который WinDebug не смог прочитать. После расшифровки код оказался следующим:

F2 0F 10 44 24 08 F2 05 2C CO

Этот код с ошибкой относился к отсутствующему Windows API для некоторых функций щелчка. Исключением было то, что он не мог найти «NotifyWinEvent в user32.dll», а SSE2 запутывал инструкцию в коде. Затем пришлось внести исправления в .NET, чтобы устранить зависимость от SSE2, но это не исправило совместимость, а только сам отладчик .NET.

После долгих отладок Lego Island, MattKC в конце концов вручную закодировал метод, позволяющий выводить сообщение об исключении/ошибке в окно, а не там, где он его не видит. Это работает и позволяет сгладить последнюю часть совместимости DLL. После этого Rebuilder for Lego Island и специальное, более модернизированное приложение для создания снимков экрана теперь отлично работают в Windows 95.

И это еще одна фигура для легендарных технарей «Достаточно решительных безумцев».

Источник