Время на прочтение4 мин
Количество просмотров15K
Как и положено настоящему
комсомольцу
молодому специалисту, после окончания института я отправился на завод — «инженером-системотехником по обслуживанию ЭВМ», а по-современному – сисадмином. Зоопарк техники там был представлен множеством разнообразных зверюшек: были и «ЕС-1840», и «двушки» с MS-DOS, и несколько серверов, на которых крутилась Novell NetWare. На паре рабочих станций обнаружилась ОС, которую я поначалу принял за уже знакомую мне Windows 3.11, но на деле оказалось, что это совсем другая, «не та винда». Так я познакомился с Windows NT 3.1 — операционной системой, которой сегодня исполнилось 29 лет.
27 июля 1993 года корпорация Microsoft представила публике принципиально новую системную платформу для серверов и рабочих станций — Windows NT 3.1. Интересного в ней было довольно много. Прежде всего, несмотря на то, что это был первый в истории выпуск данной ОС, версий Windows NT 1 и 2 не существовало в природе. Разработчики взяли пример с Джорджа Лукаса: тот запустил в прокат свою легендарную киновселенную сразу с 4-го эпизода, Microsoft — с 3-го, с тем расчетом, чтобы номер версии перекликался с популярной у пользователей «настольной» версией Windows. И хотя интерфейс этих двух ОС был очень похож, Windows 3.1 являлась консервативной 16-разрядной системой, опиравшейся на платформу MS-DOS, в то время как NT изначально ориентировалась на 32-разрядную архитектуру.
На самом деле, Windows NT 3.1 была отнюдь не новой разработкой. Еще в 80-х годах Microsoft и IBM совместно трудились над созданием операционной системы OS/2, и даже добились на этом поприще серьезных успехов. Однако IBM — слишком большая и громоздкая корпорация — отличалась бюрократизмом, разные отделы продвигали собственные компоненты и дополнения для включения в дистрибутив, из-за чего он обрастал большим числом всевозможных не всегда актуальных модулей, обсуждение рабочих вопросов и принятие решений занимало слишком много времени. Разработчики из IBM в первую очередь стремились к поддержке собственного «железа», в то время как Microsoft старалась обеспечить совместимость ОС с максимальным ассортиментом различного оборудования. Разницу в подходах наглядно иллюстрирует такой пример: в IBM эффективность работы программистов оценивалась по количеству строк написанного ими кода, что вело к неоправданному «раздуванию» объема программ, в то время как в Microsoft, наоборот, старались оптимизировать размер исходников, для чего зачастую выкидывали оттуда даже комментарии. Кроме того, между создателями этих платформ назрел конфликт по поводу того, как позиционировать только что появившуюся Windows 3.0 по отношению к OS/2. В IBM желали, чтобы партнер выделял максимум ресурсов на разработку их совместной операционной системы, но неожиданный рыночный успех Windows 3.0 открыл перед Microsoft перспективы построить бизнес вокруг этой платформы. В итоге более молодая и динамично развивающаяся компания под руководством Билла Гейтса в 1992-м году вышла из проекта OS/2, забрав с собой кое-какие наработки. Они-то и легли в основу Windows NT.
Были выпущены версии Windows NT не только для Intel x86, но также для архитектур DEC Alpha и MIPS R4000. Хотя Windows NT 3.1 изначально была 32-разрядной операционной системой, ее распространение ограничивал тот факт, что на момент выхода ОС еще не существовало достаточного количества совместимых с ней 32-разрядных приложений. Кроме того, в отличие от Windows 3.1, NT предъявляла к железу более высокие требования — для запуска этой системы нужны были более мощные и, разумеется, дорогие машины: в то время как средний объем памяти на ПК того времени не превышал 4 Мбайт, для нормальной работы Windows NT требовалось 8, а в рекомендациях значились и вовсе фантастические 16 Мбайт оперативной памяти.
Microsoft выпустила NT 3.1 в двух модификациях: базовую для рабочих станций и Advanced Server — для серверов. Поскольку ОС разрабатывалась с прицелом на корпоративный рынок, она изначально проектировалась не только как многозадачная, но и как многопользовательская система с возможностью аудита событий, связанных с безопасностью. Именно в Windows NT 3.1 впервые появилась поддержка принципиально новой на тот момент файловой системы NTFS, хотя «родной» для нее по-прежнему считалась FAT. Здесь же впервые появился диспетчер загрузки под названием NTLDR. Для совместимости с «настольными» версиями Windows новая платформа поддерживала расширенную 32-разрядную модификацию Windows API, получившую название Win32, хотя о полной совместимости речи тогда не шло из-за существенных различий в архитектуре «настольной» и «корпоративной» версий. Дистанция между ними значительно сократилась только с выходом Windows 95. Windows NT была разработана для многопроцессорных систем, она поддерживала вытесняющую многозадачность. Несмотря на то, что интерфейс Windows 3.1 и в Windows NT был практически полностью идентичен внешне, для NT его переписали заново.
Над разработкой Windows NT 3.1 трудилось 250 программистов, исходники ОС состояли из 5,6 млн. строк кода, и за последний год перед релизом команда выявила и устранила более 30 000 ошибок. Стоимость разработки системы оценивалась в 150 млн. долларов. Для упрощения портируемости ОС на различные аппаратные платформы большинство компонентов, включая ядро NT, были написаны на языке Си. Графическую подсистему и компоненты, отвечающие за работу в сети, написали на С++ с использованием Ассемблера (для модулей, требующих прямого доступа к оборудованию). В октябре 1991 года разработчики провели первую публичную демонстрацию Windows NT на выставке COMDEX, а 27 июля 1993 года состоялся релиз — сначала только версий для x86 и MIPS, версию для DEC выпустили в сентябре.
Лицензия для рабочей станции стоила 495 долларов, версия Advanced Server — 1495 долларов. Изначально предполагалось, что итоговая стоимость серверной версии составит 2995 долларов, а первоначальная сумма станет своего рода «рекламной акцией» в течение первых 6 месяцев продаж, но в итоге Microsoft так и не подняла цену. Помимо английского, Windows NT была доступна на голландском, французском, немецком, японском, испанском и шведском языках, версия для рабочих станций была также локализована на датском, финском, итальянском, норвежском и португальском языках. Поддержки русского языка в этой версии NT не имелось. До 1994 года, когда была выпущена Windows NT 3.5, Microsoft продала более 300 000 копий первой версии Windows NT.
Windows NT 3.1 — это система — долгожитель: ее поддержка была полностью прекращена только 31 декабря 2000 года, а отдельные компоненты этой ОС до сих пор можно отыскать в других версиях Windows, базирующихся на платформе NT, включая современные Windows 10 и 11.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
| Windows NT | |
|---|---|
| Рабочий стол Windows 11 — панель задач и главное меню по умолчанию отцентрированы |
|
| Разработчик | Microsoft |
| Последняя тестовая версия |
|
| Метод обновления | Центр обновления Windows |
| Поддерживаемые языки | Многоязычный |
| Поддерживаемые платформы | IA-32, x86_64, DEC Alpha, MIPS, PowerPC, ARM и Itanium |
| Тип ядра | Гибридное |
| Интерфейс | Windows shell[d] |
| Лицензия | Microsoft EULA |
| Состояние | Обновляется |
| Предыдущая | Windows 9x |
| Веб-сайт | microsoft.com/ru-ru/wind… |
| Медиафайлы на РУВИКИ.Медиа |
Windows NT (аббр. от англ. New Technology) — линейка операционных систем (ОС) производства корпорации Microsoft и название первых версий ОС.
Windows NT была разработана в начале 1990-х после прекращения сотрудничества Microsoft и IBM над OS/2, развивалась отдельно от других ОС семейства Windows (Windows 3.x и Windows 9x) и, в отличие от них, позиционировалась как надёжное решение для рабочих станций (Windows NT Workstation) и серверов (Windows NT Server). Windows NT дала начало семейству операционных систем, в которое входят: собственно Windows NT 3.1, Windows NT 3.50, Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP, Windows XP Professional x64 Edition, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11, Windows Server 2022.
Разработка Windows NT под рабочим названием «NT OS/2» была начата в ноябре 1988 года группой специалистов во главе с Дэвидом Катлером, который перешёл в Microsoft из DEC, где они разрабатывали VAX и OpenVMS[2]. Работа шла параллельно с разработкой фирмой IBM собственной ОС, OS/2 2.0, которая окончательно вышла только в апреле 1992 года. В России была выпущена 13 июня 1992 года.
Одновременно с этим корпорация Microsoft продолжала разрабатывать свои ОС семейства DOS и Windows, отличающиеся меньшими требованиями к ресурсам компьютера, чем IBM OS/2. После того, как в мае 1990 года была выпущена Windows 3.0, Microsoft решила добавить в NT OS/2 программный интерфейс (API), совместимый с Windows API. Это решение вызвало серьёзные трения между фирмами Майкрософт и IBM, которые закончились разрывом совместной работы. IBM продолжила разработку OS/2 самостоятельно, а Microsoft стала работать над системой, которая была в результате выпущена под названием Windows NT. Хотя эта система не сразу стала популярной, подобно DOS, Windows 3.x или Windows 9x, с точки зрения маркетинга Windows NT оказалась существенно более удачной, чем OS/2.
В качестве программных интерфейсов ОС NT изначально планировались API OS/2 и затем POSIX, поддержка Windows API была добавлена в последнюю очередь. Кроме того, в качестве аппаратной платформы для NT изначально планировались Intel i860[3] и затем MIPS, поддержка Intel x86 также была добавлена позднее. Затем в процессе эволюции этой ОС исчезла поддержка обоих изначально запланированных программных интерфейсов и обеих изначально запланированных аппаратных платформ. Для i860 не было ни одной стабильной версии этой ОС, хотя именно от кодового названия этого процессора, N10 (N Ten), происходит название самой ОС NT[4][5]. Ныне Microsoft расшифровывает аббревиатуру NT как New Technology. А в качестве альтернативы POSIX-подсистеме Microsoft стала предлагать Подсистему для приложений на базе UNIX. В обновлении «Anniversary Update» для Windows 10 за июль 2016 года предложена бета-версия подсистемы Windows Subsystem for Linux для выполнения бинарных исполняемых файлов для ядра Linux без применения виртуализации. В качестве базовой системы предлагается образ Ubuntu, в версии за 11 апреля 2017 добавлены также образы SUSE и Fedora.
Переносимость NT была одной из её первоочередных задач. Именно поэтому разработка этой ОС изначально велась для процессора i860, хотя двоичная совместимость с OS/2, бывшая одним из условий проекта NT OS/2, в любом случае потребовала бы создания версии NT для x86 либо включения в неё эмуляции этой платформы. Количество платформ, для которых существовали релизные версии ОС семейства Windows NT, впечатляет: кроме названных MIPS и Intel x86, сюда входят PowerPC, DEC Alpha, Itanium и AMD x86-64. Независимыми производителями компьютерных систем были также разработаны версии Windows NT для архитектур Clipper[en] и SPARC; однако эти версии не были выпущены как самостоятельные программные продукты. В качестве ОС высокой переносимости при разработке NT были взяты за пример ОС Unix и Mach.
Для разработки ОС NT фирма Microsoft пригласила группу специалистов из компании DEC во главе с Дэвидом Катлером, обладающую опытом создания многозадачных операционных систем, таких как VAX/VMS и RSX-11. Некоторое сходство, отмеченное между внутренними архитектурами Windows NT и ОС семейства VMS, дало основания обвинить вновь принятых сотрудников Microsoft в краже интеллектуальной собственности DEC. Возникший конфликт был разрешён мирным путём: DEC признала собственность Microsoft на технологии, лежащие в основе Windows NT, а Microsoft создавала и поддерживала версию Windows NT для архитектуры DEC Alpha.
Несмотря на общие корни, совместимость Windows NT и OS/2 уменьшалась с каждым новым выпуском этой ОС. Поддержка API OS/2 2.0, хотя планировалась в NT, так и не была завершена; в Windows NT 4.0 была удалена поддержка файловой системы HPFS, а в Windows XP была удалена подсистема поддержки программ для OS/2 1.x.
| Название (кодовое название), варианты | номер версии | первый выпуск | последний выпуск / SP |
|---|---|---|---|
| Windows NT 3.1 (NT OS/2) | 3.1.528 | 27 июля 1993 | SP3 (10 ноября 1994) |
| Workstation, Advanced Server | |||
| Windows NT 3.5 (Daytona) | 3.5.807 | 21 сентября 1994 | SP3 (21 июня 1995) |
| Workstation, Server | |||
| Windows NT 3.51 (Tukwila) | 3.51.1057 | 30 мая 1995 | SP5 (19 сентября 1996) |
| Workstation, Server | |||
| Windows NT 4.0 (Cairo) | 4.0.1381 | 29 июля 1996 | SP6a (30 ноября 1999) |
| Workstation, Server, Server Enterprise (Granite), Terminal Server (Hydra), Embedded (Impala) | |||
| Windows 2000 (NT 5.0) | 5.0.2195 | 17 февраля 2000 | SP4 (26 июня 2003) |
| Professional, Server, Advanced Server, Datacenter Server | |||
| Windows XP (Odyssey, Whistler, .NET 2001, NT 5.1) | 5.1.2600 | 25 октября 2001 | SP3 (6 мая 2008) |
| Home, Professional, Media Center (eHome), Tablet PC, Starter, Embedded (Mantis), N; Windows Fundamentals for Legacy PCs (Eiger) | |||
| Windows Server 2003 (Whistler Server, Windows .NET Server) | 5.2.3790 | 24 апреля 2003 | SP2 (13 мая 2007) |
| Standard, Enterprise, Datacenter, Web, Small Business Server (Bobcat), Compute Cluster Server, Storage Server; Windows XP Professional x64 | |||
| Windows Vista (Longhorn) | 6.0.6000 | 30 января 2007 | SP2 (25 мая 2009) |
| Starter, Home Basic, Home Premium, Business, Enterprise, Ultimate, N Home Basic, N Business; x64-варианты всех, кроме Starter | |||
| Windows Home Server | 6.0.2423 | 16 июля 2007 | Power Pack 3 (24 ноября 2009) |
| Windows Server 2008 (Longhorn Server) | 6.0.6001 | 27 февраля 2008 | SP2 (27 мая 2009) |
| Standard, Enterprise, Datacenter, HPC, Web, Storage, Small Business (Cougar), Essential Business (Centro), Itanium; x64-варианты всех, кроме HPC | |||
| Windows 7 (Blackcomb, Vienna) | 6.1.7600 | 22 октября 2009 | SP1 (KB976932) (22 февраля 2011) |
| Начальная, Домашняя базовая, Домашняя расширенная, Профессиональная, Корпоративная, Максимальная, Windows 7 N, Windows 7 E; x64-варианты всех, кроме Начальной | |||
| Windows Server 2008 R2 | 6.1.7600 | 22 октября 2009 | SP1 (KB976932) (22 февраля 2011) |
| Standard, Enterprise, Datacenter, HPC, Web, Storage, Small Business , Itanium; все версии — только 64-разрядные | |||
| Windows Home Server 2011 | 6.1.7657 | 6 апреля 2011 | |
| Windows 8 (Red) | 6.2.9200 | 26 октября 2012 | Pro (26 октября 2012) |
| Windows 8, Windows 8 RT, Профессиональная, Профессиональная N, Профессиональная WMC, Корпоративная, Корпоративная N; x64-варианты всех, кроме Windows RT | |||
| Windows Server 2012 | 6.2.9200 | 26 октября 2012 | RTM (1 августа 2012) |
| Foundation, Essentials, Standard, Datacenter; все версии — только 64-разрядные | |||
| Windows 8.1 (Blue) | 6.3.9600 | 18 октября 2013 | Update (2 апреля 2014) |
| Windows 8.1, Windows 8.1 RT, Профессиональная, Профессиональная N, Профессиональная WMC, Корпоративная, Корпоративная N; x64-варианты всех, кроме Windows RT | |||
| Windows Server 2012 R2 | 6.3.9600 | 18 октября 2013 | |
| Foundation, Essentials, Standard, Datacenter; все версии — только 64-разрядные | |||
| Windows 10 (Redstone) | 10.0.10240[6][7][8] | 29 июля 2015 | |
| Домашняя, Профессиональная, Мобильная, Корпоративная, для образовательных учреждений, мобильная корпоративная, IoT Домашняя; x86, x86-64 и ARM | |||
| Windows Server 2016 (Server vNext) | 10.0.14393[9] | 29 сентября 2016 | |
| Essentials, Standard, Datacenter[10]; все версии — только 64-разрядные | |||
| Windows Server 2019 | 10.0.17763[11] | 2 октября 2018 | |
| Essentials, Standard, Datacenter; все версии — только 64-разрядные | |||
| Windows 11 (Sun Valley), (10X) | 10.0.22000.168 | 5 октября 2021[12] | |
| Домашняя, Профессиональная, Мобильная, Корпоративная, для образовательных учреждений, мобильная корпоративная, IoT Домашняя; x86, x86-64 и ARM |
Компоненты ядра[править | править код]
Компоненты пользовательского режима[править | править код]
Подсистема пользовательского интерфейса в Windows NT реализует оконный интерфейс, подобный интерфейсу предыдущих версий Windows. Двумя типами объектов этой подсистемы, отсутствовавшими в 16-битных версиях Windows и в Windows 9x, являются оконные станции и рабочие столы. Оконная станция соответствует одному сеансу пользователя Windows NT — например, при подключении через службу удалённого рабочего стола создаётся новая оконная станция. Каждый запущенный процесс принадлежит одной из оконных станций; службы, кроме помеченных как способные взаимодействовать с рабочим столом, запускаются в отдельных, невидимых оконных станциях.
Каждая оконная станция имеет собственный буфер обмена, набор глобальных атомов (используемых для операций DDE), и набор рабочих столов. Рабочий стол является контекстом всех глобальных операций подсистемы пользовательского интерфейса, таких как установка хуков и широковещательная рассылка сообщений. Каждый запущенный поток принадлежит к одному из рабочих столов — тому, где расположены обслуживаемые им окна; в частности, один поток не может создать несколько окон, принадлежащих к различным рабочим столам. Один из рабочих столов может быть активным (видимым пользователю и способным реагировать на его действия), остальные рабочие столы спрятаны. Возможность создать для одного сеанса работы несколько рабочих столов и переключаться между ними до выхода Windows 10 не предоставлялась стандартными средствами пользовательского интерфейса Windows, хотя существуют сторонние программы, дающие доступ к этой функциональности.
Оконными станциями и рабочими столами исчерпываются объекты подсистемы пользовательского интерфейса Windows NT, которым могут быть назначены права доступа. Оставшиеся типы объектов — окна и меню — предоставляют полный доступ любому процессу, который находится с ними в одной оконной станции. Поэтому службы Windows NT по умолчанию запускаются в отдельных оконных станциях: они работают с повышенными привилегиями, и возможность процессов пользователя неограниченно манипулировать окнами служб могла бы привести к сбоям и/или проблемам безопасности.
Native API[править | править код]
Для прикладных программ системой Windows NT предоставляется несколько наборов API. Основной из них — так называемый «родной» API (NT Native API), реализованный в динамически подключаемой библиотеке ntdll.dll и состоящий из двух частей: системные вызовы ядра NT (функции с префиксами Nt и Zw, передающие выполнение функциям ядра ntoskrnl.exe с теми же названиями) и функции, реализованные в пользовательском режиме (с префиксом Rtl). Часть функций второй группы использует внутри себя системные вызовы; остальные целиком состоят из непривилегированного кода и могут вызываться не только из кода пользовательского режима, но и из драйверов. Кроме функций Native API, в ntdll также включены функции стандартной библиотеки языка Си.
Официальная документация на Native API весьма скудна, но сообществам энтузиастов удалось методом проб и ошибок собрать достаточно обширные сведения об этом интерфейсе. В частности, в феврале 2000 года опубликована книга Гэри Неббета «Справочник по базовым функциям API Windows NT/2000» (ISBN 1-57870-199-6); в 2002 году она была переведена на русский язык (ISBN 5-8459-0238-X). Источником информации о Native API может служить Windows DDK, где описаны некоторые функции ядра, доступные посредством Native API, а также изучение кода Windows (обратная разработка) — посредством дизассемблирования либо используя исходные тексты Windows 2000, ставшие доступными в результате утечки, либо используя исходные тексты Windows Server 2003, доступные в рамках программы Windows Research Kernel.
Программы, выполняющиеся до загрузки подсистем, обеспечивающих работу остальных API ОС Windows NT, ограничены использованием Native API[13]. Например, программа autochk, проверяющая диски при загрузке ОС после некорректного завершения работы, использует только Native API.
Win32 API[править | править код]
Чаще всего прикладными программами для Windows NT используется Win32 API — интерфейс, созданный на основе API ОС Windows 3.1, и позволяющий перекомпилировать существующие программы для 16-битных версий Windows с минимальными изменениями исходного кода. Совместимость Win32 API и 16-битного Windows API настолько велика, что 32-битные и 16-битные приложения могут свободно обмениваться сообщениями, работать с окнами друг друга и т. д. Кроме поддержки функций существовавшего Windows API, в Win32 API был также добавлен ряд новых возможностей, в том числе поддержка консольных программ, многопоточности и объектов синхронизации, таких как мьютексы и семафоры. Документация на Win32 API входит в состав Microsoft Platform SDK и доступна на веб-сайте.[14]
Библиотеки поддержки Win32 API в основном названы так же, как системные библиотеки Windows 3.x, с добавлением суффикса 32: это библиотеки kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 и ряд других. Функции Win32 API могут либо самостоятельно реализовывать требуемую функциональность в пользовательском режиме, либо вызывать описанные выше функции Native API, либо обращаться к подсистеме csrss посредством механизма LPC[en], либо осуществлять системный вызов в библиотеку win32k, реализующую необходимую для Win32 API поддержку в режиме ядра. Четыре перечисленных варианта могут также комбинироваться в любом сочетании: например, функция Win32 API WriteFile обращается к функции Native API NtWriteFile для записи в дисковый файл, и вызывает соответствующую функцию csrss для вывода в консоль.
Поддержка Win32 API включена в семейство ОС Windows 9x; кроме того, она может быть добавлена в Windows 3.1x установкой пакета Win32s. Для облегчения переноса существующих Windows-приложений, использующих для представления строк MBCS-кодировки, все функции Win32 API, принимающие параметрами строки, были созданы в двух версиях: функции с суффиксом A (ANSI) принимают MBCS-строки, а функции с суффиксом W (wide) принимают строки в кодировке UTF-16. В Win32s и Windows 9x поддерживаются только A-функции, тогда как в Windows NT, где все строки внутри ОС хранятся исключительно в UTF-16, каждая A-функция просто преобразует свои строковые параметры в Юникод и вызывает W-версию той же функции. В поставляемых H-файлах библиотеки также определены имена функций без суффикса, и использование A- либо W-версии функций определяется опциями компиляции, а в модулях Delphi до 2010 версии, например, они жёстко завязаны на варианты с суффиксом A. При этом большинство новых функций, появившихся в Windows 2000 или более поздних ОС семейства Windows NT, существует только в Unicode-версии, потому что задача обеспечения совместимости со старыми программами и с ОС Windows 9x уже не стоит так остро, как раньше.
POSIX и OS/2[править | править код]
В отличие от большинства свободных Unix-подобных ОС, Windows NT сертифицирована институтом NIST на совместимость со стандартом POSIX.1, и даже с более строгим стандартом FIPS 151-2. Библиотекой psxdll экспортируются стандартные функции POSIX, а также некоторые функции Native API, не имеющие аналогов в POSIX — например, для работы с кучей, со структурными исключениями, с Юникодом. Внутри этих функций используются как Native API, так и LPC-вызовы в подсистему psxss, являющуюся обычным Win32-процессом.
Для выполнения 16-битных программ, написанных для OS/2 1.x, в состав Windows NT включены две системных библиотеки OS/2 (doscalls и netapi) и консольная программа-эмулятор os2[15], которая загружает и использует посредством LPC-вызовов подсистемы os2srv и os2ss. Остальные системные библиотеки OS/2, кроме двух названных (kbdcalls, mailslot, moncalls, nampipes, quecalls, viocalls и ещё десяток), не хранятся как отдельные файлы, а эмулируются. Программы, написанные для OS/2 2.0 и выше, а также оконные программы и программы, напрямую работающие с устройствами компьютера, в том числе драйверы, системой Windows NT не поддерживаются.
Обе эти подсистемы, необязательные для работы большинства приложений, были удалены в Windows XP и последующих выпусках Windows. При помощи манипуляций с реестром их можно было отключить и в предыдущих версиях Windows NT, что рекомендовалось специалистами по компьютерной безопасности в целях сокращения поверхности атаки компьютерной системы.
DOS и Win16[править | править код]
Чтобы обеспечить двоичную совместимость с существующими программами для предыдущих семейств ОС от Microsoft, в Windows NT была добавлена программа-эмулятор ntvdm, реализующая VDM (виртуальную DOS-машину), внутри которой может выполняться программа для DOS. Для каждой выполняемой DOS-программы создаётся собственная VDM, тогда как несколько 16-битных Windows-программ могут выполняться в отдельных потоках внутри одной VDM, которая в этом случае играет роль подсистемы. Для того, чтобы внутри VDM можно было выполнять программы для Windows, в неё сначала должна быть загружена программа wowexec, устанавливающая связь VDM с платформой WOW («Windows on Win32»), позволяющей использовать 16-битные приложения для Windows наравне с 32-битными. Сама программа-эмулятор ntvdm выполняется внутри подсистемы Win32, что позволяет Win32-программам обращаться к окнам DOS-программ как к обычным консольным окнам, а к окнам Win16-программ — как к обычным графическим окнам.
Ещё одна технология обеспечения двоичной совместимости, реализованная в Windows NT — это Thunk — небольшие секции кода, выполняющие преобразования (например типов) или обеспечивающие вызов 32-разрядного кода из 16-разрядного и наоборот. Thunks позволяют 32-битным программам пользоваться 16-битными DLL-библиотеками (для Windows или OS/2) и наоборот. Thunks для Win16 реализованы в библиотеках wow32 (32-битные точки входа) и krnl386 (16-битные точки входа); thunks для OS/2 — в библиотеке doscalls (16-битные точки входа). К 16-битным системным библиотекам, включённым в состав Windows NT для использования технологией WOW, относятся krnl386, gdi, user, commctrl, commdlg, shell и др. Поддержка DOS-программ виртуальной DOS-машиной системы Windows NT не ограничена эмуляцией реального режима процессора x86: поддерживается интерфейс DPMI, позволяющий DOS-программам обращаться к расширенной памяти. Однако поддержка программ для DOS и Win16 в Windows NT ограничена требованиями безопасности: программы, напрямую работающие с устройствами компьютера, в том числе драйверы, не поддерживаются.
В связи с аппаратными ограничениями 64-битных платформ поддержка VDM и WOW была исключена из 64-битных версий Windows, запуск 16-битных программ средствами системы на них невозможен, но возможно использование эмуляторов, таких как DOSBox. Основным API этих версий Windows NT является 64-битная версия Win32 API; для запуска 32-битных программ используется технология WOW64, аналогичная традиционной WOW.
Как уже было отмечено, создание версии NT для x86 требовалось для обеспечения совместимости с OS/2, — однако для того, чтобы убедиться в переносимости создаваемого кода, разработка NT началась с версий для RISC-архитектур, и только потом была добавлена поддержка x86. Изначально разработка x86-версии Windows NT была ориентирована на процессор 80486, но к моменту выпуска Windows NT 3.1 была также добавлена поддержка 80386. Последней версией, поддерживающей i386, была Windows NT 3.51.
Процессор i860, для которого велась начальная разработка ОС NT, не получил ко времени завершения работ над Windows NT той поддержки производителями компьютеров, на которую рассчитывали Intel и Microsoft. В результате тремя платформами, поддержка которых была включена в Windows NT 3.1, стали x86, Alpha и MIPS. В выпусках Windows NT 3.x поддержка этих платформ сохранялась, пополнившись в Windows NT 3.51 также архитектурой PReP[en] на основе процессора PowerPC. Однако Windows NT 3.51 не была совместима с компьютерами Macintosh с тем же процессором; фактически, поддерживались только клоны IBM PC с процессором PowerPC вместо x86. Такие компьютеры выпускались в основном фирмами — создателями PowerPC — IBM и Motorola.
Первый выпуск Windows NT 4.0 поддерживал четыре платформы (x86, Alpha, MIPS и PowerPC), но поддержка менее распространённых платформ сокращалась по мере выхода пакетов обновления: из SP1 была удалена поддержка MIPS, из SP3 — поддержка PowerPC. Последними выпусками Windows NT 4.0 поддерживались только x86 и Alpha; хотя поддержка Alpha планировалась к включению в Windows 2000, она была исключена из версии RC2. В результате единственной платформой, поддерживаемой на Windows 2000, стала x86.
Поддержка 64-битных процессоров была впервые реализована в Windows XP для IA-64 — архитектуры процессоров Intel Itanium. На основе 64-битной версии Windows XP были созданы также 64-битные серверные версии Windows 2000; позже поддержка процессора Itanium была добавлена и в часть версий Windows Server 2003. Второй 64-битной архитектурой, поддерживаемой в ОС семейства Windows NT, стала созданная AMD архитектура x86-64, позже реализованная в процессорах Intel под названием EM64T. Одновременно были выпущены Windows Server 2003 SP1 x64 и Windows XP Professional x64, представляющие собой серверный и настольный варианты одной и той же версии Windows — в частности, к этим выпускам применимы одни и те же обновления. С 2005 года корпорацией Microsoft было принято решение прекратить поддержку IA-64.; последней версией ОС Windows NT, полноценно поддерживающей Itanium, является Windows NT 5.2 (XP Professional 64-bit Edition и Server 2003). Однако для более дорогих (и, соответственно, труднее модернизируемых) серверов были выпущены специальные версии Windows Server 2008 и Windows Server 2008 R2, а Windows Server 2012 поддержки IA-64 уже не получила.
- ReactOS — операционная система с открытым кодом, совместимая с приложениями и драйверами Windows NT.
- Установка Windows
- ↑ https://blogs.windows.com/windows-insider/2021/08/19/announcing-windows-11-insider-preview-build-22000-160/
- ↑ Н. А. Олифер, В. Г. Олифер. История Windows NT Архивная копия от 21 марта 2009 на Wayback Machine // Сетевые операционные системы
- ↑ Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft Архивная копия от 6 января 2014 на Wayback Machine // G. Pascal Zachary, 2009
- ↑ NT Stands for… — Matt Mullenweg. Дата обращения: 3 августа 2008. Архивировано 6 января 2014 года.
- ↑ Paul Thurrott’s SuperSite for Windows: Windows Server 2003: The Road To Gold, Part One: The Early Years Архивировано 4 июня 2010 года.
- ↑ Microsoft Confirms that Windows 10 will also be Version 10 Internally | Windows 10 content from SuperSite for Windows. Дата обращения: 2 октября 2015. Архивировано из оригинала 16 октября 2017 года.
- ↑ Microsoft Confirms Windows 10 Kernel Version Update to 10.0 — Softpedia. Дата обращения: 2 октября 2015. Архивировано 9 октября 2015 года.
- ↑ Microsoft confirms that Windows 10 kernel will be 10.0. Дата обращения: 2 октября 2015. Архивировано 5 марта 2016 года.
- ↑ Windows Server 2016: облака — в массы. Дата обращения: 17 июня 2017. Архивировано 27 февраля 2017 года.
- ↑ Windows Server 2016 Editions, Pricing, Availability, Features. Дата обращения: 17 июня 2017. Архивировано 18 июня 2017 года.
- ↑ Windows Server 2019 — now generally available! Дата обращения: 8 октября 2018. Архивировано 4 января 2020 года.
- ↑ Стала известна дата выхода Windows 11. m24.ru. Дата обращения: 29 июля 2021. Архивировано 29 июля 2021 года.
- ↑ Программирование Native API приложений для Windows. Дата обращения: 4 февраля 2011. Архивировано 21 февраля 2011 года.
- ↑ MSDN Library. Дата обращения: 25 февраля 2007. Архивировано 2 февраля 2007 года.
- ↑ Chapter 28 — OS/2 Compatibility Архивная копия от 6 ноября 2015 на Wayback Machine / Windows NT Workstation Resource Kit, Microsoft: File List (англ.)
- Клиентские системы Windows на TechNet
- Центр загрузки пробной версии Windows 7 Корпоративная
- Техническая библиотека Windows 7
- Доклад «XP, Vista, Windows 7 — вчера, сегодня, завтра. Сетевые возможности»
- Доклад о развитии технологий обеспечения безопасности от Windows Vista до Windows 7
- NT OS/2 Design Workbook Microsoft, 1989—1990 — доступна в рамках программы Windows Research Kernel, а также в Американском музее национальной истории
- MS Windows NT Workstation 4.0 Resource Guide Microsoft, 1995, ISBN 1-57231-343-9
Windows NT (New Technology) – семейство операционных систем, выпускаемых корпорацией Microsoft с середины 1993 года. Первоначально позиционировались как системы для рабочих станций и серверов.
История Windows NT
В конце 88-го года Microsoft поручила Дэвиду Катлеру (David Cutler) возглавить новый проект в области программного обеспечения: создать новую операционную систему корпорации Microsoft для 1990-х годов. Он собрал команду инженеров для разработки системы новой технологии (New Technology — NT).
Первоначально планировалось разработать NT с пользовательским и программным (API) интерфейсами в стиле OS/2, однако OS/2 плохо продавалась, а Windows 3.0 имела большой и постоянный успех на рынке. Увидев рыночные ориентиры и сложности, связанные с развитием и поддержкой двух несовместимых систем, Microsoft решила изменить свой курс и направить своих инженеров в сторону стратегии единой цельной операционной системы. Эта стратегия состяла в том, чтобы разрабатывать семейство базирующихся на Windows операционных систем, которые охватывали бы множество типов компьютеров, от самых маленьких ноутбуков до самых больших мультипроцессорных рабочих станций. Так, следующее поколение Windows-систем было названо Windows NT.
Windows NT поддерживает графический интерфейс (GUI) Windows, а также является первой базирующейся на Windows операционной системой фирмы Microsoft, поддерживающей Win32 API, 32-х битный программный интерфейс для разработки новых приложений. Win32 API делает доступными для приложений улучшенные свойства операционной системы, такие как многонитевые процессы, синхронизацию, безопасность, I/O, управление объектами.
В июле 1993 года появились первые операционные системы семейства NT — Windows NT 3.1 и Windows NT Advanced Server 3.1.
Версии
- Windows NT 3.1 (27 июля 1993 г.)
- Windows NT 3.5 (21 сентября 1994 г.)
- Windows NT 3.51 (30 мая 1995 г.)
- Windows NT 4.0 (24 августа 1996 г.)
- Windows 2000 (17 февраля 2000 г.)
- Windows XP (25 октября 2001 г.)
- Windows XP 64-bit Edition (28 марта 2003 г.)
- Windows Server 2003 (25 апреля 2003 г.)
- Windows XP Media Center Edition 2003 (18 декабря 2003 г.)
- Windows XP Media Center Edition 2005 (12 октября 2004 г.)
- Windows XP Professional x64 Edition (25 апреля 2005 г.)
- Windows Fundamentals for Legacy PCs (8 июля 2006 г.)
- Windows Vista (30 ноября 2006 г.)
- Windows Home Server (7 ноября 2007г.)
- Windows Server 2008 (27 февраля 2008 г.)
- Windows 7
- Windows 8
- Windows 8.1
Структура Windows NT
Структурно Windows NT может быть представлена в виде двух частей: часть операционной системы, работающая в режиме пользователя, и часть операционной системы, работающая в режиме ядра
Часть Windows NT, работающая в режиме ядра, называется исполнительной частью (executive). Она включает ряд компонентов, которые управляют виртуальной памятью, объектами (ресурсами), вводом-выводом и файловой системой (включая сетевые драйверы), взаимодействием процессов и частично системой безопасности. Эти компоненты взаимодействуют между собой с помощью межмодульной связи. Каждый компонент вызывает другие с помощью набора тщательно специфицированных внутренних процедур.Цифровизация ТЭК: рыночные и технотренды, крупнейшие ИТ-поставщики. Обзор TAdviser 7.7 т
Вторую часть Windows NT, работающую в режиме пользователя, составляют серверы — так называемые защищенные подсистемы. Так как подсистемы автоматически не могут совместно использовать память, они общаются друг с другом посредством посылки сообщений. Сообщения могут передаваться как между клиентом и сервером, так и между двумя серверами. Все сообщения проходят через исполнительную часть Windows NT. Ядро Windows NT планирует нити защищенных подсистем точно так же, как и нити обычных прикладных процессов.
Поддержку защищенных подсистем обеспечивает исполнительная часть. Ее составными частями являются:
- Менеджер объектов. Создает, удаляет и управляет объектами исполнительной части — абстрактными типами данных, используемых для представления ресурсов системы.
- Монитор безопасности. Устанавливает правила защиты на локальном компьютере. Охраняет ресурсы операционной системы, выполняет защиту и регистрацию исполняемых объектов.
- Менеджер процессов. Создает и завершает, приостанавливает и возобновляет процессы и нити, а также хранит о них информацию.
Менеджер виртуальной памяти.
- Подсистема ввода-вывода. Включает в себя следующие компоненты:
- менеджер ввода-вывода, предоставляющий средства ввода-вывода, независимые от устройств;
- файловые системы — NT-драйверы, выполняющие файл-ориентированные запросы на ввод-вывод и транслирующие их в вызовы обычных устройств;
- сетевой редиректор и сетевой сервер — драйверы файловых систем, передающие удаленные запросы на ввод-вывод на машины сети и получающие запросы от них;
- драйверы устройств исполнительной части — низкоуровневые драйверы, которые непосредственно управляют устройством;
- менеджер кэша, реализующий кэширование диска.
Исполнительная часть, в свою очередь, основывается на службах нижнего уровня, предоставляемых ядром NT. В функции ядра входит:
- планирование процессов,
- обработка прерываний и исключительных ситуаций,
- синхронизация процессоров для многопроцессорных систем,
- восстановление системы после сбоев.
Ядро работает в привилегированном режиме и никогда не удаляется из памяти. Обратиться к ядру можно только посредством прерывания.
Защищенные подсистемы Windows NT работают в пользовательском режиме и создаются Windows NT во время загрузки операционной системы. Сразу после создания они начинают бесконечный цикл своего выполнения, отвечая на сообщения, поступающие к ним от прикладных процессов и других подсистем. Среди защищенных подсистем можно выделить подкласс, называемый подсистемами окружения. Подсистемы окружения реализуют интерфейсы приложений операционной системы (API). Другие типы подсистем, называемые интегральными подсистемами, исполняют необходимые операционной системе задачи. Например, большая часть системы безопасности Windows NT реализована в виде интегральной подсистемы, сетевые серверы также выполнены как интегральные подсистемы.
Наиболее важной подсистемой окружения является Win32 — подсистема, которая обеспечивает доступ для приложений к 32-bit Windows API. Дополнительно эта система обеспечивает графический интерфейс и управляет вводом/выводом данных пользователя.
Каждая защищенная подсистема работает в режиме пользователя, вызывая системный сервис исполнительной части для выполнения привилегированных действий в режиме ядра. Сетевые серверы могут выполняться как в режиме пользователя, так и в режиме ядра, в зависимости от того, как они разработаны.
Подсистемы связываются между собой путем передачи сообщений. Когда, например, пользовательское приложение вызывает какую-нибудь API-процедуру, подсистема окружения, обеспечивающая эту процедуру, получает сообщение и выполняет ее либо обращаясь к ядру, либо посылая сообщение другой подсистеме. После завершения процедуры подсистема окружения посылает приложению сообщение, содержащее возвращаемое значение. Посылка сообщений и другая деятельность защищенных подсистем невидима для пользователя.
Основным средством, скрепляющим все подсистемы Windows NT в единое целое, является механизм вызова локальных процедур (Local Procedure Call — LPC). LPC представляет собой оптимизированный вариант более общего средства — удаленного вызова процедур (RPC), которое используется для связи клиентов и серверов, расположенных на разных машинах сети.
Средства LPC поддерживают несколько способов передачи данных между клиентами и серверами: один обычно используется для передачи коротких сообщений, другой — для длинных сообщений, а третий оптимизирован специально для использования подсистемой Win32. Каждая подсистема устанавливает порт — канал связи, посредством которого с ней могут связываться другие процессы. Порты реализуются как объекты.
См. также
- Microsoft Windows
- Корпорация Microsoft
Ссылки
- Сетевые операционные системы Н. А. Олифер, В. Г. Олифер
- Microsoft Windows history
2011 г. Становление Windows NTArtem Baranov Когда Microsoft выпустила первую версию Windows NT в апреле 1993, маркетинг компании и кампания связей с общественностью особенно акцентировали внимание на имени — NT (то есть, Новая Технология) новой ОС. Microsoft продвигала NT как современную ОС, которая включает в себя все возможности, ожидаемые пользователями как от ОС для рабочих станций, так и для средних серверов. Хотя NT была новой ОС, в 1993, с новым API (то есть, Win32) и новыми пользовательскими и системными программами, корни системной архитектуры NT и ее реализация уходят к середине 1970-х. Время до NTИстория NT близко привязана к Дэвиду Н. Катлеру (David N. Cutler), ее главному архитектору. После окончания Michigan’s Olivet College в 1965, Катлер работал в DuPont. Хотя компьютеры в начале его не интересовали, он управлял моделированием машин Digital и это была часть его работы в DuPont. Вскоре, Катлер получил хорошие знания о программном обеспечении и решил, что он хочет разрабатывать операционные системы. Он поступил на работу в DEC в 1971 и занялся разработкой операционных систем для семейства машин PDP-11. RSX-11M стала первой ОС, в которую Катлер включил основные понятия и принципы разработки, позже появившиеся в NT. RSX-11M – это ОС для PDP-11 фирмы Digital, разработанная для использования в управлении производственным процессом.
Сам Катлер в предисловии к первому изданию «Inside Windows NT» пишет:
В 1975, в DEC поняли, что их конкуренты разрабатывают 32-битный процессор и что эта технология переманит клиентов от 16-битной архитектуры PDP. Гордон Белл, легендарная фигура в компьютерной истории и затем вице-президент Digital по компьютерным разработкам вел развитие 32-битового процессора, который в компании, в конечном счете, окрестили VAX. К этому времени Катлер был частью первоначальной команды разработчиков VAX. Digital назначила Катлера, наряду с Диком Хустведтом (Dick Hustvedt) и Питером Липмэном (Peter Lipman), разработчиками OС для VAX, которая называлась VMS. Первичные цели проекта Digital для VAX включали обратную совместимость с процессорами PDP-11 и достаточную гибкость, которая делала бы VAX основой как для рабочих станций, так и для серверов. DEC также сделала VMS совместимой с RSX-11M и спроектировала VMS так, чтобы та запускалась на машинах разного размера. Из этого периода развития Digital, ее состояние как компании называлось «ставит бизнес» (betting the business) на VAX и VMS. Позднее Билл Гейтс будет утверждать, что Microsoft «ставит бизнес» на NT 5.0.
В 1977, Digital анонсировала VAX-11/780 и VMS 1.0, осуществляя первые поставки продукта в 1978. Как лидер проекта и один из главных архитекторов VMS, Катлер продолжал работу над последующими выпусками VMS, но уже начинал нервничать, работая в Digital. В 1981 Катлер пригрозил покинуть Digital. Чтобы сохранить такую звезду в области разработки, компания дает Катлеру приблизительно 200 аппаратных и программных инженеров. Дэвид переместил свою группу в Сиэтл и открыл центр разработки. Цель этой элитной группы состояла в проектировании новой архитектуры процессора и ОС для него. Digital назвала аппаратную платформу Prism, а ОС для нее – Mica. Собственно, Prism явила собой разработку новой 32-разрядной процессорной архитектуры RISC, а Mica – ОС, основанную на микроядре. В 1988, руководство Digital отменила проект Катлера и уволила многих из членов его группы. Катлер решил оставить Digital, но прежде, чем он это сделал, руководители Microsoft поняли, что у них есть идеальная возможность нанять Катлера. В то время, когда Катлер покинул Digital, релизной версией была VMS 5.0.
Рис. 2. Катлер (в центре) с Соломоном и Руссиновичем, фото к предисловию 4-го издания Windows Internals. Разработка NTВ августе 1988, Билл Гейтс нанял Катлера. Одним из условий Дэвида при переходе в MS было то, что с собой он возьмет 20 инженеров из Digital, работавших с ним, включая нескольких инженеров проекта Prism. Microsoft с готовностью встретила это требование, компания знала, что наем архитектора ОС такого уровня как Катлер станет удачным ходом, к тому же у немногих инженеров был такой послужной список. Гейтс чувствовал, что долгосрочное будущее Microsoft зависело от развития новой ОС, которая будет конкурировать с UNIX.
В Microsoft внутреннее название проекта для новой ОС было OS/2 NT, потому что ее намерением для новой ОС было сохранение OS/2 API как первичного интерфейса. Хотя самым первичным именем NT было все-таки N-Ten и разрабатывалась она для RISC процессора Intel i860. По поводу этого Марк Люковски (Mark Lucovsky), говорил (в статье Windows Server 2003: The Road To Gold Part One: The Early Years):
К концу 1989 группа NT начала расти. Руководство добавило команду разработчиков сети и расширила команду безопасности, в которую входил только один человек. В этом же году появились первые образцы i860, которые команда стала использовать вместо эмуляторов. К сожалению, выяснилось, что он не в состоянии эффективно исполнять написанный код и группе пришлось переориентироваться на MIPS архитектуру, в итоге решено было остановиться на чипе MIPS R3000. Немного позже началось портирование NT на Intel i386 процессор, который был наиболее распространен в то время. Люковски объяснил, почему изначально было важно не нацеливать на него NT. «Некоторое время, мы избегали 386, чтобы избежать заточки на архитектуру. Мы не хотели использовать допущение о немобильности.» Успех Windows 3.0, в апреле 1990, изменил отношения Microsoft с IBM. Спустя шесть недель после того, как Microsoft выпустила Windows 3.0, она переименовала OS/2 NT в Windows NT, и определила Win32 API, как официальный API для NT (а это было ударом для IBM). Сам Люковски говорил на этот счет:
Новая 32-битная реализация старого API открыла для разработчиков простой путь для переноса их приложений в новую 32-битную среду, используя при этом новые возможности NT.
Гейтс решил, что совместимость с 16-битовым Windows API и умение запускать приложения Windows 3.x без модификации было первостепенной целью для NT, в дополнение к неполной поддержке DOS, OS/2 и POSIX API.
Рис. 3. Новый логотип HP VMS (aka OpenVMS). NT – переработанная VMSБольшинство основных проектировщиков NT продолжило работать и над VMS в Digital. Многие пользователи верят, что разработчики NT перенесли концепции VMS в NT, но большинство не знает, как похожи NT и VMS на уровне ядра (совпадение или нет, если вы увеличите каждую букву в названии VMS вы получите WNT). Первая версия Windows NT, Windows NT 3.1, была выпущена в июле 1993 и была названа так, чтобы соответствовать номеру версии текущего на тот момент 16-битного продукта Windows. С этих пор команда разработчиков NT работала над совершенствованием выпусков и все разработки велись на одной и той же кодовой базе. Следующей версией NT стала 3.5, которая носила кодовое имя Daytona и была выпущена в сентябре 1994. Первоначальными возможностями для Daytona были размер, производительность и совместимость с Netware.
Как в UNIX, и в большинстве коммерческих ОС, у NT есть два режима исполнения кода. В пользовательском режиме выполняются приложения, подситемы OS/2, DOS, и POSIX. Эти компоненты являются непривилегированными, потому что NT управляет ими, а также аппаратными средствами, на которых они работают. Без разрешения NT эти компоненты не могут непосредственно получить доступ к аппаратным средствам. Кроме того, компоненты и оборудование не могут получить доступ ни к другим адресным пространствам, ни к адресному пространству ядра. Компоненты в пользовательском режиме должны обратиться к ядру, если они хотят получить доступ к аппаратным средствам или выделить физические или логические ресурсы. Ядро исполняется в привилегированном режиме: оно может непосредственно получить доступ к памяти и апаратуре. Ядро состоит из нескольких исполнительных подсистем, которые отвечают за обслуживание ресурсов, включая диспетчер процессов, диспетчер воода/вывода, диспетчер виртуальной памяти, справочный монитор безопасности, и микроядро, которое обслуживает планирование и прерывания. Система динамически загружает драйверы устройств, которые являются компонентами ядра и служат интерфейсом между NT и различными периферийными устройствами. Уровень абстрагирования от оборудования (HAL) скрывает специфичные особенности процессора и материнской платы от NT. Родной (native) API NT – это API, который приложения пользовательского режима используют для вызова ядра. Этот родной API главным образом недокументирован, потому что приложения, как предполагается, вызывают подсистему Win32, DOS, OS/2, POSIX, или Win16, и соответствующая подсистема взаимодействует с ядром от имени приложения. Разработчики Digital написали ядро VMS почти полностью на ассемблере VAX. Чтобы код был портируемым на различные архитектуры процессоров, разработчики Microsoft написали ядро NT почти полностью на C. При разработке NT, разработчики переписали VMS на C, избавили ее от недостатков, настроили, и добавили некоторый новый функционал и совместимость. Они создали новый API (то есть, Win32), новую файловую систему (то есть, NTFS), и новую графическую подсистему интерфейса, исполнительную среду, поддерживая т. о. обратную совместимость с DOS, OS/2, POSIX, и Win16. Однако, перемещение внутренностей VMS в NT было настолько полным, что в течение нескольких недель после выпуска NT, инженеры Digital заметили поразительные общие черты.
Рис. 5. Обобщенная архитектура ядра VMS.
Рис. 6. Обобщенная архитектура ядра NT. Из этих общих черт можно составить книгу. Фактически, можно прочитать разделы книги «VAX/VMS Internals and Data Structures» (Digital Press) как точное описание внутренностей NT, просто переводя термины VMS к терминам NT. Рассмотрим некоторые из главных общих черт и различий между Windows NT 3.1 и VMS 5.0, последней версией VMS, на которую Дейв Катлер и его команда, оказали большое влияние. Процессы в NT фактически идентичны процессам VMS. В NT, как в VMS, планировщик процессов реализует 32 уровня приоритетов. Процесс с самым высоким приоритетом всегда активен, а процессы с тем же самым приоритетом планируются по принципу карусели. Система выделяет 16 уровней высокого приоритета — реального времени или уровней с фиксированным приоритетом. В таких процессах планировщик не манипулирует приоритетами. 16 низкоприоритетных уровней (исключая нулевой, который система резервирует для потока простоя idle, он выполняется в том случае, когда нет готовых к выполнению потоков) являются динамическими, потому что планировщик, часто, совместно с драйверами устройств, увеличивает приоритеты, при отклике на различные события. Например, когда процесс получает данные от устройства, приоритет соответственно увеличивается. Особенность диспетчеров процессов NT и VMS в том, что они никогда не понижают приоритет процесса ниже приоритета, на котором изначально работает приложение. Планировщики и VMS 5.0 и NT 3.1 поддерживают симметрическую мультипроцессорную обработку (SMP), которая позволяет им выполнять процессы одновременно на различных центральных процессорах, для увеличения производительности приложения. Главное различие между NT и VMS в управлении процессами в том, что процессы NT содержат один или более потоков, и планировщик NT предоставляет процессорное время не процессам, а потокам. Digital не вводила потоки режима ядра в VMS до версии 7.0 в 1995. Это дополнение — одно из нескольких улучшений, сделанных Digital для VMS, начиная с выхода NT, которые появились в ответ на возможности NT. В свою очередь, Microsoft добавила легкие потоки пользовательского режима к NT 4.0 в 1996, которые она скопировала с реализации потоков VMS.
Рис. 7. Загрузочный экран NT 4.0. Диспетчеры памяти в NT и VMS также похожи. Обе ОС осуществляют трансляцию виртуальных адресов, которые система разделяет между выполняемым приложением и ядром. И NT и VMS полагаются, в большой степени, на проецируемые в память файлы, особенно для проецирования кода, выполняемого приложением и реализацию функционала копирование при записи (copy-on-write). Физическое управление памятью в NT и VMS осуществляется через подкачку виртуальной памяти по требованию (demand-paged virtual memory). Диспетчер памяти VMS назначает каждому процессу верхние и нижние пределы количества физической памяти (такой алгоритм называется рабочий набор, working set). Эта возможность регулирует распределение физической памяти между приложениями, чтобы процесс, требующий много памяти не смог воздействовать, таким образом, на другие приложения. Как и с диспетчером процессов, примечательные отличия существуют между диспетчером памяти NT и VMS. Диспетчер настройки баланса VMS (VMS’s Balance Set Manager) перемещает всю память процессов из памяти в файлы подкачки и обратно в память, в ответ на требования системы. Microsoft не перенесла этот механизм, известный как свопинг (swapping, устаревший механизм подкачки, согласно которому процесс выгружался из памяти не постранично, а целиком) в диспетчер настройки баланса NT, хотя некоторые из вторичных обязанностей диспетчера настройки баланса NT сходны с обязанностями диспетчера VMS. Диспетчер ввода/вывода NT непосредственно основан на диспетчере ввода/вывода VMS. У обеих ОС он поддерживает многоуровневую модель драйверов через стек драйверов устройств, а также реализует асинхронные команды ввода/вывода, основанные на пакетах (специальных структурах данных), и способен динамически загружать и выгружать драйверы устройств. Стековые и загружаемые драйверы делают NT и VMS очень расширяемымыми ОС. Любая из них может делить функциональность между несколькими драйверами устройств, при этом каждый из них будет реализовывать свой уровень абстракции. Например, система может вставить отказоустойчивый драйвер диска (fault-tolerant disk driver) между драйвером файловой системы и дисковым драйвером. Эта конфигурация позволяет отказоустойчивому драйверу диска получать запрос, который система посылает на один логический диск (например, C), и далее отправить запрос на несколько физических дисков, чтобы осуществить зеркалирование или чередование. Асинхронный ввод/вывод позволяет приложениям и подсистемам ядра инициировать запросы на устройства и продолжать работу, и это предпочтительнее, чем просто ждать завершения запроса (синхронный ввод/вывод). Архитектура драйвера устройства NT и схема приоритетов запросов перерываний основаны на аналогичных в VMS. NT и VMS представляют ресурсы как объекты, которыми система управляет через диспетчер объектов, он реализует унифицированный механизм подсчета ссылок и учета объектов. Диспетчер объектов регулирует выделение ресурса и вызывает функции исполнительной подсистемы, которые запросили уведомление об определенных операциях на объекте. Управление объектами в VMS не формализовано как в NT, и диспетчер объектов VMS — только свободная связь функций. Microsoft расширила диспетчер объектов в NT так, чтобы он предоставлял единую схему именования для всех ресурсов ядра. Подсистема безопасности NT основана на объектах со списком избирательного управления доступом (discretionary access control lists). Эти списки определяют, какие пользователи и какие операции они могут выполнить на этих объектах. Digital добавила улучшенный DACL к модели безопасности VMS в версии 4.0 в 1984. Поэтому, реализация безопасности VMS — предшественник NT. Microsoft даже включала системные утилиты из VMS в NT, включая, Монитор Производительности (Performance Monitor), который основан на программе MONITOR, расширяемом мониторе производительности VMS (extensible VMS performance monitor). VMS включала утилиту под названием BACKUP задолго до того, как Microsoft разработала подобную ей для NT. Статья «Почему Самый быстрый Чип не Победил», «Why the Fastest Chip Didn’t Win» (Business Week, April 28, 1997) заявляет, что, когда инженеры Digital заметили общие черты между VMS и NT, они донесли свои наблюдения до высшего руководства. Вместо предъявления иска, Digital просто разорвала связи с Microsoft. Летом 1995, Digital анонсировала Affinity для OpenVMS, программу, которая требовала от MS помощи в обучении работе с NT технического персонала Digital, а также помощи в продвижении NT и OpenVMS как части сетевого решения клиент-сервер, и обещания встроить в NT поддежку Alpha процессора. Microsoft также заплатила Digital сумму между 65 миллионами и 100 миллионов долларов. ЗаключениеХотя Microsoft представляет NT как свою ОС, она фактически намного старше своей даты рождения в 1993 и содержит архитектурное влияние от ОС другого флагмана. Интересно, что большая часть бизнеса Microsoft, это ее линейка современных ОС для PC, каждая из которых, по сути, основана на ОС от другого вендора. DEC не смогла бы сделать OpenVMS такой популярной, т. к. та изначально была ориентирована на серверы и свою архитектуру VAX. MS же напротив, соединила клиентскую и серверную модели (впервые в Windows 2000). В итоге они получили ядро ОС, которое может работать как с клиентскими, так и с серверными PC, достаточно лишь его настроить соответствующим образом. |
-
Windows 1.0 — графическая оболочка для MS-DOS, официально анонсирована Биллом Гейтсом 10 ноября 1983 года в Нью-Йорке, однако была выпущена лишь спустя два года. Объявленная стоимость ОС в США составляла 99 долларов.
Реакция пользователей на появление Windows была сдержанной, поскольку для полноценного использования приходилось приобретать такое дорогостоящее оборудование, как мышь, память большего объёма и новую модель процессора.
-
Выход Windows 2.0 состоялся 9 декабря 1987 года. Пользователи этой ОС могли применять комбинации клавиш для быстрого осуществления системных операций. Однако несмотря на то, что многие разработчики принялись писать программное обеспечение под эту Windows 2.0, она не получила широкого распространения, поскольку слабая аппаратная часть и значительные программные ограничения затрудняли использование многооконного интерфейса.
-
Windows/286 2.10 и Windows/386 2.10 были выпущены 27 мая 1988 года, меньше чем через год после выпуска Windows 2.x. Впервые для установки Windows стало требоваться наличие жёсткого диска. Изменения заключались в основном в поддержки новых технологий расширенной памяти и большего числа периферийных устройств (особенно принтеров) и были в целом незаметными для пользователя, хотя и улучшающими общее впечатление от продукта
-
Windows 3.0 была выпущена 22 мая 1990 года и имела значительно обновлённый пользовательский интерфейс. ОС получила «Диспетчер программ» и «Менеджер файлов», а также обновленную версию «Панели управления» и пасьянс «Солитер», до сих пор являющийся неотъемлемой частью Windows. Кроме того, новая операционная система стала выглядеть намного лучше благодаря поддержке 256 цветов в видеоадаптере VGA и изменениям графического интерфейса.
-
Windows 3.1, выпущенная 18 марта 1992 года, была расширенной Windows 3.0. Она включала систему шрифтов TrueType, что впервые сделало Windows серьёзной платформой для компьютерной вёрстки. Эта версия Windows также включала простую антивирусную программу Microsoft Anti-Virus for Windows. Windows 3.1 была разработана таким образом, чтобы иметь максимальный уровень обратной совместимости с более старыми платформами Windows. Как и версия 3.0, Windows 3.1 имела Диспетчер Файлов и Диспетчер Программ.
-
Windows NT 3.1 — первая операционная система линейки Microsoft Windows NT для серверов и корпоративных рабочих станций, выпущенная 27 июля 1993 года. Основные функции ядра операционной системы, представленные в NT 3.1, используются в 32-битных версиях современных операционных систем семейства Windows, а в расширенном виде присутствуют и в 64-битных версиях. Также в NT 3.1 впервые появилась поддержка файловой системы NTFS.
-
Windows NT 3.5 была выпущена 21 сентября 1994 года. Одной из главных целей её разработки было увеличение скорости работы операционной системы. Она включала интегрированную поддержку Winsock и TCP/IP. ОС могла предоставлять общий доступ к файлам через FTP, а к принтерам через LPR. Были доступны серверы Gopher, WWW и WAIS. Windows NT 3.5 поддерживала удалённый доступ к системе с использованием модема, подключаемого к телефонной линии.
-
Windows NT 3.51 была выпущена 30 мая 1995 года, через 9 месяцев после Windows NT 3.5. Основными нововведениями в данной версии стали поддержка архитектуры PowerPC, а также клиент-серверного взаимодействия с Windows 95. В NT 3.51 были включены такие новые возможности, как поддержка PCMCIA, сжатия файлов NTFS[3], заменяемый WinLogon (GINA), поддержка 3D-графики с использованием OpenGL, постоянные IP-маршруты с использованием протокола TCP/IP и поддержка общих элементов управления Windows 95.
-
Windows 95 (Chicago) была официально представлена 24 августа 1995 года. Новшества интерфейса Windows 95 активно использовались во всех последующих версиях Windows: в ней появились такие элементы графического интерфейса, как рабочий стол со значками, панель задач и меню «Пуск». На современных системах запуск возможен только на некоторых виртуальных машинах, которым, в свою очередь, нередко требуются определённые настройки и драйверы.
-
Windows NT 4.0 — последняя версия семейства сетевых операционных систем Microsoft Windows NT вышла 29 июля 1996 года. Windows NT 4.0 имела модификации для использования в качестве операционной системы рабочей станции (Windows NT Workstation) и сервера (Windows NT Server) и предназначалась для работы на компьютерах архитектур Alpha, MIPS, x86, PowerPC и PC98.
-
Windows 98 (Memphis) вышла 25 июня 1998 года. По сути, это обновлённая версия Windows 95, по-прежнему являющаяся гибридным 16/32-разрядным продуктом, основанным на MS-DOS 7.1. Улучшениям подверглась поддержка AGP, доработаны драйверы USB, добавлена поддержка работы с несколькими мониторами и поддержка WebTV. Как и в Windows 95 OSR 2.5, в интерфейс системы (Explorer.exe) интегрирован Internet Explorer 4 (функция Active Desktop).
-
Windows 2000 (Cairo) — операционная система семейства Windows NT компании Microsoft, предназначенная для работы на компьютерах с 32-битными процессорами, которая вышла 17 февраля 2000 года.
-
Windows Millennium Edition (Windows ME) — операционная система, выпущенная корпорацией Microsoft 14 сентября 2000 года. Была названа так в честь нового III тысячелетия (лат. millennium — тысячелетие). От своих предшественниц отличается относительно небольшими обновлениями, такими как новый MS-DOS 8.0, Internet Explorer 5.5 и Windows Media Player 7.0. Появился также Windows Movie Maker с базовыми функциями редактирования цифрового видео.
-
Windows XP (Whistler) была выпущена 25 октября 2001 года и является развитием Windows 2000. Она получила совершенно новый пользовательский интерфейс. Благодаря невысоким системным требованиям и хорошей поддержке как нового, так и старого аппаратного обеспечения, обеспечивала высокую производительность на широком спектре конфигураций. ОС получила большое признание пользователей и может считаться лучшим продуктом корпорации Microsoft.
-
Windows Server 2003 (Whistler Server) — операционная система семейства Windows NT от компании Microsoft, предназначенная для работы на серверах. Она была выпущена 24 апреля 2003 года.
-
Windows Vista была выпущена 30 января 2007 года. Предназначена исключительно для рабочих станций и персональных компьютеров; её ориентированная на серверы «сестра» — Windows Server 2008. В Windows Vista обновлена подсистема управления памятью и вводом-выводом. Новой функциональностью также является «Гибридный спящий режим», при использовании которого содержимое оперативной памяти дополнительно записывается на HDD, но и из памяти также не удаляется.
-
Windows Home Server — это серверная операционная система компании Microsoft, которая построена на основе Windows Server 2003 SP2 и ориентирована на домашних пользователей для использования в домашних сетях. Заявлено мощнейшее централизованное архивирование, полностью автономная работа и простая установка. Продукт был анонсирован Биллом Гейтсом 7 января 2007 года и вышел 16 июля 2007 года.
-
Microsoft Windows Server 2008 (Longhorn Server) — версия серверной операционной системы производства компании Microsoft. Выпущена 27 февраля 2008 года. Пришла на смену Windows Server 2003 как представитель нового поколения операционных систем семейства Vista.
-
Windows Server 2008 R2 — серверная операционная система компании «Microsoft», являющаяся усовершенствованной версией Windows Server 2008. Поступила в продажу 22 октября 2009. Как и Windows 7, Windows Server 2008 R2 использует ядро Windows NT 6.1. Новые возможности включают улучшенную виртуализацию, новую версию Active Directory, Internet Information Services 7.5 и поддержку до 256 процессоров.
-
Windows 7 — пользовательская операционная система, вышедшая 22 октября 2009 года. В состав Windows 7 вошли как некоторые разработки, исключенные из Windows Vista, так и новшества в интерфейсе и встроенных программах. Windows 7 имеет шесть редакций: Начальная, Домашняя базовая, Домашняя расширенная, Профессиональная, Корпоративная, Максимальная.
-
Windows Home Server 2011 (Vail) — домашняя серверная операционная система семейства Windows, предназначена для малого офиса/домашнего офиса. Финальная версия продукта увидела свет 6 апреля 2011 года. В целом, благодаря новой платформе продукт получился более устойчивым и производительным. Невысокая стоимость, отсутствие требований к приобретению клиентских лицензий и простота в эксплуатации позволяют использовать сервер на предприятиях малого бизнеса с численностью рабочих станций в сети до 10.
-
Windows Server 2012 (Windows Server
— версия серверной операционной системы от Microsoft. Принадлежит семейству ОС Microsoft Windows. Была выпущена 4 сентября 2012 года на смену Windows Server 2008 R2 как серверная версия Windows 8.
-
Windows 8 — операционная система, поступившая в продажу 26 октября 2012 года. Она использует интерфейс под названием Metro. Этот интерфейс схож по функциональности с рабочим столом — стартовый экран имеет плитки приложений, по нажатию на которые запускается приложение, открывается сайт или папка. Windows 8 — переосмысленная Windows 7, и приёмы работы с рабочим столом остались теми же.
-
Windows 8.1 — операционная система, предназначенная для рабочих станций, персональных компьютеров и портативных устройств. По сравнению с Windows 8 имеет ряд обновлений и изменений в работе с графическим интерфейсом. Windows 8.1, так же, как и Windows 8, ориентирована на сенсорные ПК, но не исключает возможности использования на классических ПК. Выпущена 17 октября 2013 года.
-
Windows Server 2016 (Windows Server vNext) — серверная операционная система от Microsoft. Система является частью семейства Windows NT и разрабатывается одновременно с Windows 10. Первая ранняя предварительная версия (Technical Preview) стала доступна 1 октября 2014 года, одновременно с первой предварительной версией System Center.
-
Windows 10 — операционная система для персональных компьютеров и рабочих станций, выпущенная 29 июля 2015 года. Система призвана стать единой для разных устройств, таких как персональные компьютеры, планшеты, смартфоны, консоли Xbox One и т.д. Windows 10 занимает первое место в мире среди операционных систем, используемых для доступа к сети Интернет.
-
Windows Server 2019 была анонсирована 20 марта 2018 года, выход финальной версии состоялся 2 октября 2018 года. Microsoft анонсировала опции для пользователя при инсталляции: Desktop (c GUI) и Server Core (для удаленной поддержки). Среди ключевых новых функций: более глубокая поддержка виртуальных машин, включая виртуальные машины на Linux[4], интерфейс от Windows 10 (сборка 1809) и улучшенный Windows Defender.

— версия серверной операционной системы от Microsoft. Принадлежит семейству ОС Microsoft Windows. Была выпущена 4 сентября 2012 года на смену Windows Server 2008 R2 как серверная версия Windows 8.