Windows NT — это фирменная графическая операционная система , разработанная корпорацией Microsoft как часть ее линейки продуктов Windows , первая версия которой, Windows NT 3.1 , была выпущена 27 июля 1993 года. Первоначально созданная для рынков рабочих станций , офисов и серверов , линейка Windows NT стала доступна потребителям с выпуском Windows XP в 2001 году. Базовая технология Windows NT продолжает существовать и по сей день с постепенными изменениями и улучшениями, причем последней версией Windows на основе Windows NT является Windows 11 в 2021 году.
Название «Windows NT» изначально обозначало основные технологические достижения, которые оно внесло в линейку продуктов Windows, включая устранение ограничений доступа к 16-битной памяти более ранних выпусков Windows, таких как Windows 3.1 и Windows 9x . Каждый выпуск Windows, построенный на этой технологии, считается основанным на Windows NT, если не на ее пересмотре, хотя само название Windows NT не использовалось во многих других выпусках Windows с момента Windows NT 4.0 в 1996 году.
Windows NT предоставляет гораздо больше возможностей, чем другие выпуски Windows, среди которых поддержка многопроцессорности , многопользовательских систем , «чистое» 32-битное ядро с 32-битной адресацией памяти, поддержка наборов инструкций, отличных от x86 , и многих других системных служб, таких как Active Directory и многое другое. Более новые версии Windows NT поддерживают 64-битные вычисления с 64-битным ядром и 64-битной адресацией памяти.
Windows NT — это группа или семейство продуктов — как Windows — это группа или семейство. Windows NT — это подгруппа Windows.
Первая версия Windows NT, 3.1 , была создана для рабочих станций и серверных компьютеров. Она была ориентирована на коммерческие нужды — и предназначалась для дополнения потребительских версий Windows, основанных на MS-DOS (включая Windows 1.0 через Windows 3.1x ). В 1996 году была выпущена Windows NT 4.0 , включавшая новую оболочку из Windows 95 .
В конце концов, Microsoft включила технологию Windows NT в линейку продуктов Windows для персональных компьютеров и объявила устаревшим семейство Windows 9x . Начиная с Windows 2000 , [8] «NT» было удалено из названия продукта, но все еще находится в нескольких низкоуровневых местах в системе — в том числе некоторое время как часть версии продукта. [9]
Версии Windows NT устанавливаются с помощью программы установки Windows , которая, начиная с Windows Vista , использует среду предустановки Windows , представляющую собой облегченную версию Windows NT, предназначенную для развертывания операционной системы.
Было высказано предположение, что Дэйв Катлер подразумевал аббревиатуру «WNT» как игру слов с VMS , увеличивая каждую букву на одну . [10] Однако изначально проект планировался как продолжение OS/2 и назывался «NT OS/2» до получения бренда Windows. [11] Один из первоначальных разработчиков NT, Марк Луковски , утверждает, что название было взято из оригинального целевого процессора — Intel i860 , кодовое название N10 («N-Ten»). [12] В 1998 году сессия вопросов и ответов (Q&A) с Биллом Гейтсом показала, что ранее буквы были расширены до «New Technology», но больше не несут никакого конкретного значения. [13] Буквы были исключены из названий релизов, начиная с Windows 2000 и более поздних версий, хотя Microsoft описала этот продукт как «Built on NT Technology». [8] [14]
«NT» была торговой маркой Northern Telecom (позже Nortel ), которую Microsoft была вынуждена указать на упаковке продукта.
Одной из основных целей NT является переносимость оборудования и программного обеспечения. Различные версии операционных систем семейства NT были выпущены для различных архитектур процессоров, изначально IA-32 , MIPS и DEC Alpha , с поддержкой PowerPC , Itanium , x86-64 и ARM в более поздних выпусках. Первоначальная идея заключалась в том, чтобы иметь общую кодовую базу с настраиваемым Hardware Abstraction Layer (HAL) для каждой платформы. Однако поддержка MIPS, Alpha и PowerPC была позже прекращена в Windows 2000. Широкая совместимость программного обеспечения изначально была достигнута с поддержкой нескольких «личностей» API , включая Windows API , POSIX , [15] и API OS/2 [16] — последние два были постепенно прекращены, начиная с Windows XP. [17] Частичная совместимость с MS-DOS и Windows 16-bit достигается на IA-32 через интегрированную виртуальную машину DOS — хотя эта функция недоступна на других архитектурах. [18]
NT поддерживает списки контроля доступа для каждого объекта (файл, функция и роль), что позволяет применять богатый набор разрешений безопасности к системам и службам. NT также поддерживает сетевые протоколы Windows, унаследовав предыдущую сеть OS/2 LAN Manager , а также сеть TCP/IP (для которой Microsoft использовала стек TCP/IP, полученный сначала из стека на основе STREAMS от Spider Systems , а затем переписанный собственными силами). [19]
Windows NT 3.1 была первой версией Windows, которая использовала 32-битную плоскую адресацию виртуальной памяти на 32-битных процессорах. Ее сопутствующий продукт, Windows 3.1, использовал сегментированную адресацию и переключался с 16-битной на 32-битную адресацию на страницах.
Windows NT 3.1 включала ядро ядра, предоставляющее системный API, работающее в режиме супервизора (кольцо 0 в x86; в Windows NT на всех платформах именуемое «режимом ядра»), и набор сред пользовательского пространства с собственными API, которые включали новую среду Win32, среду текстового режима OS/2 1.3 и среду POSIX. Полное ядро с вытесняющей многозадачностью могло прерывать запущенные задачи, чтобы запланировать другие задачи, не полагаясь на то, что пользовательские программы добровольно откажутся от управления ЦП, как в приложениях Windows 3.1 (хотя приложения MS-DOS были вытесняющими многозадачными в Windows, начиная с Windows/386 ).
Примечательно, что в Windows NT 3.x несколько подсистем драйверов ввода-вывода, таких как видео и печать, были подсистемами пользовательского режима . В Windows NT 4.0 подсистемы видео, сервера и спулера принтера были перемещены в режим ядра. Первый графический интерфейс Windows NT был сильно вдохновлен (и программно совместим) тем, что было в Windows 3.1; интерфейс Windows NT 4.0 был переработан, чтобы соответствовать интерфейсу совершенно новой Windows 95 , перейдя от диспетчера программ к дизайну оболочки Windows .
NTFS , журналируемая, безопасная файловая система, является основной особенностью NT. Windows NT также допускает установку других файловых систем; NT также может быть установлена на файловые системы FAT , а версии 3.1, 3.5 и 3.51 могут быть установлены на файловые системы HPFS . [20]
Windows NT представила собственную модель драйвера, модель драйвера Windows NT, и она несовместима со старыми фреймворками драйверов. С Windows 2000 модель драйвера Windows NT была улучшена и стала моделью драйвера Windows , которая впервые была представлена в Windows 98 , но была основана на модели драйвера NT. [21] Windows Vista добавила собственную поддержку Windows Driver Foundation , которая также доступна для Windows XP , Windows Server 2003 и, в некоторой степени, Windows 2000 .
Microsoft решила создать портативную операционную систему, совместимую с OS/2 и POSIX и поддерживающую многопроцессорность , в октябре 1988 года. [22] Когда разработка началась в ноябре 1989 года, Windows NT должна была называться OS/2 3.0, [23] третьей версией операционной системы, разработанной совместно Microsoft и IBM . Чтобы обеспечить портативность, первоначальная разработка была нацелена на процессор Intel i860 XR RISC , переключившись на MIPS R3000 в конце 1989 года, а затем на Intel i386 в 1990 году. [12] Microsoft также продолжила параллельную разработку основанной на DOS и менее требовательной к ресурсам среды Windows, что привело к выпуску Windows 3.0 в мае 1990 года.
Windows 3.0 в конечном итоге оказалась настолько успешной, что Microsoft решила изменить основной интерфейс прикладного программирования для еще не выпущенной NT OS/2 (как она тогда называлась) с расширенного API OS/2 на расширенный API Windows . Это решение вызвало напряженность между Microsoft и IBM, и сотрудничество в конечном итоге развалилось.
IBM продолжила разработку OS/2 в одиночку, в то время как Microsoft продолжила работу над недавно переименованной Windows NT. Хотя ни одна из операционных систем не стала сразу столь популярной, как MS-DOS или продукты Windows от Microsoft, Windows NT в конечном итоге стала гораздо более успешной, чем OS/2.
Microsoft наняла группу разработчиков из Digital Equipment Corporation во главе с Дэйвом Катлером для создания Windows NT, и многие элементы дизайна отражают более ранний опыт DEC с VMS Катлера , [24] VAXELN и RSX-11 , а также невыпущенную объектно-ориентированную операционную систему, разработанную Катлером в Digital под кодовым названием MICA . [25] К команде присоединились избранные члены расформированной команды OS/2, включая Моше Дуни . [10]
Хотя NT не была точным клоном предыдущих операционных систем Катлера, инженеры DEC почти сразу заметили внутреннее сходство. Части VAX/VMS Internals and Data Structures , опубликованные Digital Press , точно описывают внутреннее устройство Windows NT с использованием терминов VMS. Более того, части структуры каталогов и имен файлов кодовой базы NT соответствовали кодовой базе MICA. [10] Вместо судебного иска Microsoft согласилась выплатить DEC 65–100 миллионов долларов, помочь с маркетингом VMS, обучить персонал Digital работе с Windows NT и продолжить поддержку Windows NT для DEC Alpha. [24]
Управление памятью , процессами и планированием в Windows NT и VMS очень похожи. Управление процессами в Windows NT отличается реализацией потоков , которую DEC не реализовала до VMS 7.0 в 1995 году.
Как и VMS, [24] код режима ядра Windows NT различает «ядро», чьей основной целью является реализация функций, зависящих от процессора и архитектуры, и «исполнительную часть». Она была разработана как модифицированное микроядро , поскольку ядро Windows NT находилось под влиянием микроядра Mach, разработанного Ричардом Рашидом в Университете Карнеги-Меллона, [26] но не соответствует всем критериям чистого микроядра. И ядро, и исполнительная часть связаны вместе в один загружаемый модуль ntoskrnl.exe ; снаружи этого модуля нет большой разницы между ядром и исполнительной частью. Подпрограммы из каждой из них доступны напрямую, например, из драйверов устройств режима ядра.
Наборы API в семействе Windows NT реализованы как подсистемы поверх публично недокументированного «родного» API ; это позволило позднее принять Windows API (в подсистему Win32). Windows NT была одной из первых операционных систем, использовавших UCS-2 и UTF-16 внутри. [ необходима цитата ]
Windows NT использует многоуровневую архитектуру , состоящую из двух основных компонентов: пользовательского режима и режима ядра . Программы и подсистемы в пользовательском режиме ограничены в плане того, к каким системным ресурсам они имеют доступ, в то время как режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам. Режим ядра в Windows NT имеет полный доступ к аппаратным и системным ресурсам компьютера. Ядро Windows NT является гибридным ядром ; архитектура включает в себя простое ядро , уровень абстракции оборудования (HAL), драйверы и ряд служб (совместно называемых Executive ), которые все существуют в режиме ядра. [27]
Процесс загрузки Windows NT начинается с NTLDR в версиях до Vista и с Windows Boot Manager в Vista и более поздних. [28] Загрузчик отвечает за доступ к файловой системе на загрузочном диске, запуск ядра и загрузку драйверов устройств времени загрузки в память. После загрузки всех загрузочных и системных драйверов ядро запускает подсистему Session Manager . Этот процесс запускает winlogon , который позволяет пользователю войти в систему. После входа пользователя в систему запускается File Explorer , загружающий графический пользовательский интерфейс Windows NT.
Windows NT написана на C и C++ , с очень небольшой частью на языке ассемблера . [29] C в основном используется для кода ядра, в то время как C++ в основном используется для кода пользовательского режима. Язык ассемблера избегается, где это возможно, потому что он будет препятствовать переносимости . [30]
Ниже приведены выпуски Windows, основанные на технологии Windows NT.
Windows NT 3.1 по 3.51 включали в себя Диспетчер программ и Диспетчер файлов из серии Windows 3.1x . Windows NT 4.0 и более поздние версии заменили эти программы на Проводник Windows (включая панель задач и меню «Пуск» ), который изначально появился в Windows 95 .
Первому выпуску был присвоен номер версии 3.1, чтобы соответствовать современной 16-битной Windows; журналы той эпохи утверждали, что этот номер также использовался для того, чтобы эта версия казалась более надежной, чем выпуск ".0". Кроме того, протокол Novell IPX, по-видимому, был лицензирован только для версий 3.1 программного обеспечения Windows. [ необходима цитата ]
Номер версии NT в настоящее время обычно не используется в маркетинговых целях, но по-прежнему используется внутри компании и, как говорят, отражает степень изменений в ядре операционной системы. [49] Однако из соображений совместимости приложений Microsoft сохранила основной номер версии 6 в выпусках после Vista, [50] но позже изменила его на 10 в Windows 10. [43] Номер сборки — это внутренний идентификатор, используемый разработчиками и бета-тестерами Microsoft.
Начиная с Windows 8.1 , Microsoft изменила поведение функций Version API Helper. Если приложение не манифестировано для Windows 8.1 или более поздней версии, API всегда будет возвращать версию 6.2, которая является номером версии Windows 8. [ 51] [52] Это связано с тем, что функция манифеста была введена в Windows 8.1, [53] чтобы заменить GetVersion и связанные функции. [54]
Чтобы предотвратить попадание специфичного для Intel x86 кода в операционную систему, поскольку разработчики привыкли разрабатывать на чипах x86, Windows NT 3.1 изначально разрабатывалась с использованием систем разработки, отличных от x86, а затем была перенесена на архитектуру x86. Эта работа изначально основывалась на системе Dazzle на базе Intel i860 , а затем на платформе Jazz на базе MIPS R4000 . Обе системы были разработаны внутри Microsoft. [55]
Windows NT 3.1 была выпущена для платформ Intel x86 PC и PC-98 , а также для платформ MIPS, совместимых с DEC Alpha и ARC . В Windows NT 3.51 в 1995 году была добавлена поддержка процессора PowerPC , в частности, для систем, совместимых с PReP, таких как ноутбуки IBM ThinkPad Power Series и Motorola PowerStack series; но, несмотря на встречи Майкла Шпиндлера и Билла Гейтса, на Power Macintosh она не появилась, поскольку проект Power Macintosh, совместимый с PReP, не был запущен.
Корпорация Intergraph перенесла Windows NT на свою архитектуру Clipper , а позднее объявила о намерении перенести Windows NT 3.51 на архитектуру SPARC компании Sun Microsystems [56] в связи с запланированным выпуском компанией моделей UltraSPARC в 1995 году [57] , но ни одна из версий не была продана широкой публике в качестве розничного продукта.
Только два варианта Windows NT 4.0 (IA-32 и Alpha) имеют полный набор доступных пакетов обновлений. Все остальные порты, сделанные третьими лицами (Motorola, Intergraph и т. д.), имеют мало, если вообще имеют, общедоступных обновлений.
Windows NT 4.0 была последним крупным релизом, поддерживающим Alpha, MIPS или PowerPC, хотя разработка Windows 2000 для Alpha продолжалась до августа 1999 года, когда Compaq прекратила поддержку Windows NT на этой архитектуре; а затем три дня спустя Microsoft также отменила свою программу AlphaNT, [58] хотя релиз Alpha NT 5 (Windows 2000) достиг статуса RC1 . [59]
5 января 2011 года Microsoft объявила, что следующая основная версия семейства Windows NT будет включать поддержку архитектуры ARM . Microsoft продемонстрировала предварительную версию Windows (версия 6.2.7867), работающую на компьютере на базе ARM, на выставке Consumer Electronics Show 2011 года . [60] В конечном итоге это привело к коммерческому выпуску Windows RT, производной от Windows 8 , 26 октября 2012 года и использованию Windows NT вместо Windows CE в Windows Phone 8 .
Оригинальные Xbox и Xbox 360 работают на основе специальной операционной системы , основанной на сильно модифицированной версии Windows 2000 , подход, который инженер Microsoft Дон Бокс назвал «fork and run» (разветвление и запуск). [61] [62] Он экспортирует API, похожие на те, что есть в Microsoft Windows , такие как Direct3D . [63] Консоли Xbox One и Xbox Series X/S используют урезанную версию операционной системы Windows. [64]
Windows 11 — первая несерверная версия Windows NT, которая не поддерживает 32-разрядные платформы. [65] [66]
64-разрядные версии Windows NT изначально предназначались для работы на Itanium и DEC Alpha ; последний использовался внутри Microsoft на ранних этапах разработки 64-разрядной Windows. [67] [68] Это продолжалось некоторое время после того, как Microsoft публично объявила об отмене планов по выпуску 64-разрядной Windows для Alpha. [69] Из-за этого версии Alpha Windows NT являются только 32-разрядными.
В то время как Windows 2000 поддерживает только Intel IA-32 (32-разрядную версию), Windows XP, Server 2003, Server 2008 и Server 2008 R2 имеют по одной редакции, предназначенной для систем на базе Itanium. [70] [71] [72] По сравнению с Itanium, Microsoft приняла x64 в большем масштабе: каждая версия Windows, начиная с Windows XP (которая имеет специальную редакцию x64 ) [73], имеет редакции x64. [70] [74]
Первой версией Windows NT, поддерживающей устройства ARM64 с процессорами Qualcomm, была Windows 10 версии 1709. [ 75] Это полная версия Windows, а не урезанная Windows RT .
Минимальные требования к оборудованию, необходимые для запуска каждой версии профессиональной рабочей станции Windows NT, довольно медленно менялись до выпуска версии 6.0 (Vista), для которого требуется не менее 15 ГБ свободного места на диске, что в десять раз больше, чем в предыдущей версии, а также до выпуска 10.0 (11) 2021 года, который исключает большинство систем, выпущенных до 2018 года.
Технология, используемая в Windows NT, называется «микроядром» и была создана под влиянием микроядра Mach, разработанного в Университете Карнеги — Меллона.
ОБНОВЛЕНИЕ: Compaq, по-видимому, отрицает, что какая-либо работа над Windows 2000/64 для Alpha ведется.
Windows 11 2024 Update будет работать только на процессорах на базе Arm v8.1 или более поздней версии