Windows nt какое ядро

Обновлено: 04.07.2024

Windows NT (New Technology) – семейство операционных систем, выпускаемых корпорацией Microsoft с середины 1993 года. Первоначально позиционировались как системы для рабочих станций и серверов.

История 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). Она включает ряд компонентов, которые управляют виртуальной памятью, объектами (ресурсами), вводом-выводом и файловой системой (включая сетевые драйверы), взаимодействием процессов и частично системой безопасности. Эти компоненты взаимодействуют между собой с помощью межмодульной связи. Каждый компонент вызывает другие с помощью набора тщательно специфицированных внутренних процедур.

Поддержку защищенных подсистем обеспечивает исполнительная часть. Ее составными частями являются:

  • Менеджер объектов. Создает, удаляет и управляет объектами исполнительной части - абстрактными типами данных, используемых для представления ресурсов системы.
  • Монитор безопасности. Устанавливает правила защиты на локальном компьютере. Охраняет ресурсы операционной системы, выполняет защиту и регистрацию исполняемых объектов.
  • Менеджер процессов. Создает и завершает, приостанавливает и возобновляет процессы и нити, а также хранит о них информацию.

Менеджер виртуальной памяти.

  • Подсистема ввода-вывода. Включает в себя следующие компоненты:
    • менеджер ввода-вывода, предоставляющий средства ввода-вывода, независимые от устройств;
    • файловые системы - NT-драйверы, выполняющие файл-ориентированные запросы на ввод-вывод и транслирующие их в вызовы обычных устройств;
    • сетевой редиректор и сетевой сервер - драйверы файловых систем, передающие удаленные запросы на ввод-вывод на машины сети и получающие запросы от них;
    • драйверы устройств исполнительной части - низкоуровневые драйверы, которые непосредственно управляют устройством;
    • менеджер кэша, реализующий кэширование диска.

    Исполнительная часть, в свою очередь, основывается на службах нижнего уровня, предоставляемых ядром NT. В функции ядра входит:

    • планирование процессов,
    • обработка прерываний и исключительных ситуаций,
    • синхронизация процессоров для многопроцессорных систем,
    • восстановление системы после сбоев.

    Ядро работает в привилегированном режиме и никогда не удаляется из памяти. Обратиться к ядру можно только посредством прерывания.

    Наиболее важной подсистемой окружения является Win32 - подсистема, которая обеспечивает доступ для приложений к 32-bit Windows API. Дополнительно эта система обеспечивает графический интерфейс и управляет вводом/выводом данных пользователя.

    Каждая защищенная подсистема работает в режиме пользователя, вызывая системный сервис исполнительной части для выполнения привилегированных действий в режиме ядра. Сетевые серверы могут выполняться как в режиме пользователя, так и в режиме ядра, в зависимости от того, как они разработаны.

    Основным средством, скрепляющим все подсистемы Windows NT в единое целое, является механизм вызова локальных процедур (Local Procedure Call - LPC). LPC представляет собой оптимизированный вариант более общего средства - удаленного вызова процедур (RPC), которое используется для связи клиентов и серверов, расположенных на разных машинах сети.

    Продолжаем начатую лекцию по ОС Windows NT. Начало лекции можно посмотреть здесь.

    Само ядро представим в виде трех слоев.

    Это и спроектировали в HAL.

    На рисунке ниже представлена упращенная схема ядра Windоws NT.

    Ядро Windows NT

    Упрощенная схема ядра Windows NT

    В то время, когда проектировался сам Windows это было необходимостью, ведь не было понятно, какой доминирующей будет аппаратная платформа через год, 5лет…, а ОС должна ориентироваться на текущее и будущее аппаратное обеспечение. Тогда не был ясен тип платформы (х86 х64), и только благодаря свойству переносимости удалось выпустить Windows ARTI для планшетов (на базе ЦП ARM).

    Таким образом запроектировано переносимое портабельное ядро с помощью слоя абстракции аппаратного обеспечения (HAL) .

    На этом слое абстракции стоят следующие две части ядра:

    1. Драйвера устройств – они работают с устройствами через HAL и предоставляют свои сервисы, например устройства ввода/вывода – мышь, клавиатура, диск, сеть.
    2. Kernel – это не конкретно ядро, а его часть.

    Ключевой принцип архитектуры ядра Windows

    Это принцип подсистем окружения (или персоналий).

    Программы пользователя НЕ используют сервисы ОС напрямую. Даже когда мы запускаем любое приложение под Windows напрямую, оно никогда не использует ядро напрямую, только через подсистему окружения Windows API, нет вызова ядра напрямую.

    Библиотека подсистемы неким образом транслирует документированную API функцию в вызов недокументированной функции ОС.

    За счет этого функции ОС можно менять под «сегодняшний» день, при этом оставлять обратную совместимость с теми приложениями, которые уже разработаны под ОС, за счет того, что есть документированное API, которое обязано работать.

    Вначале было три подсистемы окружения: Windows, OS/2, POSIX

    В Windows 2000 исчезла OS/2

    В Windows XP исчезла POSIX

    Компоненты системы ядра

    Kernel – самые низкоуровневые функции ОС: планирование потоков, обработка прерываний, мультипроцессорная синхронизация.

    Kernel предоставляет низкоуровневые примитивы, на которые Executive реализует высокоуровневые конструкции

    HAL – прослойка между аппаратным обеспечением и ядром.

    Executive – стоит выше и реализует основные сервисы ОС: управление памятью, процессами, потоками, безопасность, ввод/вывод, межпроцессорное взаимодействие.

    Драйвера устройств – реальные устройства – работа с аппаратурой, виртуальные устройства – драйвера (например сетевого стэка).

    Другие модули ядра

    • Реализуют функции графического интерфейса
    • Реализуют оконную подсистему

    Микроядро

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

    Причины: производительность, слишком много переключений. По мнению MS нет ни одной коммерчески успешной ОС, которая была бы исключительно микроядро.

    В Windows используется Гибридное ядро , так как обладает некоторыми характеристиками микроядра:

    • Подсистемы(персоналии) работают в собственных адресных пространствах
    • Компоненты ядра архитектурно изолированы, т.е. менеджер памяти, в его внутреннюю структуру из вне никто не вторгается, все пользуются тем API, которое предоставляет ММ. Тоже самое касается управлением процессами, потоками, конфигурациями, они архитектурно изолированы.

    На рисунке выше «Упрощенная схема ядра» Kernel по сути и есть это микроядро, которое можно было бы Executive вынести в режим пользователя и разбить его на отдельные процессы. В ядре осталась бы только часть и это было бы классическое микроядро.

    Но из за причины производительности Executive не стали выносить в режим пользователя и разбивать на отдельные процессы. Его скомпилировали, поместили в модуль, архитектурно все осталось в ядре.

    Поэтому В Windows ядро Гибридное и достаточно интересно организовано.

    В ядре и HAL есть небольшие включения на Ассемблере внутри слоя абстракции аппаратного обеспечения.

    Последние 20лет ПК работают на х86 платформе, поэтому вопрос о переносимости перед разработчиками ОС не стоял.

    Объектно-ориентированный подход

    Ключевой принцип при проектировании Windows.

    Любой ресурс системы представляется как некий объект. Ресурс – это любой ресурс который должен разделяться и к которому может быть доступ от нескольких процессов. Если ресурс используется в рамках одного процесса, то выделять его как объект не имеет смысла.

    В основе Windows NT – объекты, унифицированная форма, имеющая:

    • Именование
    • Совместное использование
    • Учет

    Зачем все так сделано?

    Есть несколько типов ресурсов, в бедующем можно добавлять другие ресурсы в систему, и чтобы эта унифицировать и не переписывать все ядро, создали унифицированную форму: наименование, совместное использование, учет.

    Любой разделяемый ресурс системы – это объект.

    Внутри структуры самого execute – не объекты.

    Менеджер объектов

    Это часть execute, сокращенное название OB(Object Manager) – эти же самые названия используются в языке СИ.

    • Физ. файлы и директории;
    • Элементы реестра;
    • Процессы (поток).

    Каждый ресурс предоставляется объектом

    Операции над объектами:

    • Создание/удаление;
    • Защита доступа;
    • Подсчет ссылок (Reference counting).

    Подсчет ссылок (Reference counting)

    При создании или открытии объекта создается ссылка на объект, называемая хэндлом.

    Хэндлы ассоциированы с процессом, но могут передаваться от одного процесса к другому, так как объектом можно пользоваться из разных процессов, то это разделяемый ресурс. Удобно передавать хэндлы.

    По иерархии объектов существуют два класса объектов:

    1. executive – используются пользовательскими приложениями и компонентами самого executive (исполнительной подсистемы), их большинство, они общие.
    2. Kernel – представляют базовые ресурсы – физические устройства, примитивы синхронизации… Могут использоваться только в режиме ядра. Используются только ядром, т.е. с ними работает только ядро и больше никто.

    Типы объектов Windows

    Класс Executive

    Что такое сам объект физически?

    Сам объект – это набор каких-то данных. Каких – менеджеру объектов без разницы. Объект состоит из двух больших частей: тело, заголовок.

    Тело – сами данные(они интересуют конкретного потребителя).

    Заголовок – добавляется менеджером объектов, в нем хранится внутренняя информация для организации объекта, его хранения, наименования, учета, работы, прав доступа.

    • Имя
    • Директория, которая ему принадлежит
    • Дескриптор безопасности
    • Сколько раз были открыты хэдлы объекта
    • Список процессов, имеющих ссылку на данный объект
    • Количество этих ссылок
    • Тип

    Все они нужны для работы менеджера объектов.

    Объекты группируются в директории, чтобы их как то систематизировать. Строится все иерархическим образом, есть директории верхнего уровня(Root), потом есть ветви.

    Файловая организация WindowsNT

    1. NTOSKRNL.EXE – ядро ОС (execute и kernel).
    2. HAL.DLL – абстракция аппаратного обеспечения. Так как в ОС изначально поддерживалась модульность, то слой абстракции аппаратного обеспечения располагается отдельным файлом.
    3. NTDLL.DLL – реализация Native API и системные вызовы – специальная библиотека, где хранятся системные вызовы, которые предоставляют пользователю удобный API интерфейс для работы.

    Подключаемые файлы (подключаемые модули ядра) могут называться как угодно.

    Модули ядра Windows NT нельзя вкомпилировать в само же ядро. В ОС Linex есть выбор, можно использовать их отдельно, можно вместе с ядром).

    Для самой ОС три файла недостаточны, необходим еще ряд менеджеров и подсистем и всего прочего для того, чтобы организовать сложную архитектуру Windows NT, чтобы работало все подсистемное окружение.

    Поэтому некоторые другие файлы тоже необходимы, они представлены ниже в порядке загрузки.

    • SMSS.EXE – процесс менеджера сессий.
    • WINLOGON.EXE – процесс управления аутентификацией пользователя (логон).
    • SERVICES.EXE – процесс управления службами (сервисами).
    • LSASS.EXE – процесс подсистемы Local Security Authority.
    • CSRSS.EXE – процесс подсистемы Windows.
    • WIN32R.SYS – часть подсистемы Win, работающая в режиме ядра. Драйвер, подключаемый модуль ядра, он реализует ту часть подсистемы окружения Win,которая работает в режиме ядра, т.е. это оконный менеджер и графическая подсистема.
    • KERNEL32.DLLUSER32.DLL GDI32.DLL – три ключевые динамические библиотеки подсистемы, реализуют пользовательскую часть подсистемы окружения Winвщцы. Для 64разрядной ОС применяются те же названия (с числом 32).

    Подсистема Windows

    CSRSS.EXE – процесс подсистемы окружения Windows, который управляет консольными приложениями и реализует вспомогательные функции

    Win32K.SYS – драйвер режима ядра, реализуется:

    Подсистема пользователя

    • Динамические библиотеки подсистемы: ADVPI32.DLL, USER32.DLL, GDI32.DLL, KERNEL32.DLL
    • Графические драйвера ( включая драйвер принтеров)

    До Windows NT4.0 оконный менеджер и графическая подсистема были вынесены в режим пользователя. В силу слабых ПК от этого решения отказались.

    Как все эти внутренности работают? Как это все увидеть с точки зрения программиста?

    Инструменты

    Инструменты – множество программ для исследования внутреннего устройства Windows и понимания принципа их работы.

    Существуют утилиты, которые помогают разобраться в система Windows:

    • Дополнения от MS
    • Утилиты Sysinternals(MS) –автор Марк Россинович
    • Сторонних разработчиков Opensource, аналоги Taskmanager

    Посмотрим какие есть утилиты.

    можно скачать целый набор программ, который позволяет заглянуть во внутреннее устройство Windows, посмотреть что и как там сделано, что скрыто для пользовательской части. Эти программы в основном затрагивают мониторинг того, как работает ОС.

    Windows представляет собой операционную систему с гибридным ядром (см. лекцию 1 "Введение в операционные системы"). В ней основные системные функции по управлению процессами, памятью, устройствами, файловой системой и безопасностью реализованы в компонентах, работающих в режиме ядра; но существует ряд важных системных компонентов пользовательского режима, например системные процессы входа в систему, локальной аутентификации, диспетчера сеансов, а также подсистемы окружения.

    Архитектура Windows представлена на рис.4.1 [5; 2].

    Архитектура Windows

    Компоненты пользовательского режима

    В пользовательском режиме работают следующие виды процессов:

    • системные процессы (system processes) – компоненты Windows, отвечающие за решение критически важных системных задач (т. е. аварийное завершение одного из этих процессов вызывает крах или нестабильную работу всей системы), но выполняемые в пользовательском режиме. Основные системные процессы:
      • Winlogon.exe – процесс входа в систему и выхода из неё;
      • Smss.exe (Session Manager – диспетчер сеансов) – процесс выполняет важные операции при инициализации системы (загрузка необходимых DLL, запуск процессов Winlogon и Csrss и др.), а затем контролирует работу Winlogon и Csrss;
      • Lsass.exe (Local Security Authentication Subsystem Server – сервер подсистемы локальной аутентификации) – процесс проверяет правильность введенных имени пользователя и пароля;
      • Wininit.exe – процесс инициализации системы (например, запускает процессы Lsass и Services);
      • Userinit.exe – процесс инициализации пользовательской среды (например, запускает системную оболочку – по умолчанию, Explorer.exe);
      • Services.exe (SCM, Service Control Manager – диспетчер управления службами) – процесс, отвечающий за выполнение служб – см. ниже;
      • собственно Windows – при помощи данной подсистемы выполняются 32 разрядные приложения Windows (Win32), а также 16 разрядные приложения Windows (Win16), приложения MS DOS и консольные приложения (Console). За подсистему Windows отвечает системный процесс Csrss.exe и драйвер режима ядра Win32k.sys;
      • POSIX (Portable Operating System Interface for UNIX – переносимый интерфейс операционных систем UNIX) – подсистема для UNIX-приложений. Начиная с Windows Server 2003 R2 компонент, реализующий эту подсистему, называется SUA (Subsystem for UNIX-based Applications). Компонент не устанавливается в Windows по умолчанию.

      Все перечисленные процессы пользовательского режима (кроме подсистемы POSIX 1 Подсистема POSIX использует библиотеку Psxdll.dll. ) для взаимодействия с модулями режима ядра используют библиотеки Windows DLL ( Dynamic Link Library – динамически подключаемая библиотека). Каждая DLL экспортирует набор Windows API функций, которые может вызывать процесс.

      Windows API ( Windows Application Programming Interface , WinAPI) – это способ взаимодействия процессов пользовательского режима с модулями режима ядра. WinAPI включает тысячи функций и хорошо документирован [10].

      Основные Windows DLL следующие:

      • Kernel32.dll – базовые функции, в том числе работа с процессами и потоками, управление памятью и вводом выводом;
      • Advapi32.dll – функции, в основном связанные с управлением безопасностью и доступом к реестру;
      • User32.dll – функции, отвечающие за управление окнами и их элементами в GUI приложениях (Graphical User Interface – графический интерфейс пользователя);
      • Gdi32.dll – функции графического пользовательского интерфейса (Graphics Device Interface, GDI), обеспечивающие рисование на дисплее и принтере графических примитивов и вывод текста.

      Библиотека Ntdll. dll экспортирует в большинстве своем недокументированные системные функции, реализованные, в основном, в Ntoskrnl.exe. Набор таких функций называется Native API ("родной" API ).

      Библиотеки Windows DLL преобразуют вызовы документированных WinAPI функций в вызовы функций Native API и переключают процессор на режим ядра.

      Компоненты режима ядра

      Диспетчер системных сервисов ( System Service Dispatcher ) работает в режиме ядра, перехватывает вызовы функций от Ntdll. dll , проверяет их параметры и вызывает соответствующие функции из Ntoskrnl.exe.

      Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT Operating System Kernel – ядро операционной системы NT) (по поводу использования термина " ядро " в Windows см. лекцию 1 "Введение в операционные системы").

      Исполнительная система ( Executive ) представляет собой совокупность компонентов (называемых диспетчерами – manager ), которые реализуют основные задачи операционной системы:

      • диспетчер процессов (process manager) – управление процессами и потоками (см. лекцию 6 "Процессы и потоки");
      • диспетчер памяти (memory manager) – управление виртуальной памятью и отображение её на физическую (см. лекцию 8 "Управление памятью");
      • монитор контроля безопасности (security reference monitor) – управление безопасностью (см. лекцию 9 "Безопасность");
      • диспетчер ввода вывода (I/O manager), диспетчер кэша (cache Manager), диспетчер Plug and Play (PnP Manager) – управление внешними устройствами и файловыми системами (см. лекцию 10 "Управление устройствами" и лекцию 11 "Файловая система NTFS");
      • диспетчер электропитания (power manager) – управление электропитанием и энергопотреблением;
      • диспетчер объектов (object manager), диспетчер конфигурации (configuration manager), механизм вызова локальных процедур (local procedure call) – управление служебными процедурами и структурами данных, которые необходимы остальным компонентам.

      Ядро ( Kernel ) содержит функции, обеспечивающие поддержку компонентам исполнительной системы и осуществляющие планирование потоков (см. лекцию 7 "Планирование потоков"), механизмы синхронизации, обработку прерываний.

      Компонент Windows USER и GDI отвечает за пользовательский графический интерфейс (окна, элементы управления в окнах – меню , кнопки и т. п., рисование), является частью подсистемы Windows и реализован в драйвере Win32k.sys.

      Взаимодействие диспетчера ввода вывода с устройствами обеспечивают драйверы (drivers) – программные модули, работающие в режиме ядра, обладающие максимально полной информацией о конкретном устройстве (драйверы подробнее рассматриваются в лекции 10 "Управление устройствами").

      Однако, и драйверы, и ядро не взаимодействуют с физическими устройствами напрямую – посредником между программными компонентами режима ядра и аппаратурой является HAL ( Hardware Abstraction Layer ) – уровень абстрагирования от оборудования, реализованный в Hal . dll . HAL позволяет скрыть от всех программных компонентов особенности аппаратной платформы (например, различия между материнскими платами), на которой установлена операционная система .

      Резюме

      В лекции представлена архитектура операционной системы Windows и описаны основные компоненты пользовательского режима и режима ядра.

      Егор

      Егор Морозов | 28 Июня, 2017 - 12:40

      Windows_Vista_Logo_Wallpaper_by_B_SignLayout.jpg

      В предыдущей статье мы рассмотрели все пользовательские версии Windows вплоть до Millennium — последней версии, построенной на монолитном ядре. В Microsoft отлично понимали, что тянуть дальше ядро десятилетней давности не имеет смысла, писать новое ядро с нуля — долго, и это может повлечь за собой потерю рынка (напомню, что в начале нулевых у Apple был бум как новых Mac, так и новых MacBook), поэтому было принято решение сделать пользовательскую версию Windows на ядре NT, которое уже не один год разрабатывалось для серверных систем.

      Windows NT 3 — OS/2 от Microsoft

      К моменту выхода Windows 3.0 отношения между IBM и Microsoft были напряженные — первые не могли написать операционную систему под свои ПК без помощи Microsoft, а те, после успеха Windows 3.0, не видели особого смысла помогать IBM писать OS/2. В итоге к 1993 году Microsoft окончательно разорвала отношения с IBM, и вместо общего API «впихнула» в OS/2 собственный, Win32, и назвала получившуюся систему Windows NT 3.

      NT_3.1.jpg

      Эта система внешне очень напоминала Windows 3, но вот внутри была абсолютно другой — новое ядро NT 3, поддержка новой на то момент файловой системы NTFS, поддержка графического API OpenGL — в общем, это была кардинально новая система. Для обычных пользователей она подходила слабо, ибо с DOS не дружила, а нужных программ под DOS тогда было много (почти все, вообще говоря). А вот на мощных машинах эта система пришлась очень кстати — ядро NT и файловая система NTFS творили чудеса, и позволяли заниматься обсчетом или же поднимать сетку.

      Windows NT 4 — Windows 95 для мощных ПК

      Очередная серверная ОС, имевшая интерфейс от Windows 95. Отличалась своей крайней нетребовательностью к ресурсам, но имела огромные проблемы с настройкой и удалением устройств, а так же из-за ошибок в кэше частенько удаляла все NTFS-разделы на IDE-дисках, и восстановить их было невозможно, ибо это была единственная система, которая могла работать с NTFS.

      Nt4_vmware.jpg

      Windows 2000 — Windows NT для обычных пользователей

      Предыдущие версии Windows NT были нацелены на серверный и высокопроизводительный сегменты, и в Windows 2000 Microsoft решила поэкспериментировать и выпустить пользовательскую систему на ядре NT 5, почти одновременно с этим для подстраховки выпустив ME на старом монолитном ядре.

      Внешне система напоминала Millennium, но внутри, разумеется, все было иначе — была поддержка NTFS 3.0, EFS (файловой системы, позволяющей шифровать данные), наконец-то появился рабочий DirectX, служба каталогов Active Directory и веб-сервер IIS 5.0. И, разумеется, все это требовало серьезных ресурсов, которых не имел рядовой ПК — к примеру, минимальная частота процессора должна быть 233 МГц, требовалось 64 МБ ОЗУ и 2 ГБ на жестком диске. А рекомендуемые системные требования ничуть не отличались от минимальных у Windows 10 сейчас — это 1 ГГц процессор, 1 ГБ ОЗУ и 20 ГБ на диске! Все это привело к тому, что в среде продвинутых пользователей Windows 2000 популярностью пользовалась (по сути ядро от Windows XP, но без всяких «свистелок», и есть поддержка двухядерных процессоров и до 3 ГБ ОЗУ), но достаточно много обычных пользователей вообще не знали о существовании такой системы и думали, что после 98 идет сразу XP.

      Windows XP — система, которая будет жить вечно

      Пожалуй это первая система, которая не нуждается в представлении и ее как минимум видели все пользователи интернета. Именно в ней Microsoft поняла, что большинству пользователей не особо важны возможности системы — им важно, чтобы она была user friendly. И XP это пользователям дала — помощник-скрепка (или собачка, или маг), красивый цветной GUI (вместо серых окошек), анимации, уведомления, постоянные подсказки — в общем, с системой мог разобраться даже достаточно далекий от ПК человек.

      А внутри это была та же Windows 2000 (даже минимальные системные требования особо не поменялись — теперь нужно даже меньше дискового пространства, всего 1.5 ГБ), хотя некоторые изменения были — теперь нормально работает восстановление системы (впервые появившееся в ME), появилось нормальное сглаживание шрифтов (ClearType), возможность быстрой смены пользователя, и, пожалуй, одна из самых важных функций, из-за которой некоторые пользователи продолжают пользоваться XP — это нормальная поддержка почти всех программ, написанных начиная с Windows 95. Так что если вы, сидя на 10ке, хотите без танцев с бубном поиграть в Fallout 2 или Civilization 2 — проще всего поставить через виртуальную машину Windows XP и наслаждаться классикой.

      Windows_xp_desktop.jpg

      Так же стоит отдельно упомянуть систему Windows XP x64 Professional — система отлично поддерживает многоядерность, ограничения в 4 ГБ ОЗУ нет, практически полностью неуязвима для вирусов (защитные механизмы от Vista, но вот вирусы обманываются на XP и не запускаются, а отдельно вирусы под нее не писали из-за малой распространенности). Игры шли так же, как и на Windows 7 x64, но система при чистом запуске «ела» всего 160 МБ ОЗУ! В общем, это была отличная система для тех, кому нужно было выжать максимальную производительность от ПК, не теряя при этом никаких возможностей. Увы — Microsoft окончили ее поддержку одновременно с х86 версией, так что DirectX 11 и других нужных API под нее нет, так что на данный момент ее ставить смысла нет.

      Windows Vista — самая неудачная система от Microsoft

      После оглушительного успеха Windows XP и достаточно резкого развития как процессоров, так и видеокарт, Microsoft решила сделать новое ядро NT 6 с огромным заделом на будущее — оно, к слову, эксплуатируется даже сейчас, в Windows 10: Microsoft назвали его NT 10, но по факту оно NT 6.4.

      Разумеется, в Vista появилась пользовательская х64 версия системы, система понимала и 6ядерные Phenom, могла работать и с сотней гигабайт ОЗУ — в общем, эту систему уже можно назвать относительно современной (если не брать игровое применение). Но вот на момент выхода в 2006 году у многих пользователей было, мягко сказать, недоумение: на их ПК с Celeron на 800 МГц и 512 МБ ОЗУ Windows XP, конечно, не летала, но работала достаточно шустро. А вот Vista на таком железе с трудом запускалась и ощутимо тормозила. Более того — если интерфейс XP вполне себе нормально работал на простеньких видеокартах типа Riva TNT, то в Vista добавили новый полупрозрачный интерфейс Aero, который мало того, что требовал поддержки DirectX 9, да и еще нормально работал лишь на игровых видеокартах. Все это привело к тому, что система съедала львиную долю ресурсов среднестатистического ПК тех лет, и многие, попробовав Vista, возвращались обратно на XP.

      windows-vista-desktop.jpg

      Так же системой были недовольны и профессиональные пользователи — да, на их Core 2 Duo с 2-3 ГБ ОЗУ и мощной видеокарточкой типа GT 6600 Vista работала быстро, но были проблемы с софтом: на Windows XP без проблем запускался весь зоопарк программ, написанных даже под Windows 95. На Windows Vista толком могли не работать программы и драйвера даже от Windows XP, ибо ядро NT 6 было действительно новым. В итоге на момент выхода системы не было такой прослойки пользователей, которым Vista действительно была нужна, поэтому систему можно считать неудачной.

      Но не будем только о плохом — в Vista впервые появилось многое, что мы используем постоянно. К примеру, это режим гибернации, мгновенный поиск по системе, UAC (система контроля учетных записей), поддержка файловой системы exFAT. Так же добавился Защитник Windows, шифрование диска Bitlocker, технология ReadyBoost (использование внешних USB-носителей для свапа), ну и разумеется Windows Shell — новый интерфейс Windows, который без особых серьезных изменений перекочевал и в Windows 7.

      В итоге к 2009 году, на момент выхода Windows 7, большинство пользователей продолжали сидеть на Windows XP. Да, за 3 года Vista более-менее привели в порядок, и под нее стали писать драйвера и софт, но все же проблемы с совместимостью были, и многих это отталкивало от установки Vista как основной системы. Ну а про современные ОС (Windows 7, 8, 8.1 и 10) мы поговорим в заключительной части цикла статей об истории Windows.

      Читайте также: