Какой тип ядра используется в windows xp

Алсу Старцева

«Какой тип ядра используется в Windows XP?»
Вроде бы в лекции об этом не рассказывалось, только про монолитное и микро ядро

Фаррух Холмухамедов

Да, вы правы, в лекции об этом не рассказывалось. Я интуитивно выбрал гибридное ядро и это оказался правильный ответ.

Sartor Resartus

Это не единственный такой случай на Хекслете, что, по-моему, абсолютно нормально, так как каждый будущий программист должен уметь (и хотеть!) гуглить.

Алсу Старцева

Ну… Нагуглить можно даже содержание всего курса :)

Vasiliy Usachev

Нагуглить содержание всего курсса дороже обойдётся по сравнению с просто посмотреть курс. :)

Используйте Хекслет по-максимуму!


  • Задавайте вопросы по уроку

  • Проверяйте знания в квизах

  • Проходите практику прямо в браузере

  • Отслеживайте свой прогресс

Зарегистрируйтесь или
войдите в свой аккаунт

Рекомендуемые программы

профессия


от 6 300 ₽ в месяц

Разработка фронтенд-компонентов для веб-приложений

профессия


от 5 025 ₽ в месяц

Сбор, анализ и интерпретация данных

профессия


от 6 300 ₽ в месяц

Разработка веб-приложений на Django

профессия


от 6 300 ₽ в месяц

Разработка приложений на языке Java

профессия


от 6 300 ₽ в месяц

Разработка веб-приложений на Laravel

профессия


от 6 183 ₽ в месяц

Ручное тестирование веб-приложений

профессия


от 6 300 ₽ в месяц

Разработка бэкенд-компонентов для веб-приложений

профессия


от 10 080 ₽ в месяц

Разработка фронтенд- и бэкенд-компонентов для веб-приложений

профессия


от 5 840 ₽ в месяц

Создание веб-приложений со скоростью света

Верстка с использованием последних стандартов CSS

Автоматизированное тестирование веб-приложений на JavaScript

в разработке

Старт
9 октября

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Логотип Windows® XP
Windows XP
Типичный вид рабочего стола Windows XP
Типичный вид рабочего стола Windows XP.
Разработчик Microsoft
Семейство ОС Windows NT
Исходный код Закрытый код
Последняя версия Service Pack 2 — 6 августа 2004
Тип ядра гибридное ядро
Интерфейс {{{default_ui}}}
Лицензия Microsoft EULA
Состояние актуальное
Веб-сайт www.microsoft.com/windowsxp

Windows XP (кодовое название при разработке — Whistler; внутренняя версия — Windows NT 5.1) — операционная система семейства Windows NT от компании Microsoft. Она была выпущена 25 октября 2001 года и является развитием Windows 2000 Professional. Название XP происходит от англ. experience (опыт, впечатление).

В отличие от предыдущей системы Windows 2000, которая поставлялась как в серверном, так и в клиентском вариантах, Windows XP является исключительно клиентской системой. Её серверным вариантом является выпущенная позже система Windows Server 2003. Windows XP и Windows Server 2003 построены на основе одного и того же ядра операционной системы, в результате их развитие и обновление идет более или менее параллельно.

Содержание

  • 1 Варианты
  • 2 Новшества по сравнению с Windows 2000
  • 3 Графический интерфейс пользователя
    • 3.1 Интерфейс командной строки (CLI)
  • 4 Системные требования операционной системы Windows XP
  • 5 Сервис-паки и поддержка
    • 5.1 Windows XP RTM
    • 5.2 Service Pack 1
    • 5.3 Service Pack 2
    • 5.4 Service Pack 3
  • 6 См. также
  • 7 Ссылки
  • 8 Примечания
  • 9 Литература

[править] Варианты

Windows XP выпускается во многих вариантах:

  • Windows XP Professional Edition была разработана для предприятий и предпринимателей и содержит такие функции, как удалённый доступ к рабочему столу компьютера, шифрование файлов (при помощи Encrypting File System), центральное управление правами доступа и поддержка многопроцессорных систем.
Windows XP cover boxes

Изображение:150px-WindowsXP Professionalbox.PNG Изображение:150px-WindowsXP Home version2002 box.PNG
Professional Home Edition
  • Windows XP Home Edition — система для домашнего применения. Выпускается как недорогая «урезанная» версия Professional Editon, но базируется на том же ядре и при помощи некоторых приёмов позволяет провести обновление до почти полноценной версии Professional Edition.
  • Windows XP Tablet PC Edition базируется на Professional Edition и содержит специальные приложения, оптимизированные для ввода данных стилусом на планшетных персональных компьютерах. Важнейшим свойством является превосходное понимание текстов, написанных от руки и адаптация графического интерфейса к поворотам дисплея. Эта версия продаётся только вместе с соответствующим компьютером.
  • Windows XP Media Center Edition базируется на Professional Edition и содержит специальные мультимедийные приложения. Компьютер, как правило, оснащён ТВ-картой и пультом дистанционного управления (ПДУ). Важнейшим свойством является возможность подключения к телевизору и управление компьютером через ПДУ благодаря упрощённой системе управления Windows. Эта система содержит также функции для приёма УКВ-радио.
  • Windows XP Embedded базируется на Professional Edition и предназначена для управления встроенной системой различных устройств: банкоматов, медицинских приборов, кассовых терминалов, игровых автоматов, VoIP-компонентов и т. п.
  • Windows XP Professional x64 Edition — специальная 64-разрядная версия, разработанная для процессоров с технологией AMD64 Opteron и Athlon 64 от фирмы AMD и процессоров с технологией EM64T от фирмы Intel. Эта система не поддерживает процессоры других производителей, а также не работает с процессором Intel Itanium. Хотя первые 64-разрядные процессоры появились в 2003 году, Windows XP Professional x64 Edition вышла в свет только в апреле 2005 года. Основным достоинством системы является быстрая работа с большими числами (Long Integer и Double Float). Таким образом, эта система очень эффективна, например, при выполнении вычислений, использующих числа с плавающей запятой, необходимых в таких областях, как создание спецэффектов для кинофильмов и трёхмерной анимации, а также разработка технических и научных приложений. Данная система поддерживает смешанный режим, то есть одновременную работу 32- и 64-разрядных приложений, однако для этого все драйверы должны быть в 64-разрядном исполнении. Это означает, что большинство 32-разрядных приложений могут работать и в этой системе. Исключение составляют лишь те приложения, которые сильно зависят от аппаратного обеспечения компьютера, например, антивирусы и дефрагментаторы.
  • Windows XP 64-bit Edition — это издание разрабатывалось специально для рабочих станций с архитектурой IA-64 и микропроцессорами Itanium. Это издание Windows XP более не развивается с 2005 года, после того, как HP прекратил разработку рабочих станций с микропроцессорами Itanium. Поддержка этой архитектуры осталась в серверных версиях операционной системы Windows.
  • Windows XP Home Edition N и Windows XP Professional Edition N — системы без Windows Media Player и других мультимедиа-приложений. Эти версии созданы под давлением Европейской Антимонопольной Комиссии. При желании пользователь может бесплатно загрузить все недостающие приложения с веб-сайта Microsoft.
  • Windows XP Starter Edition — сильно функционально ограниченная версия для развивающихся стран и финансово слабых регионов. В этой версии возможна одновременная работа только 3 приложений, и каждое приложение может создать не более 3 окон. В системе полностью отсутствуют сетевые функции, не поддерживается высокая разрешающая способность, а также не допускается использование более 256 мегабайт оперативной памяти или жёсткого диска объёмом более 80 гигабайт. Система может работать на процессорах уровня Intel Celeron или AMD Duron.

[править] Новшества по сравнению с Windows 2000

Некоторыми из наиболее заметных улучшений в Windows XP по сравнению с Windows 2000 являются:

  • Новое оформление графического интерфейса, включая более округлые формы и плавные цвета; а также дополнительные функциональные улучшения (такие, как возможность представления папки в виде слайд-шоу в проводнике Windows).
  • Возможность быстрого переключения пользователей, позволяющая временно прервать работу одного пользователя и выполнить вход в систему под именем другого пользователя, оставляя при этом приложения, запущенные первым пользователем, включёнными.
  • Функция «удалённый помощник», позволяющая опытным пользователям и техническому персоналу подключаться к компьютеру с системой Windows XP по сети для разрешения проблем. При этом помогающий пользователь может видеть содержимое экрана, вести беседу и (с позволения удалённого пользователя) брать управление в свои руки.
  • Программа восстановления системы, предназначенная для возвращения системы в определённое предшествующее состояние (эта функция является развитием аналогичной программы, включённой в Windows Me), а также улучшение других способов восстановления системы. Так, при загрузке последней удачной конфигурации загружается также и прежний набор драйверов, что позволяет в ряде случаев легко восстановить систему при проблемах, возникших в результате установки драйверов; возможность отката драйверов и т. д.
  • Улучшенная совместимость со старыми программами и играми. Специальный мастер совместимости позволяет эмулировать для отдельной программы поведение одной из предыдущих версий ОС (начиная с Windows 95).
  • Возможность удалённого доступа к рабочей станции благодаря включению в систему миниатюрного сервера терминалов (только в издании Professional).
  • Более развитые функции управления системой из командной строки.
  • Поддержка проводником Windows цифровых фотоформатов (например, представление папки в виде слайд-шоу) и аудиофайлов (автоматическое отображение метаданных для аудиофайлов, например, тегов ID3 для MP3-файлов).
  • Windows XP включает технологии, разработанные фирмой Roxio, которые позволяют производить прямую запись CD из проводника, не устанавливая дополнительное ПО, а работа с перезаписываемыми компакт-дисками становится подобной работе с дискетами или жёсткими дисками. Также в Media Player включена возможность производить запись аудио-дисков. Возможности работы с образами дисков не предусмотрена.
  • Windows XP может работать с архивами ZIP без установки дополнительного ПО. Работа с архивами данного типа возможна в проводнике как с обычными папками, которые можно создавать и удалять, заходить в архив, добавлять/удалять файлы подобно работе с обычными папками. Также возможна установка пароля на архив. При необходимости можно назначить для работы с этими архивами любое стороннее программное обеспечение.
  • Улучшения в подсистеме EFS, заключающиеся в необязательности агента восстановления, более безопасного сохранения ключей. Шифруемые файлы теперь не просто удаляются, а перезаписываются нулями, что гораздо надёжнее. Начиная с SP1 становится возможным использовать (он и используется по умолчанию) алгоритм AES, наряду с DESX и 3-DES.

[править] Графический интерфейс пользователя

Blue (Luna) — по умолчанию

  • Выделение в Windows Explorer осуществляется прозрачным синим треугольником.
  • Падающая тень от ярлычков на рабочем столе
  • Боковая ориентированная на выполнение задач вспомогательная панель в окне Windows Explorer («common tasks»).
  • Группирование кнопок одного приложения на панели задач в одну кнопку, при опредёленном количестве разных запущенных приложений, что позволяет часто избегать необходимости ее «прокрутки»
  • Появилась возможность заблокировать панель задач и вспомогательные панели, для избегания их случайного изменения.
  • Цветовое выделения элементов в меню «Пуск», принадлежащих недавно добавленным программам.
  • Меню отбрасывают тени (в Windows 2000 тень отбрасывал указатель мыши, но не элементы меню)
  • И другие…

Стартовое меню в новом виде при использовании темы Royale

Стартовое меню в новом виде при использовании темы Royale

Windows XP анализирует производительность системы с определёнными визуальными эффектами и в зависимости от этого активирует их или нет, учитывая возможное падение или рост производительности. Пользователи также могут изменять данные параметры, используя диалоговые окна настройки, при этом можно либо гибко выбрать активность тех или иных визуальных эффектов, либо отдать это на управление системе или же выбрать максимальную производительность или лучший вид графического интерфейса.[1] Некоторые эффекты, такие как альфа-смешение и т. п., требуют наличия производительной графической подсистемы, на старых видеокартах производительность может сильно упасть и Microsoft рекомендует отключить эти возможности в таком случае. [2] В Windows XP появилась возможность использовать «Visual Styles» позволяющие изменить графический интерфейс пользователя. Luna — новый стиль графического интерфейса, входящий в поставку XP и являющийся интерфейсом по умолчанию для ПК, имеющих более 64 мегабайт RAM. Возможно использовать и другие «Visual Styles», но они должны быть подписаны цифровой подписью Microsoft (так как имеют важное значения в функционировании системы). Для обхода этого ограничения некоторые пользователи используют специальное программное обеспечение, такое, как TGTSoft’s StyleXP или Stardock’s WindowBlinds, а иногда и измененную версию библиотеки uxtheme.dll.

Также существует стиль «классический», повторяющий стиль интерфейса Windows 2000 (который использует на 4 МБ меньше памяти, чем Luna), а также многочисленные стили, созданные сторонними разработчиками. Для версии Media Center Microsoft разработала «визуальный стиль» «Royale», который включён в эту версию Windows XP и доступен для установки в других версиях XP. [1]

Для Windows XP были созданы более 100 «иконок» компанией The Iconfactory, известной своим набором бесплатных «иконок» для операционной системы Mac OS X [3]

[править] Интерфейс командной строки (CLI)

Windows XP также имеет интерфейс командной строки (CLI, «консоль»), cmd.exe, для управления системой командами из консоли или запуска сценариев, называемых «командными файлами» (с расширениями cmd). Синтаксис Windows XP CLI не очень хорошо задокументирован во встроенной системе помощи. Более подробную общую информацию можно получить, набрав в командной строке «help» для получения общих сведений о доступных командах и «имя команды /?». Интерфейс командной строки доступен как в виде окна, так и в полноэкранном виде (переключение между ними осуществляется нажатием Alt+Enter), предпочитаемый вид можно указать в соответствующем диалоге настройки, наряду с такими параметрами, как размер и тип шрифтов и т. д. При работе в данном режиме пользователь может вызывать предыдущие команды (так, клавиша «вверх» возвращает предыдущую команду), использовать автозавершение имён файлов и каталогов, а также команд. Многие действия по управлению операционной системой можно выполнить, используя интерфейс CLI. Наиболее важными из них являются команды:

  • «net» с подкомандами, позволяющая управлять локальными пользователями и группами («net user /?» и «net localgroup /?»), аккаунтами, общим доступом к ресурсам на ПК («net share /?») и в сети («net view /?») и т. д.
  • Команды просмотра и управления процессами «tasklist /?» и «taskkill /?»
  • Команда управления разрешениями файлов » cacls /? «, позволяющая просматривать и изменять права доступа к файлам и папкам (в Home Edition — это единственная возможность гибко изменять права, так как соответствующий графический инструмент доступен только в безопасном режиме)
  • а также команды, оставшиеся еще из «командного языка» DOS, позволяющие копировать, перемещать и удалять файлы и каталоги и т. д.

[править] Системные требования операционной системы Windows XP

Логотип «Designed for Windows XP»

Логотип «Designed for Windows XP»

Системные требования операционных систем Windows XP Home и Professional editions следующие:[4]

В дополнение к этим требованиям, для установки Service Pack 2 необходимо наличие на жёстком диске не менее 1,8 ГБ свободного места во время установки.[5]

[править] Сервис-паки и поддержка

Microsoft предиодически выпускает пакеты обновлений (service packs) своих операционных систем, устраняющие выявленные проблемы и добавляющие новые возможности.

[править] Windows XP RTM

Поддержка Windows XP без установленных сервис-паков (RTM) закончилась 30 сентября 2004.[6]

[править] Service Pack 1

