Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

OpenNT

Материал из Сейберпедии
Версия от 17:35, 30 октября 2025; Lekkit (обсуждение | вклад) (Новая страница: «{{Программа|name=OpenNT|developer=Microsoft Corp., 1996; Модифицирована и пересобрана из слитых исходников|operating_system=Windows NT Workstation 4.0|website=[https://web.archive.org/web/20151203004051/https://www.opennt.net/ Архив сайта]|license=Проприетарная; Исходники доступны по неразглашению|repo=[https://github.com/Paolo-Maffei/OpenNT Read-only...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
OpenNT
Скриншот отладочной версии на момент декабря 2015
Авторыstephanos
РазработчикиMicrosoft Corp., 1996; Модифицирована и пересобрана из слитых исходников
Операционные системыWindows NT Workstation 4.0
Первый выпуск28 Июля, 2015 (Неофициально)
Аппаратные платформыi386, MIPS, DEC Alpha, PowerPC
Кандидат в релизыNT 4.50 (Build 1400-r687)
РепозиторийRead-only зеркало на Github
СостояниеРабота над проектом прекращена
ЛицензияПроприетарная; Исходники доступны по неразглашению
СайтАрхив сайта

OpenNT - форк Microsoft Windows NT, полученная из утекших исходников NT 4.0, модифицированная и пересобранная stephanos. Изначальной задумкой проекта являлась поддержка полнофункциональных сборок для ряда архитектур (i386, MIPS, Alpha, PowerPC), а так же поддержки исторических систем для нужд энтузиастов.

Утечка исходного кода NT 4.0

На момент 1994 года, Microsoft была заинтересована в проекте по переносу приложений с ОС Windows на рабочие станции Unix. Проект получил название Windows Interface Source Environment, а ответственность за проект была возложена на фирму Mainsoft, получившую для работы над WISE SDK доступ ко внутренним репозиториям исходного кода Microsoft.

В 2004 году произошла массовая утечка исходного кода, включавшая код Windows 2000 и Windows NT 4.0. Дальнейшее расследование привело к выводам, что утечка возникла благодаря Mainsoft, предположительно из-за сотрудника, вынесшего исходный код на CD-дисках.

Работа над OpenNT

В середине 2015, stephanos начал работу над модернизацией исходной кодовой базой NT 4.0, добавив поддержку более современного сборочного инструментария (MSVC 2003) а так же подняв версию ядра до 4.50.

Помимо всех остальных упомянутых идей, задокументированые задачи включали в себя:[1]

  1. Поддержка SDK NT 5 (Windows 2000)
  2. Перенос пользовательского пространства NT 4 на ядро NT 5
  3. Инфраструктура для поддержки Win64, поддерка 64-битности в системных компонентах

Были исправлены некоторые недоработки по поддержке современного оборудования (CPUID >Pentium I, определение больших обьемов ОЗУ).

Проблемы со стабильностью с Win16 WoW NTVDM

Начата работа по модернизации WOW VDM (Win16) и DPMI подсистем, находящихся в более плачевном состоянии в утекшей кодбазе (NT 4.0 SP2) нежели в последнем Service Pack 6, выпущеном Microsoft.[2]

Кончина проекта

Между декабрем 2015 и серединой 2016 года проект перестал получать какие-либо обновления. Архивная запись сайта с мая 2016 года указывает на официальное окончание разработки и отсылает на личный сайт stephanos.

Наследие

Проект получил еще одну попытку перерождения от пользователя broimluna в 2019 году, так же заброшенную. Последними наработками проекта являлась поддержка более новых версий PDB и WinDBG а так же добавление функционала из NT4 SP6 (GetWindowModuleName).

Тривия

  1. Все еще присутствуют проблемы со стабильностью при использовании более современных процессоров (2010+), что вынуждает использовать програмную эмуляцию вместо аппаратной виртуализации для изучения сабжа
  2. Из-за применения более современного компилятора MSVC 2003, насущной проблемой являются более агрессивные оптимизации компилятора, обнаруживающие undefined behavior в устаревшей кодбазе. Печально известной проблемой последней ISO сборки являются мисоптимизации в NTFS, приводящие к потере данных и постепенном саморазрушении системного диска при длительном использовании ОС.
  3. Использована для начальных этапов переноса RVVM на исторические версии Windows и системы без SSE, а так же для изучения деталей реализации сетевого стека и поведения WinSock функции select()