OpenNT
Дополнительные действия
| 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]
- Поддержка SDK NT 5 (Windows 2000)
- Перенос пользовательского пространства NT 4 на ядро NT 5
- Инфраструктура для поддержки Win64, поддерка 64-битности в системных компонентах
Были исправлены некоторые недоработки по поддержке современного оборудования (CPUID >Pentium I, определение больших обьемов ОЗУ).

Начата работа по модернизации WOW VDM (Win16) и DPMI подсистем, находящихся в более плачевном состоянии в утекшей кодбазе (NT 4.0 SP2) нежели в последнем Service Pack 6, выпущеном Microsoft.[2]
Кончина проекта
Между декабрем 2015 и серединой 2016 года проект перестал получать какие-либо обновления. Архивная запись сайта с мая 2016 года указывает на официальное окончание разработки и отсылает на личный сайт stephanos.
Наследие
Проект получил еще одну попытку перерождения от пользователя broimluna в 2019 году, так же заброшенную. Последними наработками проекта являлась поддержка более новых версий PDB и WinDBG а так же добавление функционала из NT4 SP6 (GetWindowModuleName).
Тривия
- Все еще присутствуют проблемы со стабильностью при использовании более современных процессоров (2010+), что вынуждает использовать програмную эмуляцию вместо аппаратной виртуализации для изучения сабжа
- Из-за применения более современного компилятора MSVC 2003, насущной проблемой являются более агрессивные оптимизации компилятора, обнаруживающие undefined behavior в устаревшей кодбазе. Печально известной проблемой последней ISO сборки являются мисоптимизации в NTFS, приводящие к потере данных и постепенном саморазрушении системного диска при длительном использовании ОС.
- Использована для начальных этапов переноса RVVM на исторические версии Windows и системы без SSE, а так же для изучения деталей реализации сетевого стека и поведения WinSock функции select()