Service Pack 1 (SP1) для Windows XP был выпущен 9 сентября 2002 года. Наиболее важными новшествами стали поддержка USB 2.0, а также утилита, позволяющая выбирать программы по умолчанию для просмотра веб, почты, обмена мгновенными сообщениями, а также различные реализации виртуальной машины Java. Начиная с SP1 шифрующая файловая система EFS получила возможность использовать алгоритм шифрования AES с 256-битным ключом.

Начиная с SP1 поддерживается LBA-48, позволяющая операционной системе работать с HDD ёмкостью более 137 ГБ, активированная по умолчанию.

Поддержка Windows XP Service Pack 1 и 1a закончилась 10 октября 2006 года.[7]

[править] Service Pack 2

Service Pack 2 (SP2) (кодовое название «Springboard») был выпущен 6 августа 2004 года. SP2 добавил в Windows XP новые возможности, включая улучшенный файрволл; поддержку Wi-Fi с мастером настройки и Bluetooth, а также улучшения в IE6 — например, возможность блокировать «всплывающие» окна. Данный сервис-пак внес значительные изменения в безопасность Windows XP. Так, значительным изменениям подвергся встроенный файрволл, который был переименован в Windows Firewall и теперь активирован для всех создаваемых соединений по умолчанию. Появилась расширенная защита памяти, в частности, от атак переполнения буфера как с использованием технологии NX бит, так и рядом других приемов. Изменения коснулись и сервисов — такие сервисы, как telnet и служба сообщений, отключены по умолчанию, ряд сервисов запускаются с пониженными правами и т. д. Изменения в области безопасности затронули и почтовую программу Outlook Express и браузер IE. Windows XP Service Pack 2 включает в себя Windows Security Center, который позволяет облегчить наблюдение за безопасностью системы, следя и напоминая пользователю о необходимости установить или обновить антивирус и его базы, активировать встроенный или сторонний файрволл, произвести обновление операционной системы или изменить настройки веб-браузера. Сторонние антивирусы и файрволлы имеют возможность взаимодействовать с ним с помощью интерфейса API.

[править] Service Pack 3

Service Pack 3 для Windows XP в настоящее время находится в стадии разработки. В июле 2007 года на веб-сайте Microsoft появилась информация, что скорее всего выпуск SP3 произойдет в первой половине 2008 года. [8]. В настоящее же время компания не сообщает никакий официальных данных о том, какие возможности операционной системы будут в нём добавлены или изменены.

В начале августа 2007 года Microsoft начала бета-тестирование SP3[9], в ограниченной группе бета-тестеров. Несмотря на то что бета-версия была передана только избранным, её дистрибутив появился в пиринговых сетях[источник?].

[править] См. также

  • Пасхальные яйца в Windows XP
  • Bliss (фотография)
  • nLite

[править] Ссылки

  • Windows XP Home Page
  • Как загружается Windows XP
  • Сайт проверки легальности копии Windows XP

[править] Примечания

  1. Change Windows visual effects, Microsoft, Unknown.
  2. Computer Slows When You Click Multiple Icons in Windows XP, Microsoft, January 15 2006.
  3. Iconfactory, The Iconfactory Design: Windows Icon Design Проверено 2006-05-22 г. (Click on the Windows XP link on the left hand list for a pop-up with more details.)
  4. System requirements for Windows XP operating systems Проверено 2007-03-12 г.
  5. System Requirements for Windows XP Service Pack 2 Microsoft. Проверено 2007-08-19 г.
  6. «Lifecycle Supported Service Packs» Microsoft.
  7. End of support for Windows 98, Windows Me, и Windows XP Service Pack 1 Проверено 2006-06-27 г.
  8. Windows Service Pack Road Map Microsoft.
  9. http://winbeta.org/comments.php?id=9012&catid=1

[править] Литература

  • Вуди Леонард Microsoft Windows XP SP2 для «чайников». Полный справочник = Windows XP All-in-One Desk Reference For Dummies. — 2-е изд. — М.: «Диалектика», 2007. — С. 720. ISBN 0-7645-7463-9
  • Пол Мак-Федрис Microsoft Windows XP SP2. Полное руководство = Microsoft Windows XP Unleashed. — М.: «Вильямс», 2006. — С. 880. ISBN 0-672-32833-X

Windows XP (под кодовым названием Whistler) — это операционная система персонального компьютера, созданная Microsoft как часть семейства операционных систем Windows NT. Он был выпущен к производству 24 августа 2001 года и широко выпущен для розничной продажи 25 октября 2001 года.

Разработка Windows XP началась в конце 1990-х годов как «Нептун», операционная система, построенная на ядре Windows NT, предназначенная специально для использования в качестве основного потребителя. Обновленная версия Windows 2000 также была первоначально запланирована для рынка бизнеса; однако в январе 2000 года оба проекта были отложены в пользу одной ОС под кодовым названием «Уистлер», которая будет служить единой платформой ОС как для потребительских, так и для деловых рынков. Windows XP стала основным шагом вперед от MS Windows на основе ОС Windows в области безопасности, стабильности и эффективности благодаря использованию подсистемы Windows NT. Он представил значительно переработанный графический интерфейс пользователя и стал первой версией Windows для активации продукта, чтобы уменьшить его нарушение авторских прав.

После его выпуска Windows XP получила в целом положительные отзывы, а критики отметили повышенную производительность и общую стабильность (особенно по сравнению с Windows ME), более интуитивный пользовательский интерфейс, улучшенную аппаратную поддержку и расширенные мультимедийные возможности. Несмотря на некоторые первоначальные опасения по поводу новой модели лицензирования и системы активации продукта, Windows XP в конечном итоге оказалась популярной и широко используемой. По оценкам, по меньшей мере 400 миллионов копий Windows XP были проданы во всем мире в течение первых пяти лет ее доступности, и к апрелю 2014 года было продано не менее одного миллиарда копий. Продажи лицензий Windows XP для производителей оригинального оборудования (OEM-производителей) прекратились 30 июня 2008 года, но продолжались для нетбуков до октября 2010 года. 

Расширенная поддержка Windows XP завершилась 8 апреля 2014 года, после чего операционная система перестала получать дополнительную поддержку или обновления безопасности для большинства пользователей. По состоянию на январь 2018 года Windows XP занимает 3,36% всей доли рынка Windows, а это означает, что доля рынка настольной операционной системы составляет 2,8%. Другие оценки составляют 4,05%. Его доля на рынке больше не двузначных цифр в подавляющем большинстве стран. 

Развитие[]

«Нептун» и «Одиссея»[]

В конце 1990-х годов начальная разработка того, что станет Windows XP, было сосредоточено на двух отдельных продуктах; «Одиссея», которая, как сообщается, имела целью преуспеть в будущей Windows 2000 и «Нептуне», которая, как сообщается, была ориентированной на потребителя операционной системой, использующей архитектуру Windows NT, с последующей версией Windows 98 на базе MS-DOS. Основываясь на ядре NT 5.0 в Windows 2000, Neptune в основном сосредоточился на предоставлении упрощенного, основанного на задачах интерфейса на основе концепции, известной как «центры активности», изначально планируемой для внедрения в Windows 98. Планировалось множество центров активности, которые выступали в качестве концентраторов для электронной почты, воспроизведения музыки, управления или просмотра фотографий, поиска в Интернете и просмотра недавно использованного контента. Единственная сборка Neptune, 5111 (которая по-прежнему носила брендинг Windows 2000 в местах), показала раннюю работу над концепцией центра деятельности с обновленным интерфейсом учетной записи пользователя и графическим экраном входа в систему, а общие функции (например, недавно использованные программы) доступны из настраиваемых «Стартовых мест» (которая может использоваться как отдельное окно, так и замена рабочего стола на весь экран).

Однако проект оказался слишком амбициозным. Microsoft обсудила план задержки Neptune в пользу промежуточной ОС, известной как «Астероид», которая была бы обновлением для Windows 2000 (Windows NT 5.0) и имела бы ориентированную на потребителя версию. На конференции WinHEC 7 апреля 1999 года Стив Баллмер объявил обновленную версию Windows 98, известную под названием Windows Millennium, нарушив обещание, сделанное генеральным директором Microsoft Биллом Гейтсом в 1998 году, что Windows 98 станет конечной потребительской версией Windows для использования архитектуры MS-DOS. Концепции, введенные Neptune, повлияют на будущие продукты Windows; в Windows ME концепция центра активности была использована для Центра восстановления системы и Центра справки и поддержки (который комбинировал код Win32 с интерфейсом, созданным с использованием механизма компоновки Internet Explorer), концепция концентратора будет расширена на Windows Phone, а Windows 8 аналогичным образом будет использовать упрощенный пользовательский интерфейс, работающий поверх существующей оболочки Windows.

«Whistler»[]

220px-Code Name Whistler Beta 2 Microsoft

Начальный экран кодового имени Microsoft — бета-версия Whistler 2, сборка № 2462.

В январе 2000 года, незадолго до официального выпуска Windows 2000, автор технологии Пол Турротт сообщил, что Microsoft отложила и Нептун и Одиссею в пользу нового продукта под кодовым именем Уистлер, после Уистлера, Британская Колумбия, так как многие сотрудники Microsoft катались на лыжах на горнолыжном курорте Уистлер-Блэккомб. Целью Whistler было унифицировать как потребительские, так и ориентированные на бизнес линии Windows под одной платформой Windows NT: Thurrott заявила, что Нептун стал «черной дырой, когда все функции, которые были вырезаны, [Windows ME] были просто перемаркированы как функции Neptune. И так как Neptune и Odyssey были бы основаны на одной и той же кодовой базе, было бы целесообразно объединить их в один проект». В апреле 2000 года в WinHEC компания Microsoft официально анонсировала и представила раннюю версию Whistler, сосредоточившись на новой модульной архитектуре, встроенной записи компакт-дисков, быстрой коммутации пользователей и обновленных версиях цифровых медиа-функций, представленных ME. Генеральный менеджер Windows Карл Сторк заявил, что Whistler будет выпущен как в потребительских, так и в бизнес-версиях, построенных на той же архитектуре, и планировалось обновить интерфейс Windows, чтобы сделать его «более теплым и более дружественным».

В июне 2000 года Microsoft начала техническое бета-тестирование. Ожидалось, что Уистлер будет доступен в изданиях «Персональный», «Профессиональный», «Сервер», «Расширенный сервер» и «ЦОД». В PDC 13 июля 2000 года Microsoft объявила, что Whistler будет выпущена во второй половине 2001 года, а также выпустила первый сборник превью, 2250. В сборке была представлена ранняя версия новой системы визуальных стилей, а также временная тема, известная как «Профессионал» (позже переименованная в «Акварель»), и содержала скрытую «Стартовую страницу» (полноэкранная страница, похожая на «Начальные места» Нептуна) и скрытую раннюю версию двухстрочного меню «Пуск». В сборке 2257 были внесены дополнительные улучшения в тему «Акварель», а также официальное введение двухстолбцового меню «Пуск» и добавление ранней версии брандмауэра Windows.

Бета-версии[]

Microsoft выпустила Whistler Beta 1, build 2296, 31 октября 2000 года. В январе 2001 года в сборнике 2410 был представлен Internet Explorer 6.0 (ранее брендированный как 5.6) и система активации продукта Microsoft. Билл Гейтс посвятил часть своего выступления на выставке Consumer Electronics Show, чтобы обсудить Whistler, объяснив, что ОС принесет «надежную основу нашей корпоративной настольной системы высшего уровня и полной надежности для дома», а также «переместить его в сторону обеспечения его ориентации на потребителя. Сделать его очень удобным для домашнего пользователя». Наряду с Beta 1 было также объявлено, что Microsoft будет уделять приоритетное внимание выпуску ориентированных на потребителя версий Whistler над версиями, ориентированными на сервер, для того, чтобы измерить реакцию, но что они оба будут доступны в целом во второй половине 2001 года (Сервер Whistler в конечном счете будет отложен в 2003 году). В строках 2416 и 2419 был добавлен мастер настройки файлов и передачи и начал вводить элементы окончательного внешнего вида операционной системы (например, его почти финальный проект установки Windows и добавление новых обоев по умолчанию, таких как Bliss).

5 февраля 2001 года Microsoft официально объявила, что Уистлер будет известен как Windows XP, где XP означает «опыт». В качестве дополнения, следующая версия Microsoft Office также была объявлена как Office XP. Microsoft заявила, что имя «[символизирует] богатый и расширенный пользовательский интерфейс Windows и Office может предлагать, охватывая веб-службы, охватывающие широкий спектр устройств». На пресс-конференции в EMP Museum в Сиэтле 13 февраля 2001 года Microsoft публично представила новый пользовательский интерфейс Luna для Windows XP. Windows XP Beta 2, сборка 2462a (которая среди других улучшений ввела стиль Luna), была запущена в WinHEC 25 марта 2001 года.

В апреле 2001 года Microsoft неоднократно заявляла, что XP не будет интегрировать поддержку Bluetooth или USB 2.0 при запуске, требуя использования драйверов сторонних производителей. Критики считали, что в случае последнего решение Microsoft дало потенциальный удар по внедрению USB 2.0, поскольку XP должен был обеспечить поддержку конкурирующего, разработанного Apple, стандарта FireWire. Представитель заявил, что компания «[узнала] важность USB 2.0 как нового нового стандарта и оценивает лучший механизм для его доступности для пользователей Windows XP после первоначального выпуска». Сборки до и после Release Candidate 1 (сборка 2505, выпущенные 5 июля 2001 года) и Release Candidate 2 (сборка 2526, выпущенная 27 июля 2001 года) были сосредоточены на исправлении ошибок, подтверждении отзывов пользователей и других окончательных настроек до создания RTM.

Выпуск[]

В июне 2001 года Microsoft указала, что планирует совместно с Intel и другими производителями ПК потратить не менее 1 млрд. долл. США на маркетинг и продвижение Windows XP. Тема кампании «Да, вы можете» была разработана, чтобы подчеркнуть общие возможности платформы. Первоначально Microsoft планировала использовать лозунг «Подготовка к лету», но его заменили из-за проблем с чувствительностью после атак 11 сентября. Важным аспектом кампании Microsoft была телевизионная реклама США, в которой была представлена песня Мадонны «Луч света»; представитель Microsoft заявил, что песня выбрана из-за ее оптимистического тона и того, как она дополняет общую тему кампании.
24 августа 2001 года Windows XP build 2600 была выпущена для производства. Во время торжественного медиа-мероприятия в Microsoft Redmond Campus копии сборки RTM были предоставлены представителям нескольких крупных производителей ПК в портфелях, которые затем вылетели на украшенных вертолетах. В то время как производители ПК смогут выпускать устройства под управлением XP начиная с 24 сентября 2001 года, ожидается, что XP достигнет общей розничной доступности 25 октября 2001 года. В тот же день Microsoft также объявила о окончательном розничном ценообразовании двух основных выпусков XP «Home» и «Professional».

Новые и обновленные функции[]

Пользовательский интерфейс[]

RoyaleXP2-0

Обновленное меню «Пуск», теперь имеющее два столбца

Сохраняя некоторое сходство с предыдущими версиями, интерфейс Windows XP был переработан с новым визуальным внешним видом, с более широким использованием эффектов альфа-компоновки, теней отбрасывания и «визуальных стилей», которые полностью меняют внешний вид операционной системы. Количество задействованных эффектов определяется операционной системой на основе вычислительной мощности компьютера и может быть включено или отключено в каждом конкретном случае. XP также добавила ClearType, новую систему подпиксельного рендеринга, предназначенную для улучшения внешнего вида шрифтов на жидкокристаллических дисплеях. Был также введен новый набор системных значков. Обои по умолчанию «Блисс» — это фотография пейзажа в долине Напа за пределами Напы, штат Калифорния, с холмистыми зелеными холмами и голубым небом со слоисто-кучевыми облаками и перистыми облаками.

