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), а так же поддержка исторических систем для нужд энтузиастов.[1][2]
Утечка исходного кода NT 4.0
На момент 1994 года, Microsoft была заинтересована в проекте по переносу приложений с ОС Windows на рабочие станции Unix. Проект получил название Windows Interface Source Environment, а ответственность за проект была возложена на фирму Mainsoft, получившую для работы над WISE SDK доступ ко внутренним репозиториям исходного кода Microsoft.
В 2004 году произошла массовая утечка исходного кода, включавшая код Windows 2000 и Windows NT 4.0. Дальнейшее расследование привело к выводам, что утечка возникла благодаря Mainsoft, предположительно из-за сотрудника, вынесшего исходный код на CD-дисках.[3]
Работа над OpenNT
В середине 2015, stephanos начал работу над модернизацией исходной кодовой базой NT 4.0, добавив поддержку более современного сборочного инструментария (MSVC 2003) а так же подняв версию ядра до 4.50.
Помимо всех остальных упомянутых идей, задокументированые задачи включали в себя:[4]
- Поддержка SDK NT 5 (Windows 2000)
- Перенос пользовательского пространства NT 4 на ядро NT 5
- Инфраструктура для поддержки Win64, поддерка 64-битности в системных компонентах
Были исправлены некоторые недоработки по поддержке современного оборудования (CPUID >Pentium II, определение больших обьемов ОЗУ).
Начата работа по модернизации WOW VDM (Win16) и DPMI подсистем, находящихся в более плачевном состоянии в утекшей кодбазе (NT 4.0 SP2) нежели в последнем Service Pack 6, выпущеном Microsoft.[5]
Последние рабочие ISO можно найти на archive.org а так же crustywindo.ws. Сборки заканчивающиеся суффиксом fre являются релизными сборками, предназначенными для конечных пользователей. Сборки chk и tst являются Checked и Debug сборками соответственно, предназначенными для отладки системы.[1]


Кончина проекта
К июню 2016, проект OpenNT ссылался на личный сайт stephanos и раскололся на:[2]
- NTOSBE - NT OS Build Environment, модернизированный сборочный инструментарий для сборки различных утекших версий Windows
- MinNT - Урезанная версия OpenNT 4.5, переведенная на сборочную систему NTOSBE
- WRKRazzle - Модифицированная версия Windows Research Kernel, аналогичным образом переведенная на сборочную систему NTOSBE, ранее упоминавшаяся на форуме Betaarchive
12 ноября 2016 года на сайте появился пост, официально сообщающий о личном прекращении разработки OpenNT от stephanos. В списке причин приводятся нехватка усилий продолжать разработку, большие усилия необходимые для выполнения амбициозных начальных задач, и в действительности отсутствие значительного прогресса в кодовой базе.
В посте приводится список ссылок и ресурсов для желающих когда-либо продолжить работу над, или изучение OpenNT.
Наследие
Проект получил еще одну попытку перерождения от пользователя broimluna в 2019 году, так же заброшенную. Последними наработками проекта являлась поддержка более новых версий PDB и WinDBG а так же добавление функционала из NT4 SP6 (GetWindowModuleName).
Тривия
- Все еще присутствуют проблемы со стабильностью при использовании более современных процессоров (2010+), что вынуждает использовать програмную эмуляцию вместо аппаратной виртуализации для изучения сабжа
- Из-за применения более современного компилятора MSVC 2003, насущной проблемой являются более агрессивные оптимизации компилятора, обнаруживающие undefined behavior в устаревшей кодбазе. Печально известной проблемой последней ISO сборки являются мисоптимизации в NTFS, приводящие к потере данных и постепенному саморазрушению системного диска при длительном использовании ОС.
- Использована для начальных этапов переноса RVVM на исторические версии Windows и системы без SSE, а так же для изучения деталей реализации сетевого стека и поведения WinSock функции select()[6][7]
Ссылки
- ↑ https://web.archive.org/web/20151203004051/https://www.opennt.net/
- ↑ https://web.archive.org/web/20151203004105/http://www.opennt.net/projects/opennt/wiki/Project_Roadmap
- ↑ https://betawiki.net/wiki/Windows_NT_4.0
- ↑ https://web.archive.org/web/20151203004554/http://www.opennt.net/projects/opennt/documents
- ↑ https://virtuallyfun.com/2018/09/13/opennt-4-5-revisited/
- ↑ https://github.com/LekKit/RVVM/commit/b5c60ea789d18d62f25fed80713ca19231e86230
- ↑ https://github.com/LekKit/RVVM/commit/62a91fc16fd71fb2087ea4e659031de5719f2f28
