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

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]

  1. Поддержка SDK NT 5 (Windows 2000)
  2. Перенос пользовательского пространства NT 4 на ядро NT 5
  3. Инфраструктура для поддержки 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]

ASCII логотип установщика
Проблемы со стабильностью с Win16 WoW NTVDM

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

К июню 2016, проект OpenNT ссылался на личный сайт stephanos и раскололся на:[2]

  1. NTOSBE - NT OS Build Environment, модернизированный сборочный инструментарий для сборки различных утекших версий Windows
  2. MinNT - Урезанная версия OpenNT 4.5, переведенная на сборочную систему NTOSBE
  3. WRKRazzle - Модифицированная версия Windows Research Kernel, аналогичным образом переведенная на сборочную систему NTOSBE, ранее упоминавшаяся на форуме Betaarchive

12 ноября 2016 года на сайте появился пост, официально сообщающий о личном прекращении разработки OpenNT от stephanos. В списке причин приводятся нехватка усилий продолжать разработку, большие усилия необходимые для выполнения амбициозных начальных задач, и в действительности отсутствие значительного прогресса в кодовой базе.

В посте приводится список ссылок и ресурсов для желающих когда-либо продолжить работу над, или изучение OpenNT.

Наследие

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

Тривия

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

Ссылки