В меню «Пуск» была начата первая капитальная реконструкция XP, переход на двухколоночный макет с возможностью отображения, вывода и отображения часто используемых приложений, недавно открытых документов и традиционного каскадного меню «Все программы». Панель задач теперь может группировать окна, открытые одним приложением, в одну кнопку панели задач, со всплывающим меню, в котором перечислены отдельные окна. Область уведомлений по умолчанию также скрывает «неактивные» значки. Панель задач также может быть «заблокирована» для предотвращения случайного перемещения или других изменений. Добавлен список «обычных задач», а боковая панель Windows Explorer была обновлена, чтобы использовать новый проект на основе задач со списками общих действий; отображаемые задачи контекстуально относятся к типу содержимого в папке (то есть папка с музыкальными дисплеями предлагает воспроизводить все файлы в папке или записывать их на компакт-диск).

Windows XP task grouping (Luna)

Функция «группировка задач», представленная в Windows XP, показывающая как сгруппированные, так и отдельные элементы

Быстрая коммутация пользователей позволяет дополнительным пользователям регистрироваться на компьютере под управлением Windows XP без необходимости закрытия существующих программ и выхода из системы. Хотя только один пользователь в то время может использовать консоль (т. Е. Монитор, клавиатуру и мышь), предыдущие пользователи могут возобновить свою сессию, как только они восстановят контроль над консолью.

Инфраструктура[]

Windows XP использует prefetcher для повышения времени запуска и запуска приложений. Также стало возможным вернуться к установке обновленного драйвера устройства, если обновленный драйвер выдаст нежелательные результаты.

Также были внесены многочисленные улучшения в средства администрирования системы, такие как установщик Windows, хост Windows Script, дефрагментация диска, диспетчер задач Windows, групповая политика, CHKDSK, NTBackup, консоль управления Microsoft, теневое копирование, редактор реестра, Sysprep и WMI.

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

Сетевые и интернет-функции[]

Первоначально Windows XP поставлялась с Internet Explorer 6, Outlook Express 6, Windows Messenger и MSN Explorer. Также были добавлены новые сетевые функции, в том числе брандмауэр подключения к Интернету, интеграция общего доступа к Интернету с API UPnP, API обхода NAT, функции качества обслуживания, туннелирование IPv6 и Teredo, фоновая интеллектуальная служба передачи, расширенные функции факса, сетевое соединение, одноранговая сеть, поддержка большинства DSL-модемов, соединений IEEE 802.11 (Wi-Fi) с автоматической настройкой и роумингами, TAPI 3.1 и сетей через FireWire. Удаленный помощник и удаленный рабочий стол, которые позволяют пользователям подключаться к компьютеру под управлением Windows XP со всей сети или через Интернет и получать доступ к своим приложениям, файлам, принтерам и устройствам или запрашивать помощь. Также были улучшены функции IntelliMirror, такие как автономные файлы, профили пользователей и переадресация папки.

Другие особенности[]

  • DirectX 8.1 с возможностью обновления до DirectX 9.0c
  • Ряд новых функций в Проводнике Windows, включая панели задач, фрагменты и виды кинопленки, улучшенную сортировку и группировку, поиск по категориям документов, настраиваемые инфо-ролики, встроенную запись компакт-дисков, автозапуск, простой общий доступ к файлам и мини-перенаправитель WebDAV
  • Улучшенные функции обработки изображений, такие как Windows Picture и Fax Viewer, улучшенная обработка изображений и кэширование эскизов в Explorer
  • Ряд усовершенствований ядра и улучшения управления питанием
  • Более быстрый запуск (благодаря улучшенным функциям Prefetch), вход в систему, выход из системы, спящий режим и запуск приложений.
  • Многочисленные улучшения для повышения надежности системы, такие как улучшенное восстановление системы, автоматическое восстановление системы, отчеты об ошибках Windows и надежность драйверов
  • Улучшения аппаратной поддержки, такие как USB 2.0 (с пакетом обновления 1), FireWire 800, сборка изображений Windows, протокол передачи мультимедиа, DualView для мультимониторов и улучшения звука
  • Быстрая коммутация пользователей
  • Механизм рендеринга шрифтов ClearType, который предназначен для улучшения читаемости текста на жидкокристаллическом дисплее (LCD) и аналогичных мониторах, особенно ноутбуках.
  • Боковые сборочные узлы и бесконтактный COM
  • Улучшенные медиа-функции в среде исполнения Windows Media, Windows Media Player, Windows Movie Maker, технологии захвата и воспроизведения ТВ / видео, Windows Media Encoder и внедрение Windows Media Center
  • Общие улучшения международной поддержки, такие как больше мест, языков и скриптов, поддержка MUI в службах терминалов, улучшение IME и поддержка национальных языков, структура текстовых служб
  • Улучшенная совместимость приложений и прокладок по сравнению с Windows 2000
  • Обновленные аксессуары и игры
  • Встроенная поддержка ZIP-файлов (сжатые папки)

Удаленные функции[]

Некоторые из программ и функций, которые были частью предыдущих версий Windows, не попали в Windows XP. CD-плеер, DVD-плеер и Imaging для Windows заменены Windows Picture и Fax Viewer, Windows Media Player и оболочкой Windows. NetBEUI и NetDDE устарели и не установлены по умолчанию. Сетевые протоколы DLC и AppleTalk удаляются. Не поддерживаемые Plug-and-play устройства связи (например, модемы и сетевые интерфейсные карты) больше не поддерживаются.

Пакет обновления 2 и пакет обновления 3 также удаляют функции из Windows XP, но в меньшей степени. Например, Менеджер программ и поддержка полуоткрытых соединений TCP удаляются в Service Pack 2. Логотип Energy Star и адресная строка на панели задач удаляются в Service Pack 3.

Издания[]

Windows XP была выпущена в двух основных выпусках при запуске: Home Edition и Professional Edition. Оба издания были выпущены в розницу в виде предварительно загруженного программного обеспечения на новых компьютерах и в коробках. Коробные копии были проданы как лицензии «Upgrade» или «Full»; версии «Upgrade» были немного дешевле, но для установки требуется существующая версия Windows. Версия «Full» может быть установлена на системах без операционной системы или существующей версии Windows. Обе версии XP были нацелены на разные рынки: Home Edition явно предназначена для использования потребителями и отключает или удаляет некоторые продвинутые и ориентированные на предприятие функции, присутствующие в Professional, такие как возможность присоединиться к домену Windows, службам интернет-информации и многоязычному пользовательскому интерфейсу. Windows 98 или ME можно обновить до любой версии, но Windows NT 4.0 и Windows 2000 можно обновить только до Professional. Лицензионное соглашение на программное обеспечение Windows для предварительно загруженных лицензий позволяет «вернуть» ПО OEM для возврата, если пользователь не хочет его использовать. Несмотря на отказ некоторых производителей соблюдать право, в некоторых странах он применялся судами.

Системные требования[]

Системные требования операционных систем Windows XP Home и Professional Editions следующие:

125px-DesignedforWinXPlogo

Логотип Designed for Windows XP (Совместимо с Windows XP)

Минимальные (Офциально) Рекомендуемые
Процессор 233 МГц 300 МГц или выше
Оперативная память 64 МБ (могут быть ограничены некоторые возможности) 128 МБ или больше, до 4 ГБ (так как Windows XP не поддерживет PAE)
Видеоадаптер и монитор Super VGA (800×600)
Свободное место на жёстком диске 1,5 ГБ или больше
Оптические накопители CD-ROM CD-ROM или DVD-ROM
Устройства взаимодействия с пользователем Клавиатура Клавиатура и мышь
Другие устройства Звуковая карта, колонки и/или наушники

В дополнение к этим требованиям, для установки Service Pack 2 необходимо наличие на жёстком диске не менее 2 ГБ свободного места во время установки. А для SP 3 требуется уже 2,3 ГБ жёсткого диска при установке.

Пакеты обновлений и поддержка[]

Microsoft периодически выпускает пакеты обновлений (service packs) своих операционных систем, устраняющие выявленные проблемы и добавляющие новые возможности.

Windows XP Gold[]

Поддержка Windows XP без установленных пакетов обновлений закончилась 30 сентября 2004 года.

Пакет обновлений 1[]

Пакет обновлений 1 (SP1) для Windows XP был выпущен 9 сентября 2002 года. Наиболее важными новшествами стали поддержка USB 2.0, возможность выбирать программы по умолчанию для просмотра Интернета, почты, обмена мгновенными сообщениями, а также различные реализации виртуальной машины Java. Шифрующая файловая система EFS получила возможность использовать алгоритм шифрования AES с 256-битным ключом. По умолчанию включена поддержка LBA-48, позволяющая операционной системе работать с жёсткими дисками ёмкостью более 137 Гб.

Пакет обновлений 1a был выпущен 3 февраля 2003 года и удалял виртуальную машину Java из системы. Корпорация Майкрософт не рекомендовала пользователям, уже установившим пакет обновлений SP1, устанавливать пакет SP1а.

Поддержка Windows XP Service Pack 1 и 1a закончилась 10 октября 2006 года.

Пакет обновлений 2[]

Пакет обновлений 2 (Service Pack 2, SP2) (кодовое название Springboard) был выпущен 6 августа 2004 года. SP2 добавил в Windows XP новые возможности, включая улучшенный файрволл; поддержку Wi-Fi с мастером настройки и Bluetooth, а также улучшения в Internet Explorer 6 — например, возможность блокировать «всплывающие» окна. Данный сервис-пак внёс значительные изменения в безопасность Windows XP. Так, значительным изменениям подвергся встроенный файрволл, который был переименован в Брандмауэр Windows и теперь активирован для всех создаваемых соединений по умолчанию. Появилась расширенная защита памяти, в частности, от атак переполнения буфера как с использованием технологии «NX-бит», так и рядом других приемов. Изменения коснулись и сервисов — такие сервисы, как telnet и служба сообщений, отключены по умолчанию, ряд сервисов запускается с пониженными правами и т. д.. Изменения в области безопасности затронули и почтовую программу Outlook Express и браузер Internet Explorer. Windows XP Service Pack 2 включает в себя Центр обеспечения безопасности, который позволяет облегчить наблюдение за безопасностью системы, следя и напоминая пользователю о необходимости установить или обновить антивирус и его базы, активировать встроенный или сторонний файрволл, произвести обновление операционной системы или изменить настройки веб-браузера. Сторонние антивирусы и файрволлы имеют возможность взаимодействовать с ним с помощью интерфейса API. Также были улучшены функции автозапуска при вставке компакт-диска или подключении флеш-карт и подобных устройств.

При загрузке системы исчезли подзаголовки с названием редакции; полоса загрузки в редакциях Home и Embedded сменила зелёный и жёлтый цвета на синий цвет, как в редакции Professional.

Поддержка Windows XP Service Pack 2 закончилась 13 июля 2010 года.

Пакет обновлений 3[]

В начале августа 2007 года Microsoft начала бета-тестирование SP3 среди ограниченной группы бета-тестеров. Несмотря на то, что бета-версия была передана только избранным, её дистрибутив появился в пиринговых сетях. С 12 декабря 2007 года версия RC1 SP3 доступна для загрузки и тестирования всем желающим.

Окончательная версия Пакета обновлений 3 была представлена 21 апреля 2008 года, но только для бизнес-клиентов, таких как производители оригинального оборудования и подписчики MSDN и TechNet. Остальные пользователи смогли получить третий сервис-пак 6 мая.

Пакет может быть установлен только поверх пакета Service Pack 1 (SP1) или Service Pack 2 (SP2), и доступен только для 32-битной версии.

Включает в себя все обновления, выпущенные после выхода Windows XP Service Pack 2, а также ряд других новых элементов. Среди них функция защиты сетевого доступа (Network Access Protection) и новая модель активации, заимствованные у Windows Vista, кроме того, появилась улучшенная функция обнаружения так называемых маршрутизаторов-«чёрных дыр» и др.

С 1 июля 2008 года Microsoft прекратила продажи Windows XP SP2 своим поставщикам. До середины 2010 года Windows XP SP3 поставлялась в OEM и BOX поставках, для Windows Vista Business возможен бесплатный «даунгрейд», а также в продаже находится Get Genuine Kit Windows XP SP3, предназначенный для лицензирования установленного пиратского ПО, в рамках корпоративного лицензирования пакет Get Genuine Solution Windows XP.

Windows XP Service Pack 3 также распространяется как часть опционального компонента Windows 7 Windows XP Mode.

Неофициальный пакет обновлений[]

После завершения поддержки в 2014 году силами энтузиастов был создан «Service Pack 4» на основе POSReady — варианта для XP. Данная версия является неофициальной и нарушающей лицензионное соглашение, так как обновления изначально предназначены для другой версии Windows XP (POSReady).

Завершение поддержки[]

Поддержка Windows XP Service Pack 3 завершилась 8 апреля 2014 года, следом и поддержка сети. В этот же день Microsoft выпустила обновление для современной операционной системы — Windows 8.1 .

На момент прекращения официальной всеобщей поддержки (8 апреля 2014 года) Windows XP было 12,5 лет. Этот срок поддержки стал самым долгим за всю историю Windows, за отдельную плату он может быть продлён ещё на 5 лет.

24 сентября 2014 года компания Microsoft выпустила патч для ряда операционных систем, в их числе оказалась и Windows XP Embedded. В отношении версии для ПК было сделано заявление: «ещё есть пользователи, работающие на Windows XP, поддержка которой закончилась в апреле 2014 года, а также на пиратском ПО. Таким пользователям не доступны обновления системы безопасности и другие критичные обновления. Лучшим решением для них является миграция на современные лицензионные продукты Microsoft». Однако, Microsoft всё ещё продолжает выпускать обновления антивирусной защиты. Есть ещё патч в реестр, который дает возможность получать обновления для Windows XP до 2019 года, но эти обновления предназначены для Windows XP Embedded, и никто не гарантирует их полную совместимость с версией для ПК. Поддержка банкоматов на Windows XP ещё продлится до 2019 года.

Обновление, защищающее от WannaCry[]

13 мая 2017 года Microsoft, несмотря на окончание поддержки Windows XP в 2014 году, выпустила обновление KB4012598 для Windows XP SP3, которое предотвращает использование уязвимости EternalBlue, эксплуатируемой шифровальщиком WannaCry.

«Мы знаем, что некоторые из наших клиентов работают на версиях Windows, которые больше не поддерживаются. Это означает, что эти пользователи не получили обновление системы безопасности MS17-010, выпущенное в марте 2017 года. Учитывая потенциальное воздействие на клиентов и их бизнес, мы приняли решение сделать обновление безопасности для платформ Windows XP, Windows 8 и Windows Server 2003.»

Интересные факты[]

  1. 1 апреля 2017 года некоторые СМИ распространили сведения о возобновлении поддержки Windows XP. Данная информация не соответствует действительности и является первоапрельской шуткой. Официального заявления от Microsoft о возобновлении поддержки Windows XP не поступало.

Критика[]

