ОС Windows NT

История операционной системы Windows NT

1988г.
Операционная система Windows NT
Дэйв Катлер
Билл Гейтс нанимает архитектора системы VMS Дэйва Катлера (Dave Cutler) и дает задание на проектирование современной коммерческой ОС для дестопов и серверов.
  1. Это должна быть некая универсальная система, в которой не должно быть различия между рабочими станциями и серверами, она должна масштабироваться;
  2. Должна быть совместима с OS/2 (популярной в то время ОС от компании IBM);
  3. С поддержкой многопроцессорности;
  4. Безопасная и надежная, переносимая;
  5. ОС ориентирована на ЦП Inteli860(N10) Nten(NT).
Отдел маркетинга предложил название NT- New Technology.
Еще одна версия VMS – WNT, следующие буквы по алфавиту v-w  m-n  s-t.

История разработки Windows NT (таймлайм)

1989г — начало проектирования
1993г — Windows NT3.1(в ней уже были заложены многие интересные решения, коммерчески не успешная)
1994г — Windows  NT3.5
1995г — Windows NT3.51 (граф.оболочка соответствовала Win 3.11, был достаточно простой программ-менеджер
1996г — Windows  NT4.0 – положила начало грандиозного успеха с которого началась история массового применения Windows .
Впервые применена графическая оболочка, которая имеет название Explorer(Проводник) – пользовательский интерфейс.
Ядро данной ОС очень удачное и наблюдается преемственность, эволюционно улучшается в следующих моделях ОС, часть ядра переписывается, но фундаментальных, глобальных революционных изменений нет.
1999г – Windows 2000 (NT5.0)
2001г — Windows XP 2000 (NT 5.1)
2003г —  Windows 2003/XP SP2 (NT5.2)
2006г —  Windows  Vista (NT6.0)
2008г —  Windows 2008 (NT6.0)
2009г —  Windows  7/2008 R2 (NT6.1)
2012г —  Windows  8 (NT6.2) – считается для десктопов провалом, но для мобильных устройств является удобным и новым. Новый интерфейс с основой Task Screen/ Управление ПК с помощью голоса.

Windows NT — Режим пользователя

Переходим к внутренним тонкостям реализации Windows.
У ОС два режима работы, она состоит из двух уровней – компоненты, работающие в режиме ядра и в режиме пользователя.
В режиме пользователя:
  • Кроме самих программ , которые запускает сам пользователь есть;
  • Оболочка (explorer, winlogon);
  • Системная библиотека (ntdll.dll) – через нее осуществляются системные вызовы (вызовы внутри ядра);
  • Системные службы (smss, lsass, services).
По другой классификации можно выделить четыре типа пользовательских процесса:
1) Фиксированные процессы поддержки системы (logon, smss)
2) Процессы сервисов – запускаются диспетчером управления сервисами. Термин сервис правильнее бы назвать службой, но в книге по WinNT называется именно сервис.
3) Пользовательские программы
4) Подсистемы окружения – Windows, POSIX, OS/2 – являются равнозначными подсистемами по работе, концерн из подсистем был достаточно гениальным.

Windows NT — Режим ядра 

Само ядро NTOS состоит из двух частей:
  1. Kernel – абстрагирует ЦП
  2. Executive – исполняет функции ядра ОС – исполнительный модуль, исполнительная подсистема, исполнительная часть ядра, планировщик.
Драйвера (модель расширяемого ядра)
  • Интерфейс к устройствам
  • Реализация файловой системы, устройств хранения, сетевого взаимодействия
  • Расширение функциональности самого ядра
Слой абстракции оборудования (HAL)
  • Скрывает детали работы с чипсетом/BIOS
  • Драйвера используют HAL — не нужно изменять драйвера, меняется HAL.

Особенности модели ядра Windows NT

Особенности модели ядра ОС  Windows NT  были заложены в далеком 1989году при ее проектировании. Это:
  • Многопоточная система, процесс – контейнер для потоков, т.е. не может быть процесс без потоков, не могут быть потоки отдельно от процесса. Есть процесс внутри него один или много потоков.
  • Планирование осуществляется по потокам.
  • Полностью асинхронный ввод/вывод.
  • Унифицированное управление структурами данных ядра, хэндлами, пространствами имен, объектами синхронизации. Каждая структура данных, какая-либо абстракция, представляется в ядре Windows NT некоторым объектом. Есть менеджер объектов, есть таблица хэндлов, как способ обращения к этим объектам. Этот механизм очень мощный и представляет большие возможности по использованию.
  • Безопасность на основе списков контроля доступа — Access Control List .
  • Хранилище конфигураций хранится отдельно от файловой системы в БД и носит название реестр.
  • Расширяемая (через фильтры) модель вв/выв с послойными драйверами, стандартной моделью устройств, уведомлениями.
  • Технология Plug-and-Play – сегодня воспринимается как должное, а раньше нужно было каждое новое устройство добавлять вручную самостоятельно и это было не всегда просто.
  • Управление питанием – некоторые устройства отключаются, некоторые переводятся в режим пониженного потребления питания. Для этого нужна поддержка на уровне ядра ОС, драйверов.
    Сегодня, используя мобильные устройства необходимо экономить электроэнергию. Устройства, которые потребляют много энергии должны отключаться в момент, когда они не нужны.
  1. Режим пользователя – User mode
  2. Режим ядра — Kernel mode
  3. Hardware – аппаратное обеспечение
Больше функционала находится в ядре: менеджеры вв/выв, безопасности, виртуальной памяти, процессов, поддержки Plug-and-Play, управления питанием, интерфейс с графическими устройствами, оконный менеджер, менеджер межпроцессорного взаимодействия. В основе всего лежит менеджер объектов, на нем строиться все ядро.
Сверху располагаются исполнительные сервисы (exect). Ниже идут драйвера.
Вся связь с аппаратурой осуществляется через драйвера и слой абстракции (Hardware Abstraction Layer) аппаратного обеспечения (HAL).
На рисунке обозначено микроядро – MicroKernel, хотя ядро Windows NT не является микроядром в классическом понимании, а скорее всего является неким гибридным ядром, т.к. в нем есть службы, которые выполняются чаще всего в режиме ядра, присутствует гибридность.
Режим пользователя также очень интересен за счет того, что все пользовательские приложения взаимодействуют с ядром и другими библиотеками режима пользователя исключительно через подсистемы.
Именно эти подсистемы задают возможность поддержки других программ. Это означает, что через поддержку Posix можно осуществлять запуск программ, которые были разработаны для ОС других классов, например, Unix, OS/2.
При разработке была поставлена задача поддержки популярной ведущей системы, в процессе эволюции OS/2 была полностью вытеснена ОС Win32, затем из Win убрали поддержку OS/2, а затеи и Posix.
Сейчас фактически осталась Win32, хотя механизм был заложен очень хороший. Но монополизация рынка привела к тому,что MS решила отказать от этого.

Комментарии