Несмотря на некоторые преимущества перед Windows Vista и даже Windows 7 в быстродействии на устаревших компьютерах, за что её так ценят пользователи, Windows XP (SP1, SP2, SP3) имеет характерный недостаток: при установке системы пользователю предлагается создать для работы учётную запись с правами администратора, что приводит к потенциальной уязвимости системы к вирусам. Несмотря на то, что есть возможность использовать учётную запись с ограниченными правами, многие пользователи не используют данный подход по различным причинам (по незнанию или потому что некоторые программы отказывались стабильно работать без прав администратора). Есть возможность запускать наиболее уязвимые программы (например, браузер) с пониженными правами). В последующих версиях (Windows Vista и последующей доработкой в Windows 7 и старше) проблема уязвимости системы перед вирусными атаками была частично решена компонентом User Account Control, где система уже явно запрашивала повышение привилегий. Также заявления «о меньшей безопасности Windows XP» в настоящее время стали менее актуальны, чем на момент выхода Vista, в силу развития антивирусов и их эвристических способностей.

Единое ядро Windows

Windows – одна из наиболее многогранных и гибких ОС, она работает на совершенно разных архитектурах и доступна в разных вариантах. На сегодня она поддерживает архитектуры x86, x64, ARM и ARM64. Windows в своё время поддерживала Itanium, PowerPC, DEC Alpha и MIPS. Кроме того, Windows поддерживает целый набор SKU, работающих в различных условиях; от дата-центров, ноутбуков, Xbox и телефонов до встраиваемых версий для интернета вещей, например, в банкоматах.

Самый удивительный аспект состоит в том, что ядро Windows практически не меняется в зависимости от всех этих архитектур и SKU. Ядро динамически масштабируется в зависимости от архитектуры и процессора, на котором оно работает, так, чтобы пользоваться всеми возможностями оборудования. Конечно, в ядре присутствует определённое количество кода, связанного с конкретной архитектурой, однако его там минимальное количество, что позволяет Windows запускаться на разнообразных архитектурах.

В этой статье я расскажу об эволюции ключевых частей ядра Windows, которые позволяют ему прозрачно масштабироваться от чипа NVidia Tegra низкого потребления, работающего на Surface RT 2012 года, до гигантских монстров, работающих в дата-центрах Azure.

Менеджер задач Windows, работающий на пререлизной машине класса Windows DataCenter, с 896 ядрами, поддерживающими 1792 логических процессора и 2 Тб памяти

Эволюция единого ядра

Перед тем, как обсудить детали ядра Windows, сделаем небольшое отступление в сторону рефакторинга. Рефакторинг играет ключевую роль в увеличении случаев повторного использования компонентов ОС на различных SKU и платформах (к примеру, клиент, сервер и телефон). Базовая идея рефакторинга – позволить повторно использовать одни и тем же DLL на разных SKU, поддерживая небольшие модификации, сделанные специально под нужный SKU, не переименовывая DLL и не ломая работу приложений.

Базовая технология рефакторинга Windows – мало документированная технология под названием «наборы API». Наборы API – это механизм, позволяющий ОС разъединять DLL и место их применения. К примеру, набор API позволяет приложениям для win32 продолжать пользоваться kernel32.dll, притом, что реализация всех API прописана в другой DLL. Эти DLL с реализацией также могут отличаться у разных SKU. Посмотреть наборы API в деле можно, запустив обход зависимостей на традиционной Windows DLL, например, kernel32.dll.

Закончив это отступление по поводу строения Windows, позволяющего системе максимизировать повторное и совместное использование кода, перейдём к техническим глубинам запуска ядра по планировщику, являющегося ключом к масштабированию ОС.

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

Windows NT – это, по сути, микроядро, в том смысле, что у него есть своё core Kernel (KE) с ограниченным набором функций, использующее исполняемый уровень (Executive layer, Ex) для выполнения всех политик высокого уровня. EX всё ещё является режимом ядра, так что это не совсем микроядро. Ядро отвечает за диспетчеризацию потоков, синхронизацию между процессорами, обработку исключений аппаратного уровня и реализацию низкоуровневых функций, зависящих от железа. Слой EX содержит различные подсистемы, обеспечивающие набор функциональности, который обычно считается ядром – IO, Object Manager, Memory Manager, Process Subsystem, и т.д.

Чтобы лучше представить себе размер компонентов, вот примерное разбиение по количеству строк кода в нескольких ключевых каталогах дерева исходников ядра (включая комментарии). В таблицу не вошло ещё много всего, относящегося к ядру.

Подсистемы ядра Строк кода
Memory Manager 501, 000
Registry 211,000
Power 238,000
Executive 157,000
Security 135,000
Kernel 339,000
Process sub-system 116,000

Более подробная информация об архитектуре Windows содержится в серии книг “Windows Internals”.

Планировщик

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

Поток – это базовая единица, исполняющая программный код, и именно её работу планирует планировщик Windows. Решая, какой из потоков запустить, планировщик использует их приоритеты, и в теории, поток с наивысшим приоритетом должен запускаться на системе, даже если это означает, что потокам с более низким приоритетам времени не останется.

Проработав квантовое время (минимальное количество времени, которое может работать поток), поток испытывает уменьшение динамического приоритета, чтобы потоки с высоким приоритетом не могли работать вечно, душа всех остальных. Когда для работы пробуждается другой поток, ему повышают приоритет, рассчитанный на основе важности события, из-за которого произошло ожидание ( например, приоритет сильно повышается для находящегося на переднем плане интерфейса пользователя, и несильно – для завершения операций ввода/вывода). Поэтому поток работает с высоким приоритетом, пока он остаётся интерактивным. Когда он становится связанным преимущественно с вычислениями (CPU-bound), его приоритет падает, и к нему возвращаются уже после того, как другие потоки с высоким приоритетом получат своё процессорное время. Кроме того, ядро произвольным образом увеличивает приоритет готовых потоков, не получивших процессорного времени за определённый промежуток, чтобы предотвратить их вычислительное голодание и подправить инверсию приоритетов.

У планировщика Windows изначально была одна очередь готовности, из которой он выбирал следующий, наивысший по приоритету поток для запуска. Однако с началом поддержки всё большего количества процессоров, единственная очередь превратилась в узкое место, и примерно в районе выхода Windows Server 2003 планировщик поменял работу и организовал по одной очереди готовности на процессор. При переходе на поддержку нескольких запросов на один процессор единую глобальную блокировку, защищающую все очереди, делать не стали, и разрешили планировщику принимать решения на основе локальных оптимумов. Это означает, что в любой момент в системе работает один поток с наивысшим приоритетом, но не обязательно означает, что N самых приоритетных потоков в списке (где N – число процессоров) работают в системе. Такой подход оправдывал себя, пока Windows не начала переходить на CPU с низким энергопотреблением, например, на ноутбуки и планшеты. Когда на таких системах поток с наивысшим приоритетам не работал (например, поток переднего плана интерфейса пользователя), это приводило к заметным глюкам интерфейса. Поэтому в Windows 8.1 планировщик перевели на гибридную модель, с очередями для каждого процессора для потоков, связанных с этим процессором, и разделяемой очередью готовых процессов для всех процессоров. Это не сказалось на быстродействии заметным образом благодаря другим изменениям в архитектуре планировщика, например, рефакторингу блокировки базы данных диспетчера.

В Windows 7 ввели такую вещь, как динамический планировщик со справедливыми долями (Dynamic Fair Share Scheduler, DFSS); это в первую очередь касалось терминальных серверов. Эта особенность пыталась решить проблему, связанную с тем, что одна терминальная сессия с высокой загрузкой CPU могла повлиять на потоки в других терминальных сессиях. Поскольку планировщик не учитывал сессии и просто использовал приоритет для распределения потоков, пользователи в разных сессиях могли повлиять на работу пользователей в других сессиях, задушивая их потоки. Также это давало несправедливое преимущество сессиям (и пользователям) с большим количеством потоков, поскольку у сессии с большим количеством потоков было больше возможностей получить процессорное время. Была сделана попытка добавить в планировщик правило, по которому каждую сессию рассматривали на равных с другими по количеству процессорного времени. Подобная функциональность есть и в ОС Linux с их абсолютно честным планировщиком (Completely Fair Scheduler). В Windows 8 эту концепцию обобщили в виде группы планировщика и добавили в планировщик, в результате чего каждая сессия попадала в независимую группу. Кроме приоритетов для потоков, планировщик использует группы планировщика как индекс второго уровня, принимая решение по поводу того, какой поток запускать следующим. В терминальном сервере все группы планировщика имеют одинаковый вес, поэтому все сессии получают одинаковое количество процессорного времени вне зависимости от количества или приоритетов потоков внутри групп планировщика. Кроме того, такие группы также используют для более точного контроля над процессами. В Windows 8 рабочие объекты (Job) были дополнены так, чтобы поддерживать управление процессорным временем. При помощи специального API можно решать, какую часть процессорного времени может использовать процесс, должно это быть мягкое или жёсткое ограничение, и получать уведомления, когда процесс достигает этих ограничений. Это похоже на управление ресурсами в cgroups на Linux.

Начиная с Windows 7, в Windows Server появилась поддержка более 64 логических процессоров на одном компьютере. Чтобы добавить поддержку такому большому количеству процессоров, в системе ввели новую категорию, «процессорная группа». Группа – неизменный набор логических процессоров количеством не более 64 штук, которые рассматриваются планировщиком как вычислительная единица. Ядро при загрузке определяет, какой процессор к какой группе отнести, и у машин с количеством процессорных ядер менее 64 этот подход практически невозможно заметить. Один процесс может разделяться на несколько групп (например, экземпляр SQL-сервера), единственный поток в один момент времени может выполняться только в рамках одной группы.

Но на машинах, где число ядер CPU превышает 64, Windows начала демонстрировать новые узкие места, не дававшие таким требовательным приложениям, как SQL-сервер, масштабироваться линейно с ростом количества ядер процессора. Поэтому, даже при добавлении новых ядер и памяти, замеры скорости не показывали её существенного увеличения. Одной из главных проблем, связанных с этим, был спор по поводу блокировки базы диспетчера. Блокировка базы диспетчера защищала доступ к объектам, работу которых необходимо было запланировать. Среди этих объектов – потоки, таймеры, порты ввода/вывода, другие объекты ядра, подверженные ожиданию (события, семафоры, мьютексы). Под давлением необходимости разрешения таких проблем, в Windows 7 была проделана работа по устранению блокировки базы диспетчера и замене её на более точные подстройки, например, пообъектную блокировку. Это позволило таким замерам производительности, как SQL TPC-C, продемонстрировать рост скорости на 290% по сравнению с предыдущей схемой на некоторых конфигурациях. Это был один из крупнейших взлётов производительности в истории Windows, случившихся благодаря изменению единственной особенности.

Windows 10 принесло другую инновацию, внедрив наборы процессоров (CPU Sets). CPU Sets позволяют процессу разделять систему так, что процесс может распределиться на несколько групп процессоров, не позволяя другим процессам пользоваться ими. Ядро Windows даже не даёт прерываниям устройств пользоваться процессорами, входящими в ваш набор. Это гарантирует, что даже устройства не смогут исполнять свой код на процессорах, выданных группе вашего приложения. Это похоже на низкотехнологичную виртуальную машину. Понятно, что это мощная возможность, поэтому в неё встроено множество мер безопасности, чтобы разработчик приложения не допустил больших ошибок, работая с API. Функциональность наборов CPU используется в игровом режиме (Game Mode).

Наконец, мы приходим к поддержке ARM64, появившейся у Windows 10. Архитектура ARM поддерживает архитектуру big.LITTLE, гетерогенную по своей природе – «большое» ядро работает быстро и потребляет много энергии, а «малое» ядро работает медленно и потребляет меньше. Идея в том, что малозначительные задачи можно выполнять на малом ядре, экономя таким образом батарею. Для поддержки архитектуры big.LITTLE и увеличения времени работы от батареи при работе Windows 10 на ARM, в планировщик добавили поддержку гетерогенной планировки, учитывающую пожелания приложения, работающего с архитектурой big.LITTLE.

Под пожеланиями я имею в виду то, что Windows старается качественно обслуживать приложения, отслеживая потоки, выполняющиеся на переднем плане (или те, которым не хватает процессорного времени), и гарантируя их выполнение на «большом» ядре. Все фоновые задачи, сервисы, другие вспомогательные потоки выполняются на малых ядрах. Также в программе можно принудительно отметить маловажность потока, чтобы заставить его работать на малом ядре.

Работа от чужого имени [Work on Behalf]: в Windows довольно много работы на переднем плане осуществляется другими сервисами, работающими в фоне. К примеру, при поиске в Outlook сам поиск проводится фоновым сервисом Indexer. Если мы просто запустим все сервисы на малом ядре, пострадает качество и скорость работы приложений на переднем плане. Чтобы при таких сценариях работы она не замедлялась на архитектурах big.LITTLE, Windows отслеживает вызовы приложения, поступающие к другим процессам, чтобы выполнять работу от их имени. В таком случае мы выдаём приоритет переднего плана потоку, относящемуся к сервису, и заставляем его выполняться на большом ядре.

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

Какой тип ядра используется в Windows XP?

Структура операционной системы.

Архитектура операционных систем Windows XP и Windows Server 2003 является модульной. Структурно ее можно разделить на две части.
Первая часть работает в режиме ядра (kernel mode) и называется исполнительной системой Windows (Windows executive). Компоненты режима ядра обладают следующими функциональными возможностями:

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

Вторая часть работает в так называемом режиме пользователя (user mode) Эту часть составляют защищенные подсистемы ОС. Особенности процессов пользовательского режима:

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

Защищенные подсистемы — это серверные процессы пользовательского режима, создаваемые ОС во время загрузки. После создания они функционируют постоянно, обрабатывая сообщения от прикладных процессов и других подсистем.

В Windows два типа защищенных подсистем.

1. Подсистемы среды. Под такими подсистемами понимаются программы-серверы пользовательского режима, реализующие программный интерфейс некоторой операционной системы. Главнейшей подсистемой этого типа является Win32. К ее функциям относятся:

  • предоставление приложениям стандартного программного интерфейса к функциям ОС;
  • реализация графического пользовательского интерфейса;
  • управление пользовательским вводом/выводом.

К подсистемам среды относятся также подсистемы POSIX и OS/2.

2. Внутренние подсистемы. К этому типу относятся подсистемы, выполняющие важные функции ОС. Вот основные.

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

Исполнительная система и уровень абстрагирования от оборудования.

В состав исполнительной системы входят следующие элементы.

  • Справочный монитор защиты (Security Reference Monitor, SRM). Гарантирует выполнение политики защиты на локальном компьютере. Оберегает ресурсы ОС, обеспечивая защиту объектов и аудит доступа к ним.
  • Диспетчер процессов (Process Manager). Создает и завершает процессы и потоки. Кроме того, приостанавливает и возобновляет исполнение потоков, хранит и выдает информацию о процессах и потоках NT.
  • Диспетчер межпроцессного взаимодействия (Interprocess Communication Manager, IPC Manager). Обеспечивает взаимодействие между подсистемами режима пользователя и исполнительной подсистемы.
  • Диспетчер виртуальной памяти (Virtual memory manager, VMM). Реализует виртуальную память — схему управления памятью, которая предоставляет каждому процессу большое собственное адресное пространство и защищает это пространство от других процессов.
  • Ядро (Kernel). Реагирует на прерывания и исключения, выполняет межпроцессорную синхронизацию и предоставляет набор элементарных объектов и интерфейсов, используемый остальными частями исполнительной системы для реализации объектов более высокого уровня.
  • Подсистема ввода/вывода (I/O Subsystem). Состоит из группы компонентов, отвечающих за выполнение ввода/вывода на разнообразные устройства. Подробнее подсистема ввода/вывода рассматривается в следующих разделах.
  • Диспетчер объектов (Object manager). Создает, поддерживает и уничтожает объекты исполнительной системы Windows — абстрактные типы данных, представляющие системные ресурсы.
  • Диспетчер электропитания (Advanced Configuration and Power Interface Manager, ACPI-manager). Управляет электропитанием устройств, координирует запросы устройств, связанные с изменением режима электропитания.
  • Диспетчер Plug and Play (PnP-manager). Обеспечивает распознавание PnP-устройств после процесса загрузки ОС, управляет их драйверами, предоставляет интерфейс средствам пользовательского режима для поиска устройств, их установки и удаления, а также остановки и возобновления их работы.
  • Диспетчер окон и интерфейс графических устройств (Graphic Device Interface, GDI). Управляет отображением окон, обеспечивает прием ввода от клавиатуры и мыши, распределяя информацию приложениям.

Компоненты исполнительной системы реализованы как независимые от аппаратной платформы модули. Это обеспечивается наличием уровня абстрагирования от оборудования и делает ОС максимально переносимой.
Уровень абстрагирования от оборудования (Hardware Abstract Level, HAL). Представляет собой программную прослойку между исполнительной системой Windows и аппаратной платформой, на которой работает ОС. HAL скрывает аппаратно-зависимые детали, такие как интерфейсы ввода/вывода, контроллеры прерываний и механизмы межпроцессорных связей. Вместо того чтобы обращаться к аппаратуре непосредственно, исполнительная система Windows вызывает функции HAL.

Системный реестр Windows.

В операционной системе Windows практически вся конфигурационная информация (приложений, служб, параметров оборудования и т. п.) хранится в системном реестре (System Registry).
Эти компоненты реестра наглядно показаны на рисунке.

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

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

Реестр представляет собой иерархическую структуру, состоящую из поддеревьев, разделов, подразделов и параметров. Для просмотра и редактирования системного реестра Windows предусмотрены две специализированных программы — regedit и regedt32.

Использование реестра компонентами Windows.

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

Организация системного реестра.

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

Реестр Windows содержит два поддерева: HKEY_LOCAL_MACHINE (хранящее параметры настройки компьютера и общие параметры настройки ПО и ОС) и HKEY_CURRENT_USER (хранящее параметры настройки ПО и ОС текущего пользователя). Однако, чтобы облегчить поиск сведений в реестре, программы редактирования реестра выводят пять поддеревьев, которые перечислены ниже.

Поддерево реестра Описание
HKEY_LOCAL_MACHINE Содержит информацию о конфигурации оборудования компьютера, ОС и ПО. Параметры конфигурации ПО являются общими для всех пользователей компьютера
HKEY_CLASSES_ROOT Содержит информацию о конфигурации COM-компонентов и OLE-объектов. Является ссылкой на разделы HKEY_LOCAL_MACHINESOFTWAREClasses и HKEY_CURRENT_USERSOFTWAREClasses . Если какое-либо значение существует в обоих разделах, то значение из поддерева HKEY_CURRENT_USER перекрывает значение из поддерева HKEY_LOCAL_MACHINE
HKEY_CURRENT_USER Содержит информацию о конфигурации ОС и ПО для пользователя, работающего в системе в данный момент. Является ссылкой на раздел HKEY_USERS идентификатор_безопасности_пользователя
HKEY_USERS Содержит информацию о конфигурации ОС и ПО для пользователей, работающих в системе в данный момент, а также информацию о конфигурации для профиля пользователя по умолчанию
HKEY_CURRENT_CONFIG Содержит информацию о текущей аппаратной конфигурации компьютера. Является ссылкой на раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware ProfilesCurrent

Поведение поддерева HKEY_CLASSES_ROOT различается в Windows 2000 и более ранних версиях. В Windows 2000 поддерево HKEY_CLASSES_ROOT ссылается на раздел HKEY_CURRENT_USERSOFTWAREClasses конкретного пользователя, что позволяет пользователям иметь индивидуально зарегистрированные или настроенные COM-компоненты. Изменения, вносимые в это поддерево, будут фиксироваться в разделе реестра соответствующего пользователя. В предыдущих версиях Windows изменения вносились в раздел HKEY_LOCAL_MACHINESOFTWAREClasses, что позволяло одному пользователю системы изменять параметры компонентов, зарегистрированных другими пользователями.

Кусты и файлы реестра

Куст описывает древовидную структуру непрерывного связанного набора разделов, подразделов и параметров, выходящую из вершины иерархии реестра. Куст хранится на диске в виде отдельного файла и имеет отдельный журнал. Файлы реестра хранятся в папках %systemroot%system32Config (системная часть) и %userprofile% (пользовательская часть).
Каждый куст реестра представлен на диске в виде двух стандартных файлов, перечисленных в таблице.

Куст реестра

Файлы

Каждый раздел реестра содержит элементы данных, называемые параметрами. Некоторые параметры хранят сведения, характерные для отдельного пользователя, другие — применимые ко всем пользователям компьютера.

Каждый параметр имеет три характеристики:

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

Типы данных для параметров реестра, которые на данный момент поддерживает Windows XP, перечислены в таблице.

Тип данных

Описание

Данные в двоичном формате. Обычно этот тип используется для хранения больших объемов данных, например параметров оборудования

Целое число без знака. На хранение отводится 4 байта, чем определяется минимальное (0) и максимальное (4 294 967 296) хранимое значение. Обычно этот тип используется для хранения числовых величин и значений различных флагов

Строка с символами подстановки. Используется для хранения строковых значений, при считывании которых осуществляется преобразование символов подстановки. Например, при считывании значения %homedrive% Users and Settings%username% возвращается c:Documents and SettingsUser1

Набор из нескольких строковых значений. Используется для хранения списков строк. В качестве разделителя элементов списка используются символы возврата каретки или другие разделители

Строка символов. Используется для хранения различных простых неинтерпретируемых строковых значений

Набор массивов данных. Используется для хранения больших бинарных массивов данных. В основном используется для хранения различных параметров аппаратного обеспечения компьютера

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

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

Виртуальная память была изобретена в 1962 году, в Англии при создании суперкомпьютера Atlas. В большинстве современных компьютеров оперативная память не так велика, как используемое процессором адресное пространство. Размер ОЗУ типичного персонального компьютера варьируется от десятков до сотен мегабайт. При запуске программа загружается с какого-либо накопителя в оперативную память. Если же программа не помещается в ОЗУ, то те её части, которые в данный момент не выполняются, хранятся во вторичном запоминающем устройстве, чаще всего винчестере, и такая память называется виртуальной. Безусловно, перед выполнением необходимая часть программы должна быть перемещена в оперативную память. Данные функции выполняет ядро операционной системы (диспетчер виртуальной памяти, находящийся в микроядре). И для программы и для пользователя эти действия прозрачны. Естественно, на запросы к виртуальной памяти уходит гораздо большее время, нежели к ОЗУ.

Windows 2000/XP построены на архитектуре микроядра (microkernel architecture). ОС Windows 95/98 используют монолитное (monolithic) ядро. Микроядра являются сравнительно небольшими и модульными. Благодаря последнему новые устройства зачастую добавляются как модули, которые можно загружать/выгружать на этапе исполнения без перекомпиляции ядра. На архитектуре микроядра построены также FreeBSD и Mac OS X. Монолитные же ядра используются еще и в Linux. Они оптимизированы для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но требует перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать перекомпиляции.

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

Ядро UNIX/Linux имеет два вида исключений, которые обычно называют «oops» и «panic». Почти в каждой операционной системе паника происходит в тех случаях, когда ядро обнаруживает серьезную неисправность. Если система каким-либо образом повредила сама себя, ей требуется остановиться немедленно, пока она не произведет необратимых критических изменений (типа уничтожения файловой системы). Везде, где только возможно, UNIX/Linux пытается детектировать проблему и справиться с ней без остановки всей системы. Например, многие ситуации типа «oops» приводят к завершению процесса, который нормально запустился, но потом зациклил систему. Бывают, однако, ситуации, когда все настолько плохо, что полная паника является наилучшим выходом. Считается, что пользователи стабильных версий ядра не должны встречать ни «паник», ни «oops». Но в реальном мире они иногда происходят.

Недавно найденный «TF-баг» (смотрите здесь ) является хорошим примером паники. Процессор пытается передать управление процессу, которого не существует. Это приводит к краху всей системы. В данном случае, у системы нет другой альтернативы, чем запаниковать.

Ядро, поставляемое с Red Hat Linux 7.3 (и некоторыми другими дистрибутивами), содержит баг в файловой системе ext3. Эта ошибка приводит к «oops», завершая время от времени некоторые процессы (также этот баг приводит к замедлению всей системы). Хотя данная ошибка уже исправлена (патч есть и в обновлении от Red Hat), этот случай познакомил многих пользователей с ошибками типа «oops».

Микроядро (Microkernel) — компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и другие.

Слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования. Использование HAL позволяет обеспечить переносимость 99% кода системы между различным оборудованием.

Диспетчер Ввода/Вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Если драйвер написан с ошибками и может привести к сбою — это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев («синий экран») — есть результат некорректного поведения драйверов устройств.

Windows XP содержит встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи.

Модуль управления объектами (Object Manager), управления виртуальной памятью (Virtual Memory Manager), управления процессами (Process Manager), управления безопасностью (Security Reference Monitor), управления локальными вызовами (Local Procedure Calls Facilities) — важные компоненты ядра системы подробно рассматриваться не будут.

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

В Unix/Linux графическая система существует отдельно от ядра и функционирует как обычное приложение. В операционных системах Windows графическая система интегрирована в ядро. В случае использования операционной системы на рабочей станции, особенно при запуске графикоемких приложений, возможно, лучше, когда графическая система входит в ядро — в этом случае она может быстрее работать. А при работе на сервере предпочтительней отделение графической системы от ядра ОС, так как она загружает память и процессор. В случае Unix/Linux графическую систему можно просто отключить, к тому же, если системный администратор ее все-таки хочет использовать, в Linux есть несколько графических оболочек на выбор, некоторые из них (например, WindowMaker) достаточно слабо загружают машину. Эта же особенность Unix-образных операционных систем позволяет запускать эти ОС на машинах с весьма скромными объемами ОЗУ и т.п. В случае Windows же графическая система слишком тесно интегрирована в ОС, поэтому она должна запускаться даже на тех серверах, на которых она вовсе не нужна.

Отметим также методику разделения прав доступа в Windows 2000 и Unix/Linux. В первом — разделение прав доступа основано на ACL (access control lists), то есть, к примеру, можно настроить систему таким образом, чтобы администратор не имел возможности управлять файлами пользователей. У Unix/Linux же всегда есть суперпользователь — root, который имеет доступ абсолютно ко всему. То есть теоретически модель безопасности в Windows лучше: чтобы полностью завладеть хорошо настроенной системой Windows, хакеру придется ломать больше, в Unix/Linux же достаточно взломать доступ к root. (В Unix/Linux используются более старые технологии, тем не менее, некоторые дистрибутивы Linux сейчас начинают поддерживать ACL, среди них — ASPLinux 7.3 Server Edition). Но теория несколько смазывается практикой с той стороны, что в Windows не так быстро, как в Linux, заделываются «дыры», что уже относится к плюсам открытой модели разработки. В результате оказывается, что в Windows по статистике больше дыр, через которые злоумышленник может пробраться в систему. Но, опять же, точно о количестве дыр в Linux и Windows можно будет сказать только тогда, когда количество пользователей обоих видов ОС будет примерно одинаковым.

В Linux поддерживаются несколько файловых систем, наиболее продвинутые — это Ext2, Ext3, XFS. ОС Windows завязана по большому счету на одну файловую систему — NTFS или FAT 32. Файловые системы Ext2, Ext3, XFS по оценкам работают быстрее. Принципиальное же отличие в том, что в UNIX/Linux вообще нет понятия диска, физического или логического. Вся работа с устройствами хранения данных организуется через специальные файлы устройств, которые отображают физический носитель (диск, лента и т. п ) или его части (разделы) в файловую систему.

Важное отличие — наличие в Windows технологии ActiveX, нечто подобное в Unix/Linux реализуется с помощью CORBA и Bonobo. Эта технология, с одной стороны, предоставляет пользователю множество удобств, с другой стороны — она же допускала в свое время такие вещи, как автоматический запуск Outlook’ом вируса, пришедшего по почте. Одно из важных отличий этих технологий в том, что элементы ActiveX могут внедряться в текст HTML, что имеет как ряд достоинств, так и недостатков.

Можно перечислить еще ряд отличий Unix-подобных операционных систем от Windows, например, встроенную поддержку удаленного доступа в Unix и отсутствие оной в Windows по умолчанию (она реализуется в серверных версиях Windows, а также с помощью дополнительных средств, например, Citrix). В Unix/Linux и Windows сильно различаются сетевые подсистемы (IP-stack), по ряду оценок сетевая подсистема Unix/Linux эффективнее.

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

Ядро операционной системы

  • определениеядро операционной системы
  • архитектура и типы ядер операционной системы
  • ядро операционной системы WINDOWS

Ядро операционной системы определение

Ядро (kernel) это центральная и главная часть операционной системы которая обеспечивает архитектуру связи с приложениями, организует и регулирует доступ к ресурсам компьютера. Дополнительно, но не как правило предоставляет доступ к сетевым протоколам и к файловой системе. На картинке ниже я покажу как схематично работает ядро операционной системы и другие структуры внутри ОС

Посмотрите внимательно на эту схему, на ней видно что ядро операционной системы, взаимодействует с приложениями пользователя, будь то любое программное обеспечение (перечислять все возможные программы мы не будем), с утилитами и с системными обрабатывающими программами. Обратите внимание что из всех изображенных элементов только библиотеки процедур не взаимодействуют напрямую, а являются «переправой» для взаимодействия пользователя с ядром.

архитектура и типы ядер операционной системы

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

Монолитное ядро

монолитное ядро операционной системы представляет богатый выбор абстракций. все части или лучше сказать элементы находятся в одном адресном пространстве и представляют собой единый «Монолит». Все элементы которые были представлены выше на картинке спокойно взаимодействуют между собой и сообщаются. Это самое старое воплощение ядра в ОС.

Недостаток:

Обладает достаточно значимым минусом что при отказе работы одного элемента перестает работать всё ядро операционной системы и следовательно ОС.

Преимущества:

Из положительного момента — быстрая разработка и внедрение новых модулей а также скорость работы такого ядра. всё таки унификация всех элементов берет своё

Примеры ОС построенных на таких ядрах :LINUX, Unix, ms-dos

Модульное ядро

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

Микроядро

Микроядро работает по принципу всё что сложнее элементарных функций — выноситься за пределы его работы. Наибольшая часть работы выполняется с помощью сервисов или по другому пользовательских процессов.

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

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

Недостатки: увеличенное потребление ресурсов.

Из самых популярных операционных систем которое используют это
ядро операционной системы это MAC OS X.

Экзоядро

Экзоядро представляет всего лишь самые базовые функция взаимодействия между процессами, выгрузка и загрузка памяти и других ресурсов. То есть устроенно это ядро таким образом — ядро операционной системы не взаимодействует с программным обеспечением напрямую, а только через специальные библиотеки которые предоставляют API. Является оптимальным решениям для некоторого вида приложений которые должны очень быстро работать.

Ядро операционной системы WINDOWS

Вы спросите а к какому типу архитектуры тогда относиться операционная система windows?

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

Архитектура Windows XP и ее особенности

Общая характеристика

Windows XP — многопользовательская, многозадачная сетевая ОС с графическим интерфейсом. В ней использовано 3 варианта файловой системы (FAT 16, FAT 32, NTFS). При этом система FAT 16 к настоящему времени устарела, система FAT 32 более приемлема для носителей небольшого объема, NTFS — для больших носителей и хранения файлов большого размера.

С точки зрения архитектуры памяти Windows XP может иметь 32-разрядную или 64-разрядную архитектуру в зависимости от версии. С практической точки зрения это означает следующее. В 32-битных версиях Windows XP объем доступной оперативной памяти ограничен 4Гб. Если пользователь ПК с 32-битной ОС хочет увеличить оперативную память для увеличения быстродействия, то увеличивать стоит только до 4Гб, не более. В 64-битных версиях Windows XP объем доступной оперативной памяти логически ограничен 16Тб. Фактически Microsoft из экономических соображений ограничивает объемы памяти в несколько гигабайт. [7]

Также важен такой фактор, как совместимость программ. Большинство программ, созданных для 32-разрядных версий, будут работать и в 64-разрядных версиях. Исключениями являются драйверы и программы, в состав которых входят собственные драйверы (антивирусы, файерволы и т.д.): 32-х битный драйвер не может работать в 64-битной системе. Также в интернет-сообществе неоднократно замечались проблемы с игровыми программами для 32-битных версий в 64-битных версиях ОС. Программы, созданные для 64-разрядных версий, не работают в 32-разрядных. Также заметим, что 16-разрядные программы обычно без проблем запускаются при 32-разрядных версиях Windows XP, но запуск таких программ не поддерживается 64-разрядными версиями. Тем не менее, операционная система может распознать некоторые 16-битные инсталляторы и автоматически сконвертировать их в 32-битные.

Windows XP поддерживает многозадачность и многопоточность. Как и остальные версии Windows, это система с разделением времени, то есть для выполнения каждой задачи выделяется небольшой промежуток времени, и ни одна задача не занимает процессор надолго. В Windows XP реализована приоритетная (вытесняющая) многозадачность, когда каждая программа имеет свое защищенное адресное пространство, а механизм планирования процессов целиком сосредоточен в операционной системе [2]. Решение о переключении процессора с одного процесса на другой принимается операционной системой.

Если детально рассматривать подсистемы ОС и их взаимодействие, получим схему, приведённую на рис. 2.1.

Рис. 2.1. Структура Windows XP

Почти все современные процессоры позволяют установить режим работы приложения — Kernel (ядро) или User (пользователь). В режиме ядра приложению, кроме прочего, разрешено выделение памяти всем другим приложениям. Режим пользователя предоставляет меньше привилегий, нежели режим ядра, — в частности, он не обеспечивает прямой доступ к аппаратуре и чужим адресным пространствам. Для использования системных сервисов прикладные программы используют интерфейс прикладного программирования Windows — WINAPI.

В Windows XP реализовано правило: ни под каким видом не позволять прикладным программ работать в режиме ядра. [6] Как только приложение пытается обратиться в чужую область, ОС тут же выявляет ошибку доступа к памяти и прекращает работу приложения. К сожалению, при этом ОС не защищает приложение от самого себя. Если приложение случайно перезаписывает собственный блок памяти, то Windows XP, скорее всего, никак не отреагирует на это нарушение.

Рассмотренная система привилегий довольно «грубая». Так, в архитектуре популярного процессора Intel x86 определено 4 уровня привилегий («колец защиты»), приведенных на рис. 2.2. В этих терминах в Windows XP используются только кольцо 0 и кольцо 3. Компоненты, которые теоретически могли бы работать в режимах 1-2, работают в режимах 0 или 3 в зависимости от того, о каких драйверах идёт речь. На некоторых аппаратных платформах, ранее поддерживаемых, было реализовано лишь два уровня привилегий, а разработчики Windows XP стремились добиться совместимости с как можно большим числом ПК. [1]

Рис. 2.2. «Кольца защиты» в Intel x86

В режиме ядра работают следующие компоненты. [4]

  • 1. Уровень абстрагирования от оборудования (hardware abstraction layer, HAL). Его задачей является отделение операционной системы от особенностей конкретных реализаций в аппаратном обеспечении компьютера, то есть различий в модификациях процессоров, наборах микросхем и т.д. Реализован в системном файле Hal.dll.
  • 2. Ядро операционной системы — содержит наиболее часто вызываемые низкоуровневые функции операционной системы: планирование и распределение ресурсов между процессами, их переключение и синхронизацию. В обязанности ядра также входит управление прерываниями и обработка ошибочных ситуаций при функционировании ОС. Код ядра Windows XP находится в системном файле Ntoskrnl.exe.
  • 3. Драйверы устройств — представляют собой подпрограммы, транслирующие вызовы, поступившие от пользовательских программ, в запросы обработки данных для конкретных устройств. Значительное число драйверов входит в состав Windows XP (см. подкаталог drivers папки system32). Для нестандартных периферийных устройств драйверы находится в комплектах поставки. Очевидно, их было бы нерационально включать в состав ОС. Данный компонент характеризуется одной важной проблемой. Обычно драйверы пишут программисты из компаний-производителей оборудования, которые хуже знают ОС, чем ее создатели, и если драйверы работают в режиме ядра, то грубые ошибки в их программном коде могут привести к краху ОС.
  • 4. Исполняющая подсистема (NTExecutive). Модуль NTExecutive состоит из микроядра и подсистем диспетчеризации управления программами с доступом к виртуальной памяти, окнам и графической подсистеме. К исполняющей подсистеме относятся системные файлы Ntkrnlpa.exe, Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll.

Виртуальная память предоставляет пользовательским программам виртуальные адреса адресного пространства процессов и соответствующие физические страницы оперативной памяти компьютера. Виртуальная память реализуется с помощью файла подкачки pagefile.sys и позволяет одновременно выполняться большому количеству процессов, которые все сразу не смогли бы поместиться в физической памяти.

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

Микроядро отвечает за выделение памяти для приложений и распределение процессорного времени, то есть реализацию многозадачности. Для этого в состав микроядра входит планировщик потоков, который назначает потокам приоритеты. Всё процессорное время делится на кванты фиксированного размера. Каждый поток выполняется только в течение отведённого ему времени, и если после этого он не освобождает процессов, планировщик принудительно приостанавливает поток. Микроядро также выполняет работу, связанную с обработкой аппаратных и программных прерываний.

Модуль диспетчеризации управления программами состоит из следующих компонентов.

Диспетчер ввода-вывода — интегрирует добавляемые в систему драйверы устройств в ОС.

Диспетчер объектов — служит для управления всеми разделяемыми ресурсами компьютера. В момент обращения приложения к некоторому ресурсу диспетчер объектов сопоставляет этому ресурсу объект и выдает приложению дескриптор этого объекта (упрощённого говоря, идентификатор). Приложение взаимодействует с объектом на основе дескриптора.

Диспетчер процессов — предоставляет интерфейс, при помощи которого другие компоненты Windows NT Executive, а также приложения пользовательского режима могут манипулировать процессами и потоками. Во время работы диспетчер процессов сопоставляет каждому процессу и потому идентификатор процесса и идентификатор потока соответственно, а также таблицу адресов и таблицу дескрипторов.

Диспетчер виртуальной памяти — служит для управления организацией подсистемы памяти, позволяет создавать таблицы адресов для процессов и следует за корректностью использования адресного пространства приложениями. Кроме того, диспетчер виртуальной памяти обеспечивает возможность загрузки в оперативную память исполняемых файлов динамических библиотек. Он предоставляет физическую память для пользовательских приложений, выделяя каждому процессу виртуальное адресное пространство. Процессы обмениваются данными через разделяемую память, которая может быть спроецирована на виртуальное адресное пространство нескольких процессов. Главная задача диспетчера виртуальной памяти — организация логической памяти, размер которой больше размера физической, установленной на компьютере. Это достигается путём того, что страницы памяти, к которым долго не было обращений и которые не имеют атрибута неперемещаемых, сохраняются диспетчером в выше упомянутом файла pagefile.sys и удаляются из оперативной памяти. Когда такая страница снова понадобится, она копируется обратно в оперативную память.

Диспетчер кэша — используется для кэшированного чтения и записи и позволяет существенно ускорить работу жестких дисков и других устройств. Наиболее востребованные файлы дублируются диспетчером кэша в оперативной памяти, и при обращении к ним ведётся работа с этими копиями, а не оригиналами. Это даёт рост быстродействия, поскольку работа с оперативной памятью ведётся на порядок быстрее, чем с внешней. Кэш в Windows XP является единым для всех логических дисков, вне зависимости от используемой файловой системы. Диспетчер управляет размерами кэша в зависимости от доступного объёма свободной физической памяти.

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

Требования к процессору Windows

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

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

для ясности компания должна также отвечать всем процессорам и прочим требованиям, указанным в минимальных требованиях к оборудованию для Windows, расположенного по https://docs.microsoft.com/windows-hardware/design/minimum/minimum-hardware-requirements-overview адресу (или обновленному).

Если после включения серии процессоров в этой спецификации («перечисленный процессор») процессор станет коммерческим доступом, в котором используется то же соглашение об именовании или идентификатор, что и в списке процессоров, но есть дополнительные или другие функции или функции («новый процессор»), компания не должна использовать новый процессор для систем клиентов без предварительного письменного разрешения Майкрософт. Если компания считает, что в этом списке отсутствует процессор, обратитесь к корпоративному менеджеру Microsoft OEM или ОДМ Account Manager.

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

Некоторые выпуски продукта или конфигурации выпуска или процессора, перечисленные ниже, могут не поддерживаться или быть ограниченными. Сведения о поддержке доступны в разделе Служба поддержки Майкрософт политика и вопросы и ответы о жизненном цикле Майкрософт. Сведения о поддержке конкретных устройств см. на веб-узле поставщика вычислительных систем (OEM).

Windows Процессоры выпуска клиента

Выпуск для Windows Процессоры AMD Процессоры Intel Процессоры Qualcomm
Windows 7 и более ранних выпусков Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Недоступно
Windows 8.1 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 Корпоративная LTSB 1507 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 1511 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 1607 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 Корпоративная LTSB 1607 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 1703 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 1709 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 1803 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 1809 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 Корпоративная LTSC 1809 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Н/Д
Windows 10 1903 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 1909 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 2004 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 20H2 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 10 21H1 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm
Windows 11 Поддерживаемые процессоры AMD Поддерживаемые процессоры Intel Поддерживаемые процессоры Qualcomm

Windows Процессоры Интернета вещей Core

Выпуск для Windows Процессоры Intel Процессор Qualcomm Broadcom Процессоры НКСП
Windows 10 1703 До текущих включенных процессоров Intel Жауле, Atom, Celeron и Pentium [3] Вплоть до текущих включенных процессоров Qualcomm Снапдрагон [3] Вплоть до включенных в настоящее время процессоров Broadcom [3] Н/Д
Windows 10 1709 До текущих включенных процессоров Intel Жауле, Atom, Celeron и Pentium [3] Вплоть до текущих включенных процессоров Qualcomm Снапдрагон [3] Вплоть до включенных в настоящее время процессоров Broadcom [3] Н/Д
Windows 10 1803 До текущих включенных процессоров Intel Жауле, Atom, Celeron и Pentium [3] Вплоть до текущих включенных процессоров Qualcomm Снапдрагон [3] Вплоть до включенных в настоящее время процессоров Broadcom [3] Н/Д
Windows 10 IoT Базовая 1809 (SAC) Вплоть до текущих включенных процессоров Intel Atom, Celeron и Pentium [3] Вплоть до текущих включенных процессоров Qualcomm Снапдрагон [3] Вплоть до включенных в настоящее время процессоров Broadcom [3] Вплоть до текущего включенного НКСП i. мкспроцессорс [3]
Windows 10 IoT Базовая 1809 (LTSC) Вплоть до текущих включенных процессоров Intel Atom, Celeron и Pentium [3] Вплоть до текущих включенных процессоров Qualcomm Снапдрагон [3] Вплоть до включенных в настоящее время процессоров Broadcom [3] Вплоть до текущего включенного НКСП i. мкспроцессорс [3]

[3] сведения о том, какие процессоры включены в настоящее время, доступны по адресу

Windows 10 IoT Корпоративная

дополнительные сведения о Windows 10 IoT Корпоративная см. в описании обработчиков Windows клиентской версии .

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

Windows Процессоры сервера

Выпуск для Windows Процессоры Intel Процессоры AMD Процессоры хигон [6]
Windows Server 2012 R2 [4] Вплоть до следующих процессоров Intel 7 поколения (Intel Core i3-7xxx/Celeron/Pentium; Xeon E3 версии 6); Xeon SP 32xx, 42xx, 52xx, 62xx и 82xx; Xeon D 15xx; и Atom C33xx Вплоть до следующих процессоров поколения AMD 7 (серии & E-9xxx & FX-9xxx), семейства AMD РИЗЕН, AMD ЕПИК 7XX1, AMD ЕПИК 7XX2 и AMD ЕПИК 7xx3 Н/Д
Windows Server 2016 [5] До 9-го поколения процессоров Intel (Core i3-9xxx, Pentium G5xxx, Celeron G49xx); Xeon E22xx; Xeon SP 32xx, 43xx, 53xx, 63xx и 83xx; Xeon D 21xx; и Atom C33xx Вплоть до следующих процессоров поколения AMD 7 (серии & E-9xxx & FX-9xxx), семейства AMD РИЗЕН, AMD ЕПИК 7XX1, AMD ЕПИК 7XX2 и AMD ЕПИК 7xx3 Н/Д
Windows Server 2019 До 9-го поколения процессоров Intel (Core i3-9xxx, Pentium G5xxx, Celeron G49xx); Xeon E23xx; Xeon SP 32xx, 43xx, 53xx, 63xx и 83xx; Xeon D 21xx; и Atom C33xx Вплоть до следующих процессоров поколения AMD 7 (серии & E-9xxx & FX-9xxx), семейства AMD РИЗЕН, AMD ЕПИК 7XX1, AMD ЕПИК 7XX2 и AMD ЕПИК 7xx3 Хигон C86 7xxx
Windows Server 2022 До 9-го поколения процессоров Intel (Core i3-9xxx, Pentium G5xxx, Celeron G49xx); Xeon E23xx; Xeon SP 32xx, 43xx, 53xx, 63xx и 83xx; Xeon D 21xx; и Atom C33xx Вплоть до следующих процессоров поколения AMD 7 (серии & E-9xxx & FX-9xxx), семейства AMD РИЗЕН, AMD ЕПИК 7XX1, AMD ЕПИК 7XX2 и AMD ЕПИК 7xx3 Н/Д

[4] список процессоров для Windows Server 2012 R2 является окончательным. Новые системные отправки больше не принимаются для сертификации.

[5] список процессоров для Windows Server 2016 является окончательным. компания может отправить запрос на сертификацию (в программе Windows аппаратной совместимости), где работают Windows Server 2016 и выявленные процессоры до 31 декабря 2021; После такой даты новые серверные системы не будут сертифицированы для Windows Server 2016.

[6] только на рынке Китая

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

Windows – одна из наиболее многогранных и гибких ОС, она работает на совершенно разных архитектурах и доступна в разных вариантах. На сегодня она поддерживает архитектуры x86, x64, ARM и ARM64. Windows в своё время поддерживала Itanium, PowerPC, DEC Alpha и MIPS. Кроме того, Windows поддерживает целый набор SKU, работающих в различных условиях; от дата-центров, ноутбуков, Xbox и телефонов до встраиваемых версий для интернета вещей, например, в банкоматах.

Самый удивительный аспект состоит в том, что ядро Windows практически не меняется в зависимости от всех этих архитектур и SKU. Ядро динамически масштабируется в зависимости от архитектуры и процессора, на котором оно работает, так, чтобы пользоваться всеми возможностями оборудования. Конечно, в ядре присутствует определённое количество кода, связанного с конкретной архитектурой, однако его там минимальное количество, что позволяет Windows запускаться на разнообразных архитектурах.

В этой статье я расскажу об эволюции ключевых частей ядра Windows, которые позволяют ему прозрачно масштабироваться от чипа NVidia Tegra низкого потребления, работающего на Surface RT 2012 года, до гигантских монстров, работающих в дата-центрах Azure.

Менеджер задач Windows, работающий на пререлизной машине класса Windows DataCenter, с 896 ядрами, поддерживающими 1792 логических процессора и 2 Тб памяти

Эволюция единого ядра

Перед тем, как обсудить детали ядра Windows, сделаем небольшое отступление в сторону рефакторинга. Рефакторинг играет ключевую роль в увеличении случаев повторного использования компонентов ОС на различных SKU и платформах (к примеру, клиент, сервер и телефон). Базовая идея рефакторинга – позволить повторно использовать одни и тем же DLL на разных SKU, поддерживая небольшие модификации, сделанные специально под нужный SKU, не переименовывая DLL и не ломая работу приложений.

Базовая технология рефакторинга Windows – мало документированная технология под названием «наборы API». Наборы API – это механизм, позволяющий ОС разъединять DLL и место их применения. К примеру, набор API позволяет приложениям для win32 продолжать пользоваться kernel32.dll, притом, что реализация всех API прописана в другой DLL. Эти DLL с реализацией также могут отличаться у разных SKU. Посмотреть наборы API в деле можно, запустив обход зависимостей на традиционной Windows DLL, например, kernel32.dll.

Закончив это отступление по поводу строения Windows, позволяющего системе максимизировать повторное и совместное использование кода, перейдём к техническим глубинам запуска ядра по планировщику, являющегося ключом к масштабированию ОС.

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

Windows NT – это, по сути, микроядро, в том смысле, что у него есть своё core Kernel (KE) с ограниченным набором функций, использующее исполняемый уровень (Executive layer, Ex) для выполнения всех политик высокого уровня. EX всё ещё является режимом ядра, так что это не совсем микроядро. Ядро отвечает за диспетчеризацию потоков, синхронизацию между процессорами, обработку исключений аппаратного уровня и реализацию низкоуровневых функций, зависящих от железа. Слой EX содержит различные подсистемы, обеспечивающие набор функциональности, который обычно считается ядром – IO, Object Manager, Memory Manager, Process Subsystem, и т.д.

Чтобы лучше представить себе размер компонентов, вот примерное разбиение по количеству строк кода в нескольких ключевых каталогах дерева исходников ядра (включая комментарии). В таблицу не вошло ещё много всего, относящегося к ядру.

Подсистемы ядра Строк кода
Memory Manager 501, 000
Registry 211,000
Power 238,000
Executive 157,000
Security 135,000
Kernel 339,000
Process sub-system 116,000

Более подробная информация об архитектуре Windows содержится в серии книг “Windows Internals”.

Планировщик

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

Поток – это базовая единица, исполняющая программный код, и именно её работу планирует планировщик Windows. Решая, какой из потоков запустить, планировщик использует их приоритеты, и в теории, поток с наивысшим приоритетом должен запускаться на системе, даже если это означает, что потокам с более низким приоритетам времени не останется.

Проработав квантовое время (минимальное количество времени, которое может работать поток), поток испытывает уменьшение динамического приоритета, чтобы потоки с высоким приоритетом не могли работать вечно, душа всех остальных. Когда для работы пробуждается другой поток, ему повышают приоритет, рассчитанный на основе важности события, из-за которого произошло ожидание ( например, приоритет сильно повышается для находящегося на переднем плане интерфейса пользователя, и несильно – для завершения операций ввода/вывода). Поэтому поток работает с высоким приоритетом, пока он остаётся интерактивным. Когда он становится связанным преимущественно с вычислениями (CPU-bound), его приоритет падает, и к нему возвращаются уже после того, как другие потоки с высоким приоритетом получат своё процессорное время. Кроме того, ядро произвольным образом увеличивает приоритет готовых потоков, не получивших процессорного времени за определённый промежуток, чтобы предотвратить их вычислительное голодание и подправить инверсию приоритетов.

У планировщика Windows изначально была одна очередь готовности, из которой он выбирал следующий, наивысший по приоритету поток для запуска. Однако с началом поддержки всё большего количества процессоров, единственная очередь превратилась в узкое место, и примерно в районе выхода Windows Server 2003 планировщик поменял работу и организовал по одной очереди готовности на процессор. При переходе на поддержку нескольких запросов на один процессор единую глобальную блокировку, защищающую все очереди, делать не стали, и разрешили планировщику принимать решения на основе локальных оптимумов. Это означает, что в любой момент в системе работает один поток с наивысшим приоритетом, но не обязательно означает, что N самых приоритетных потоков в списке (где N – число процессоров) работают в системе. Такой подход оправдывал себя, пока Windows не начала переходить на CPU с низким энергопотреблением, например, на ноутбуки и планшеты. Когда на таких системах поток с наивысшим приоритетам не работал (например, поток переднего плана интерфейса пользователя), это приводило к заметным глюкам интерфейса. Поэтому в Windows 8.1 планировщик перевели на гибридную модель, с очередями для каждого процессора для потоков, связанных с этим процессором, и разделяемой очередью готовых процессов для всех процессоров. Это не сказалось на быстродействии заметным образом благодаря другим изменениям в архитектуре планировщика, например, рефакторингу блокировки базы данных диспетчера.

В Windows 7 ввели такую вещь, как динамический планировщик со справедливыми долями (Dynamic Fair Share Scheduler, DFSS); это в первую очередь касалось терминальных серверов. Эта особенность пыталась решить проблему, связанную с тем, что одна терминальная сессия с высокой загрузкой CPU могла повлиять на потоки в других терминальных сессиях. Поскольку планировщик не учитывал сессии и просто использовал приоритет для распределения потоков, пользователи в разных сессиях могли повлиять на работу пользователей в других сессиях, задушивая их потоки. Также это давало несправедливое преимущество сессиям (и пользователям) с большим количеством потоков, поскольку у сессии с большим количеством потоков было больше возможностей получить процессорное время. Была сделана попытка добавить в планировщик правило, по которому каждую сессию рассматривали на равных с другими по количеству процессорного времени. Подобная функциональность есть и в ОС Linux с их абсолютно честным планировщиком (Completely Fair Scheduler). В Windows 8 эту концепцию обобщили в виде группы планировщика и добавили в планировщик, в результате чего каждая сессия попадала в независимую группу. Кроме приоритетов для потоков, планировщик использует группы планировщика как индекс второго уровня, принимая решение по поводу того, какой поток запускать следующим. В терминальном сервере все группы планировщика имеют одинаковый вес, поэтому все сессии получают одинаковое количество процессорного времени вне зависимости от количества или приоритетов потоков внутри групп планировщика. Кроме того, такие группы также используют для более точного контроля над процессами. В Windows 8 рабочие объекты (Job) были дополнены так, чтобы поддерживать управление процессорным временем. При помощи специального API можно решать, какую часть процессорного времени может использовать процесс, должно это быть мягкое или жёсткое ограничение, и получать уведомления, когда процесс достигает этих ограничений. Это похоже на управление ресурсами в cgroups на Linux.

Начиная с Windows 7, в Windows Server появилась поддержка более 64 логических процессоров на одном компьютере. Чтобы добавить поддержку такому большому количеству процессоров, в системе ввели новую категорию, «процессорная группа». Группа – неизменный набор логических процессоров количеством не более 64 штук, которые рассматриваются планировщиком как вычислительная единица. Ядро при загрузке определяет, какой процессор к какой группе отнести, и у машин с количеством процессорных ядер менее 64 этот подход практически невозможно заметить. Один процесс может разделяться на несколько групп (например, экземпляр SQL-сервера), единственный поток в один момент времени может выполняться только в рамках одной группы.

Но на машинах, где число ядер CPU превышает 64, Windows начала демонстрировать новые узкие места, не дававшие таким требовательным приложениям, как SQL-сервер, масштабироваться линейно с ростом количества ядер процессора. Поэтому, даже при добавлении новых ядер и памяти, замеры скорости не показывали её существенного увеличения. Одной из главных проблем, связанных с этим, был спор по поводу блокировки базы диспетчера. Блокировка базы диспетчера защищала доступ к объектам, работу которых необходимо было запланировать. Среди этих объектов – потоки, таймеры, порты ввода/вывода, другие объекты ядра, подверженные ожиданию (события, семафоры, мьютексы). Под давлением необходимости разрешения таких проблем, в Windows 7 была проделана работа по устранению блокировки базы диспетчера и замене её на более точные подстройки, например, пообъектную блокировку. Это позволило таким замерам производительности, как SQL TPC-C, продемонстрировать рост скорости на 290% по сравнению с предыдущей схемой на некоторых конфигурациях. Это был один из крупнейших взлётов производительности в истории Windows, случившихся благодаря изменению единственной особенности.

Windows 10 принесло другую инновацию, внедрив наборы процессоров (CPU Sets). CPU Sets позволяют процессу разделять систему так, что процесс может распределиться на несколько групп процессоров, не позволяя другим процессам пользоваться ими. Ядро Windows даже не даёт прерываниям устройств пользоваться процессорами, входящими в ваш набор. Это гарантирует, что даже устройства не смогут исполнять свой код на процессорах, выданных группе вашего приложения. Это похоже на низкотехнологичную виртуальную машину. Понятно, что это мощная возможность, поэтому в неё встроено множество мер безопасности, чтобы разработчик приложения не допустил больших ошибок, работая с API. Функциональность наборов CPU используется в игровом режиме (Game Mode).

Наконец, мы приходим к поддержке ARM64, появившейся у Windows 10. Архитектура ARM поддерживает архитектуру big.LITTLE, гетерогенную по своей природе – «большое» ядро работает быстро и потребляет много энергии, а «малое» ядро работает медленно и потребляет меньше. Идея в том, что малозначительные задачи можно выполнять на малом ядре, экономя таким образом батарею. Для поддержки архитектуры big.LITTLE и увеличения времени работы от батареи при работе Windows 10 на ARM, в планировщик добавили поддержку гетерогенной планировки, учитывающую пожелания приложения, работающего с архитектурой big.LITTLE.

Под пожеланиями я имею в виду то, что Windows старается качественно обслуживать приложения, отслеживая потоки, выполняющиеся на переднем плане (или те, которым не хватает процессорного времени), и гарантируя их выполнение на «большом» ядре. Все фоновые задачи, сервисы, другие вспомогательные потоки выполняются на малых ядрах. Также в программе можно принудительно отметить маловажность потока, чтобы заставить его работать на малом ядре.

Работа от чужого имени [Work on Behalf]: в Windows довольно много работы на переднем плане осуществляется другими сервисами, работающими в фоне. К примеру, при поиске в Outlook сам поиск проводится фоновым сервисом Indexer. Если мы просто запустим все сервисы на малом ядре, пострадает качество и скорость работы приложений на переднем плане. Чтобы при таких сценариях работы она не замедлялась на архитектурах big.LITTLE, Windows отслеживает вызовы приложения, поступающие к другим процессам, чтобы выполнять работу от их имени. В таком случае мы выдаём приоритет переднего плана потоку, относящемуся к сервису, и заставляем его выполняться на большом ядре.

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

Заглянуть в ядро: насколько сильна Windows

Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.

Чтобы выяснить, насколько хороша Windows на самом деле, нужно изучить ее ядро и понять, как оно устроено и что оно может. В данной статье мы сравниваем Windows с Linux и Mac OS X и выявляем сильные и слабые стороны этой операционной системы, имеющей так много пользователей и так мало поклонников.

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

Windows Debugger анализирует образ памяти и показывает причины сбоев — в нашем случае виноват драйвер режима ядра Файл NTOS — сердце ядра Windows, логически подразделяется на два слоя. Особенность состоит в том, что из соображений повышения производительности драйверы могут обращаться к оборудованию напрямую Ядро Linux отвечает за управление командами ввода-вывода, памятью и процессами. На самом низком уровне ядра находятся функции, управляющие прерыванием процессов Доступ к ядру Linux открыт каждому. На рисунке — фрагмент конфигурации ядра версии 2.6.19 Ядро системы Apple основано на двух источниках: в нем используются функции основанной на Unix подсистемы BSD наряду с частями микроядра Mach Со словом «Windows» связано много предубеждений и мифов. Например, бытует мнение, что работать в Windows крайне опасно, так как миллионы вирусов, гуляющих по Интернету, атакуют исключительно эту ОС. К тому же многие уверены, что детище Microsoft не отличается высокой производительностью: чем дольше вы пользуетесь этой системой, тем медленнее она работает. Что касается стабильности, то всем хорошо знаком пресловутый «синий экран». Это и неудивительно: Vista состоит из семидесяти миллионов строк кода — как тут не запутаться! Чтобы выяснить, справедливы ли все эти обвинения, необходимо заглянуть в самое ядро операционной системы и проверить, насколько оно отвечает трем критериям: безопасность, производительность и стабильность. А для сравнения возьмем ядра двух других систем — Linux и Mac OS X. Кроме того, мы подробно расскажем, какие методы используют Windows и ее конкуренты.

Контроль над системой

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

Чтобы обеспечить безопасность системы, ядро следит за всеми текущими процессами, определяя, какие программы и как долго могут пользоваться аппаратными ресурсами. Стабильность достигается за счет структурирования ресурсов. За этим стоят функции, к которым обращаются каждый день — например, отображение файловых систем на жестком диске. Высокая производительность важна при возникновении конфликтов доступа — например, когда две программы пытаются записать данные на жесткий диск одновременно. В этом случае ядро расставляет приоритеты и предоставляет доступ одной из программ, в то время как второй приходится ждать. Ниже мы подробно расскажем, как именно Windows справляется со всеми этими задачами.

Обзор типов ядер

Монолитное.

Одно большое ядро для всех задач — в этом заключается идея монолита. Такое ядро отвечает за управление памятью и процессами, за коммуникацию между процессами, а также предлагает функции для поддержки драйверов и оборудования. Именно к этой категории относятся Windows, Linux и Mac OS X.

Микро. Ошибка в ядре может вывести из строя всю операционную систему. Поэтому микроядро отличается предельно малыми размерами — чтобы свести ошибки и сбои к минимуму. Но поскольку ядро должно поддерживать широкий набор функций, оно подразделяется на несколько модулей, из которых только один работает в режиме ядра. Классическим примером является Mach — компонент Mac OS X. Так или иначе, до сих пор ни одна операционная система с микроядром не завоевала популярности среди домашних пользователей.

Гибрид.

Гибридное ядро представляет собой нечто среднее между монолитным и микроядром. Само ядро делается облегченным, а для дополнительных задач существуют динамические модули. В Linux и OS X тоже можно подгружать части ядра, но не в таких масштабах, чтобы отнести их ядра к гибридным.

Windows : работает на любом оборудовании

Начиная с NT, в архитектуре Windows выделяется два режима: пользовательский и привилегированный, или режим ядра. Это относится и к Vista.

В режиме пользователя работает практически все, что видит пользователь, то есть приложения вроде Word или Photoshop. В этом режиме программы не имеют прямого доступа к оборудованию или оперативной памяти. Таким образом, пользовательский режим надежно изолирован, а все обращения к глубинам системы направляются через специальные интерфейсы, такие как Win32 API с системными библиотеками DLL (Dynamic Link Libraries).

Такой режим ядра — фоновый и практически незаметен для пользователя. Все хорошо до тех пор, пока не возникнет какая-либо проблема — например, драйвер режима ядра (см. схему ядра Windows) не обрушит всю систему, и взору пользователя предстанет синий экран.

Центральное значение здесь имеет файл ntoskrnl.exe.

По аналогии с режимом ядра и пользовательским режимом его задачи также делятся на две группы — слой ядра и исполнительная система. Главная задача слоя ядра — планировать загрузку центрального процессора, то есть распределять процессорное время между отдельными программами. Исполнительная система отвечает за виртуальную память, процессы ввода-вывода и другие задачи.

Глубже всего в системе располагается уровень аппаратных абстракций (Hardware Abstraction Layer, HAL). Он предоставляет другим слоям ОС службы для работы со встроенным оборудованием. Так, слой ядра может распределять процессорное время между программами независимо от того, какой процессор используется в компьютере — двуядерный AMD или четырехъядерный Intel. Если бы не HAL, Microsoft пришлось бы разрабатывать отдельную Windows для каждого компьютера.

Средства для отладки Windows WINDBG Чтобы проанализировать состояние памяти при выдаче «синего экрана», вам понадобится программа-отладчик, такая как WinDbg. На странице загрузок Microsoft вы найдете также соответствующий файл символов. www.microsoft.com/whdc/DevTools/Debugging NotMyFault тестирует систему на прочность: эта программа провоцирует ошибки в Windows и пытается ее обрушить. Экспериментируйте осторожно! Process Explorer. Управление процессами — одна из главных задач операционных систем. Process Explorer показывает все текущие процессы, соответствующие дескрипторы и связи между процессами. http://download.sysinternals.com

Linux : подгружает модули при необходимости

Хотя ядро Linux (см. схему) основано на Unix, но сходства с Windows у него больше, чем можно подумать. Оно также располагается непосредственно над оборудованием и играет роль своеобразной прослойки между оборудованием и работающими программами. Стандартные задачи тоже сходны: как и в Windows, ядро сотрудничает с устройствами ввода-вывода и берет на себя управление памятью. Оно также управляет процессами, то есть решает, какая задача в данный момент имеет приоритет, и получает доступ к процессорному времени. Для этого на самых нижних уровнях ядра располагаются функции управления прерываниями (interrupts).

Запрос на прерывание посылает, к примеру, клавиатура, когда пользователь нажимает на любую клавишу. Этот запрос обрабатывается специальным системным механизмом — диспетчером. Он решает, насколько высока приоритетность прерывания и включает его в очередь текущих процессов. Как только появляется возможность выполнить прерывание, диспетчер приостанавливает протекающий процесс и сохраняет его статус. Только после этого прерывание, то есть введенная с клавиатуры команда, может быть реализовано.

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

В ядро Linux встроены интерфейсы системных и библиотечных вызовов, а также пользовательский интерфейс. При этом важную роль играет интерфейс системных вызовов: он отвечает за процессы в целом. Специальной командой процессы переключаются из пользовательского режима в режим ядра.

Mac OS X : сила двух ядер

Ядро Mac OS X сокращенно обозначается как XNU — X is Not Unix.

Эта аббревиатура соответствует действительности, потому что ядро операционной системы Apple скомбинировано из двух источников, и лишь его часть имеет отношение к Unix (см. рис.). Остальное компания взяла из проекта Mach — классического примера микроядра (см. рис.). При этом Mach используется только для передачи сообщений (message passing), то есть эффективной коммуникации между отдельными частями ядра. Помимо Mach XNU содержит код проекта FreeBSD, который основан на Unix. Эта часть отвечает за взаимодействие с пользователем, обработку сигналов и совместимость со стандартами POSIX.

Последнее гарантирует, что большинство программ для Unix будут функционировать и в Mac OS X.

Важным компонентом Mach является система ввода-вывода (I/O Kit).

Именно здесь заключается существенное отличие от Windows и Linux: I/O Kit представляет собой дополнительный слой абстракций между оборудованием и остальной системой.

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

Помимо служб ядра Mac OS X позволяет также использовать расширения ядра. Система загружает их динамически по мере необходимости. Часто в таких случаях говорят о гибридном ядре, однако эксперты относят ядро Mac OS X скорее к монолитным из-за особенностей его строения.

Процессы: цифровая подпись как средство защиты

Важной задачей ядра является управление процессами.

Под этим подразумевается не только расстановка приоритетов, но и обеспечение безопасности. В классическом варианте в Windows процессы запускаются и управляются через интерфейс Win32 API.

В ядре этим занимается исполнительная система NTOS.

Доступ к объектам ядра, относящимся к про цессу обеспечивают так называемые дескрипторы (handles). Процессы в Windows могут запускать новые процессы. Так, Word (процесс 1) может открыть новый документ (процесс 2). В классической модели Windows Word имеет право также стереть или изменить новый документ. Иными словами, по общему правилу процесс может распоряжаться порожденными собою же процессами.

Однако в стандартных процессах есть одна лазейка, позволяющая обойти структуру доступа. Это возможно при наличии полномочий на отладку программ — в данном случае администратору предоставляется полный доступ к процессу. Так он может заглянуть в адресное пространство процесса, считать и изменять используемые в процессе данные. Злоумышленникам это дает возможность добавить в процесс новые потоки.

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

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

Защищенные процессы — показательный пример того, как Microsoft приспосабливает устаревшую архитектуру Windows к современным проблемам.

В Linux и Mac OS X процессная модель сходна с моделью Windows: процессы-«родители» контролируют порожденных ими «детей». Однако защищенных процессов, таких как в Vista, нет. Это неудивительно: Microsoft использует эту технологию в первую очередь для цифрового управления правами (Digital Rights Management).

Таким образом, при наличии администраторских (root) прав в Linux и Mac OS X можно делать все, даже анализировать процессы и манипулировать ими.

ASLR : «неуловимые» адреса

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

Например, NX-бит препятствует исполнению данных DEP (Data Execution Prevention).

При попытке выполнить код, который находится в участке памяти, помеченном «не для исполнения», возникает внутренняя ошибка. В Windows отключить DEP для 64-битных программ и драйверов нельзя, зато для 32-битных (все еще весьма распространенных) — без проблем. Это позволяет злоумышленникам вызвать переполнение буфера. В результате они могут инфицировать такие процессы, как Internet Explorer, и проникнуть внутрь системы. После того как вредитель закрепился в Windows, он может использовать Windows-API в своих интересах — например, для того, чтобы считать нужные ему данные или изменить конфигурацию системы.

Поэтому Microsoft ввела новую функцию защиты ядра — Address Space Load Randomization (ASLR, «рандомизация адресного пространства»). Частично она была реализована уже в SP2 для ХР, но полностью — только в Vista. Ее суть заключается в следующем. В Windows входными воротами для злоумышленников обычно являются библиотеки DLL, которые в предшествовавших версиях системы всегда загружались в одни и те же участки памяти. С ASLR системные DLL и исполняемые файлы при каждой загрузке системы попадают в разные участки оперативной памяти, чтобы вредоносное ПО больше не могло атаковать системные операции по стандартным адресам. Для этого менеджер памяти имеет в своем распоряжении 256 различных адресов и при загрузке DLL выбирает один из них случайным образом. Такая «плавающая» стратегия ASLR имеет дополнительное преимущество: адресное пространство упаковано плотнее, чем в более ранних версиях Windows, так что непрерывных свободных участков в памяти остается больше.

В специальных дистрибутивах Linux, таких как Hardened Gentoo, ASLR уже полностью реализована. В стандартном же ядре содержится лишь неполный вариант. В современном OS X Build ASLR используется для нескольких библиотек, но их полноценная реализация, к сожалению, отсутствует.

Проверка подлинности: надежный код

В качестве противоядия Microsoft использует в Vista подпись кода в режиме ядра (KMCS), которая разрешает загружать лишь те драйверы устройств, которые снабжены цифровой подписью. Большинство драйверов получают подписи через лабораторию WHQl (Windows Hardware Quality Lab), однако разработчики могут подписывать свой код сами — правда, для этого им нужен действительный сертификат. Windows проверяет также, имеет ли выданный сертификат отношение к одному из центров сертификации, данные о которых содержатся в загрузчике Windows и ядре ОС. Надо сказать, что 32-битные системы Vista хотя и проверяют цифровые подписи драйверов, все-таки позволяют загрузить неподписанные драйверы.

В 64-битных Windows такой номер не пройдет.

Все модули ядра в Mac OS X и Linux, в принципе, могут иметь цифровую подпись. Хотя теоретически это относится и к драйверам, никаких механизмов проверки в этих операционных системах не встроено.

MMCSS : приоритет видео

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

Чтобы такого не происходило, например, когда вы смотрите фильм, в Windows встроены специальные функции для мультимедийных файлов. Поэтому антивирусы и службы Windows в основном работают в фоновом режиме и не мешают просмотру.

В Vista приоритет фильмов и музыки обеспечивается службой планирования мультимедийных классов — MMCSS. Для этого мультимедийное приложение, такое как Media Player, сначала должно зарегистрироваться в этой службе. Данная служба, реализованная в файле %SystemRoot%System32Mmcss.dll, включает в себя поток для управления приоритетами. Windows предусматривает ступени приоритетности от 0 до 31, при этом MMCSS имеет очень высокую приоритетность — 27. Соответственно, приоритетность всех зарегистрированных мультимедийных потоков поднимается до 27. С 16-й ступени начинается режим реального времени, то есть потоку с приоритетом 16 остальные помешать уже не могут.

Linux предлагает еще более высокую градацию шкалы приоритетности — от 0 до 99. Для мультимедийных задач, например, на медиасерверах, такая разбивка подходит лучше. В Mac OS X планировщик является одним из используемых компонентов Mach.

Шкала приоритетности здесь еще мельче — от 0 до 127, и это не единственное подтверждение того, что Mach намного современнее, чем Linux и Windows. В OS X мультимедийное приложение может даже присвоить себе фиксированную долю вычислительного времени. При достаточной мощности это практически исключает риск образования узких мест.

Ввод-вывод: приоритетность задач

Высокая приоритетность при просмотре фильмов может негативно отразится на многозадачности. Так, до ХР в Windows существовали серьезные проблемы с фоновыми службами, например, автоматической дефрагментацией.

Конечно, это помогало поддерживать жесткий диск в порядке, но кому же понравится, когда, к примеру, Outlook выпадает из обоймы на два часа? Однако благодаря приоритетности ввода-вывода ждать больше не придется. Так, в Vista процессы «переднего плана» (не фоновые) всегда пользуются преимуществом, и дефрагментация приостановится до тех пор, пока пользователь не сделает в своей работе очередную паузу. Система ввода-вывода в Vista предполагает пять ступеней приоритетности — от «очень низкая» до «критически важная»; стандартный уровень — «нормальная». Фоновым задачам Windows автоматически присваивает низкую приоритетность, однако менеджер памяти всегда считается критически важным: действительно, когда оперативной памяти начинает не хватать, он должен незамедлительно сбросить данные на жесткий диск.

Команды ввода-вывода, посылаемые от драйверов устройств (такие как движение мыши), поступают в очередь со средней приоритетностью.

Еще одна ценная возможность заключается в том, что Vista может резервировать для операций ввода-вывода фиксированные диапазоны. Так, например, Media Player может потребовать от системы ввода-вывода гарантию, что фильм будет считываться с DVD в определенном темпе.

Тогда как в Vista приоритетность ввода-вывода — нововведение, в Mac OS X и Linux данный прием используется давно. В Mac OS X это заложено в архитектуре, так как для передачи сообщений используется Mach. В системах семейства Linux, начиная с ядра 2.6, тоже встроена эффективная схема приоритетов.

Адресное пространство: динамическое управление

32-битные процессоры накладывают на Windows и инсталлированные программы серьезные ограничения в отношении адресного пространства. Так, ядро Windows не может занимать больше 2 Гбайт. Когда нужно выделить место для драйверов, кеша файловой системы и стека, это может привести к определенным трудностям. Поэтому в Vista адресное пространство ядра динамическое. Оно занимается раздачей и разблокированием участков в зависимости от рабочих потребностей.

Операционные системы Linux и Mac OS X не имеют строгих ограничений. И в этих операционных системах общие размеры ядра имеют свой предел. В целом формат отдельных компонентов никак не ограничен. Действительно, в отличие от Windows в этих системах нет четкого разграничения между пространством ядра и пространством драйверов.

КТМ: предотвращение программных сбоев

Если приложение намерено предпринять ряд взаимосвязанных изменений, оно может создать либо дескриптор КТм («диспетчера транзакций ядра») и транзакцию DTC (Distributed Transaction Coordinator, «координатора распределенных транзакций»), либо просто дескриптор КТМ, и выполнять изменения файлов и ключей реестра в рамках этой транзакции. Если все прошло успешно, транзакция подтверждается — изменения приняты. До этого программа может в любой момент отменить весь процесс. Дополнительное преимущество заключается в том, что другие приложения видят эти изменения только после того, как транзакция принята.

Ядра Mac OS X и Linux тоже работают с транзакциями.

Пользователь, как правило, этого совсем не замечает, если не считать сбоев при установке обновлений. Впрочем, в обеих ОС это никак не подрывает стабильность системы, просто транзакции не будут исполнены.

Windows 7, 8, 9…

Не секрет, что Microsoft работает над новой архитектурой Windows. Прототипом операционной системы будущего (после Win7) должны стать два проекта.

Singularity обещает нам Windows без «синих экранов» и зависаний. Проект основан на трех ключевых функциях: программно-изолированные процессы (SIP), микроядро и каналы (channels).

Микроядро обеспечивает лишь неотъемлемые «ядерные» функции, такие как управление памятью, процессами и каналами, планировка процессорного времени и управление вводом-выводом. Все другие функции перекладываются на модули и реализуются изолированно друг от друга через SIP-процессы.

Проект Midori рассчитан на отдаленную перспективу. Его ядро будет иметь модульную структуру.

Преимущество заключается в том, что Windows будет лучше работать на различных платформах, таких как нетбуки, КПК или мобильные телефоны.

Вывод

Прошлые версии Windows на фоне Linux и Mac OS X смотрятся совсем неплохо. Хотя конкуренты несколько моложе, они во многом основаны на старых принципах Unix. Vista доказывает, что устаревшую архитектуру Windows можно компенсировать современными технологиями безопасности, такими как защищенные процессы или цифровые подписи кода для модулей ядра. Но, к сожалению, эти функции часто работают только в 64-битном мире, а в ХР они и вовсе отсутствуют. К тому же Linux и OS X не нуждаются в уловках вроде ASLR, поскольку они не так сильно подвержены атакам хакеров. Да и получить права администратора в Linux и Mac OS X сложнее, чем в Windows.

В Windows много застарелых проблем: например, даже в Vista дефектный драйвер все еще может обрушить всю систему. OS X выглядит несколько более современно: высокая производительность обеспечивается главным образом за счет использования компонентов Mach для коммуникаций внутри ядра, а также системы ввода-вывода I/O Kit.

В этом смысле Windows отстает, и компенсировать разрыв сумела только Vista. В пользу Linux говорит ее открытость: каждый может сконфигурировать ядро по своему усмотрению.

  • Какой размер папки windows в windows 10
  • Какой тип флешки нужен для установки windows
  • Какой сетевой драйвер нужен для windows 10 чтобы работал интернет
  • Какой размер кластера выбрать при форматировании флешки в fat32 для windows 10
  • Какой тип устойчивости выбрать для ssd в windows 10