Здесь представлен список компонентов Windows.
Компоненты
Описание
Появился в
Action Center
Просмотр уведомлений, отправленных из приложений, и изменение общих настроек.
Windows 10 Version 1507
Command Prompt
Text-based shell (command line interpreter) that provides a command line interface to the operating system
Windows NT 3.1
Windows PowerShell
Оболочка командной строки и среда сценариев.
Windows XP
Windows Shell
Самый заметный и узнаваемый компонент Microsoft Windows. Оболочка представляет собой контейнер, внутри которого находится весь graphical user interface включая панель задач, desktop, Windows Explorer, а так же другие dialog boxes и управление интерфейсом. В Windows Vista появился новый композитный пользовательский интерфейс под названием Windows Aero.
Windows 95
Проводник Windows
Предоставляет интерфейс для доступа к file systems, запуск приложений и выполнение общих задач, таких как просмотр и печать изображений
Windows 95
Windows Search
Начиная с Windows Vista, поиск является тесно интегрированным компонентом Windows. Загружаемое программное обеспечение Windows Desktop Search доступно для Windows XP и более ранних версий.
Windows Vista, downloadable for older versions
Search Folders
Виртуальные папки, извлекающие элементы на основе запросов, а не иерархических деревьев папок на диске.
Windows Vista
Special Folders
Folders which are presented to the user through an interface as an abstract concept, instead of an absolute path. This makes it possible for an application to locate where certain kinds of files can be found, regardless of what version or language of operating system is being used. See also Windows Shell namespace.
Windows 95
Start menu
Служит центральной точкой запуска приложений. Он предоставляет настраиваемый вложенный список приложений для запуска пользователем, а также список последних открытых документов, способ поиска файлов и получения справки, а также доступ к системным настройкам. По умолчанию кнопка «Пуск» всегда видна в левом нижнем углу экрана.
Windows 95
Taskbar
Панель рабочего стола приложения, которая используется для запуска и мониторинга приложений.
Windows 95
Task View
Быстро отображает все открытые окна и действия (через временную шкалу) и переключается между виртуальными рабочими столами, начиная с версии 2004, пользователи теперь могут переименовывать рабочие столы.
Windows 10 Version 1507
File associations
Используется для открытия файла в соответствующем приложении. Пользователи могут назначать ассоциации файлов уникальным образом для определенных действий, известных как глаголы.
Windows 1.0
Имя сервиса в списке
Ключевое имя
Описание
Появился в
Active Directory Service
NTDS
Управление сетевой аунтефикацей
Windows 2000 Server
Alerter service
Alerter
Отправляет административные предупреждения по сети на клиентские компьютеры, администраторам и пользователям.
Windows NT
Application Layer
Gateway service
ALG
Обеспечивает поддержку подключаемых модулей, которые позволяют сетевым протоколам проходить через брандмауэр Windows и работать за общим доступом к Интернету.
Windows 2000
Application Experience service
Обрабатывает запросы кэша совместимости приложений для приложений по мере их запуска.[1]
Application Management
AppMgmt
Обрабатывает запросы на перечисление, установку и удаление приложений, установленных на компьютере или развернутых в сети организации.
Windows 2000
Background Intelligent
Transfer Service
BITS
Передает файлы между машинами, используя свободную полосу пропускания сети. Используется Центром обновления Windows, Службами обновления Windows Server и Сервером управления системами для доставки обновлений программного обеспечения клиентам, а также Windows Messenger.
Windows XP
Computer Browser
Browser
Обходит соседние компьютеры в сети и находит общие ресурсы. Один из компьютеров действует как главный браузер и предоставляет эту информацию другим компьютерам, назначенным браузерами.[2]
Windows for Workgroups
Distributed Link Tracking
TrkWks, TrkSrv
Используется для отслеживания ссылок на файлы на томах NTFS. Windows использует эти службы для поиска связанных файлов, если они переименованы или перемещены (локально или на другой компьютер)..[3]
Windows 2000
Distributed Transaction
Coordinator
MSDTC
Позволяет настраивать транзакционные компоненты через COM+ путем координации транзакций, распределенных между несколькими компьютерами и/или диспетчерами ресурсов, такими как базы данных, очереди сообщений, файловые системы и другие диспетчеры ресурсов на основе транзакций.[4]
Windows 2000 and later NT-based
DNS Client
DNSCache
Разрешает и кэширует доменные имена (например, «en.wikipedia.org») в IP-адреса.
Windows 2000
Event Log
EventLog
Сохраняет и извлекает события, которые можно просмотреть в средстве просмотра событий. Часть services.exe.[5]
Windows NT
Extensible Authentication Protocol
EAPHost
Обеспечивает аутентификацию EAP для подключающихся клиентов
Windows 2000
Indexing Service
CISVC
Индексирует содержимое и свойства файлов на локальных и удаленных компьютерах; обеспечивает быстрый доступ к файлам с помощью гибкого языка запросов.[6]
Windows 2000 and later NT-based
Interactive Services Detection
UI0Detect
Для совместимости; когда обнаруживается пользовательский интерфейс, отображаемый службой, он дает пользователю возможность переключиться на Session0, чтобы увидеть его.
Windows Vista
Internet Connection Sharing (ICS)
SharedAccess
Когда он включен, он позволяет другим компьютерам в локальной сети получать доступ к интернет-соединению, доступному для главного компьютера.
Windows 2000;[7] Windows Vista onward[8]
Network Location Awareness
NLA
Управляет сетевыми конфигурациями и информацией и уведомляет приложения об изменениях.
Windows XP
Network Store Interface Service
NSIS
Собирает информацию о маршрутизации активных сетевых интерфейсов, делится ею с другими службами и уведомляет приложения об изменениях.
Windows XP
NTLM Security Support Provider
NTLMSSP
Использует NTLM MS-CHAP протокол для инкапсуляции и согласования параметров для обеспечения подписанной и запечатанной связи. Устарело в пользу проверки подлинности Kerberos.
Windows NT
Peer Name Resolution Protocol
PNRPSvc
Разрешает доменные имена с использованием протокола разрешения одноранговых имен.
Windows XP
Plug and Play
PlugPlay
Включает автоматическое определение и настройку оборудования.
Windows 2000
Print Spooler
Spooler
Управляет принтерами и перемещает файлы в память для печати.
Windows 95, Windows NT
Remote Procedure Call (RPC)
RpcSs
Обеспечивает Remote Procedure Call функции через удаленный доступ Named Pipes
Windows NT family
Routing and Remote Access Service
RRAS
API и серверное программное обеспечение, которое позволяет приложениям управлять возможностями маршрутизации и службы удаленного доступа операционной системы для работы в качестве сетевого маршрутизатора.
Windows 2000
Secondary Logon
SecLogon
Позволяет пользователям запускать программы с другой учетной записью, отличной от той, с которой они вошли в систему. Позволяет неадминистративным учетным записям выполнять административные задачи.[9]
Security Accounts Manager
SamSs
Управляет информацией о безопасности учетной записи пользователя
Windows NT family
System Event Notification Service
SENS
Отслеживает системные события, такие как сеть, питание, вход в систему, выход из системы, подключение и отключение сеанса служб терминалов, и передает их приложениям и другим системным компонентам.[10]
Windows 2000
Superfetch
SysMain
Отслеживает шаблоны использования файлов и повышает скорость работы системы за счет кэширования часто используемых файлов в ОЗУ.[11]
Windows Vista
Task Scheduler
Schedule
Позволяет пользователям настраивать и планировать автоматизированные задачи
Microsoft Plus! for Windows 95
TCP/IP NetBIOS Helper
LmHosts
Включает поддержку NetBIOS over TCP/IP (NetBT) обслуживание и NetBIOS разрешение имени
Windows NT family
Volume Shadow Copy
VSS
Создавайте несколько версий файлов, которые изменяются. Получена возможность хранить постоянные снимки в Windows Server 2003.[12]
Windows XP
Windows Audio
AudioSrv
Управляет аудиоустройствами для программ на базе Windows. Управляет всеми аудио функциями.
Windows XP
Windows Error Reporting
WERSvc
Создает журналы ошибок и сообщает об ошибках. В Windows Vista и более поздних версиях он уведомляет о решениях.
Windows XP
Windows Firewall
MpsSvc
Блокирует несанкционированные сетевые подключения к компьютеру и от него
Windows Vista
Windows Firewall/Internet Connection Sharing (ICS)
SharedAccess
Предоставляет простую функцию брандмауэра, представленную в Windows XP. Он также предоставляет общий доступ к Интернету в локальной сети, если включена функция общего доступа к Интернет-соединению.[13]
Windows XP only[14][15]
Windows Image Acquisition (WIA)
STISvc
Обрабатывает входы сканера и камеры
Windows ME
Windows Time
W32Time
Синхронизирует системное время с внешними серверами времени. Начиная с Windows Server 2003 предоставляется полная и соответствующая требованиям поддержка NTP.[16]
Windows 2000
Windows Update
WUAUServ
Предоставляет обновления для операционной системы и ее установленных компонентов.
Windows XP
Wireless Zero Configuration
WZCSvc (XP), WLANSvc
Настраивает и управляет беспроводными адаптерами 802.11.
Windows XP, Server 2003 only
Windows Messenger service
Messenger
Позволяет пользователям отправлять всплывающие сообщения на другие компьютеры по сети.
Windows NT family
WebClient[17]
Позволяет программам на базе Windows создавать файлы в Интернете и взаимодействовать с ними.
Windows XP
Windows 10 поставляется вместе с большим списком «компонентов», которые пользователь может включить или выключить в соответствующем диалоговом окне. Большое количество функций из этого списка создано специально для нужд и потребностей бизнес-пользователей и серверов, но вместе с этим часть компонентов может пригодиться и обычному пользователю.
Все компоненты Windows занимают место на вашем жестком диске, вне зависимости от того, включены они или нет. Иными словами, отключение отдельных компонентов не освободит место на диске компьютера. Кроме того, не стоит включать абсолютно все компоненты Windows, поскольку это негативно скажется на безопасности вашего компьютера, а также ухудшит его производительность. Стоит включать лишь те компоненты, которые вам действительно нужны или те, принцип работы которых вы понимаете. Это же касается и отключения. Бездумное выключение отдельных или всех компонентов системы может привести к нарушению работы приложений или ухудшению защищенности операционной системы.
Компоненты Windows 10
Управлять компонентами Windows можно только из классической панели управления. В Windows 10 Fall Creators Update Microsoft все еще не перенесла раздел с компонентами в новое приложение Параметры Windows. Интерфейс настройки компонентов Windows позволяет настроить виртуализацию Hyper-V, IIS-сервисы, подсистему Linux и так далее. Вы даже можете «отключить» Internet Explorer с помощью окна компонентов Windows 10. Конкретный набор доступных опций будет зависеть от того, какую редакцию Windows вы используете. В Windows 10 Профессиональная будет список побольше, а в Windows 10 Домашняя поменьше.
Где найти программы и компоненты Windows 10
Чтобы добраться до окна настройки компонентов Windows нажмите Win + R и введите optionalfeatures. Сразу же появится небольшое окошко со списком. Как вариант, вы можете ввести команду control, а затем перейти в раздел Программы – Включение или отключение компонентов Windows. Обратите внимание, что изменение компонентов Windows требует от вашей учетной записи наличия прав Администратора.
Посмотрите на список компонентов, и вы заметите, что определенные пункты обозначены черными квадратами, а не «птичками». Это означает, что компонент имеет «подкомпоненты» и не все из них активированы. Нажмите на плюсик, и система отобразит список доступных подкомпонентов.
Внесите нужные вам изменения и нажмите Ок. Скорее всего, Windows попросит перезагрузиться, чтобы изменения вступили в силу.
Обратите внимание, что управление компонентами Windows не требует от компьютера активного Интернет-соединения. Их можно включать и выключать в любой момент вне зависимости от того, есть ли Интернет или его нет. Все компоненты уже доступны в системе после установки, а окно настроек лишь включает или отключает их.
Какие компоненты Windows можно отключить
Здесь вы найдете объяснение нескольких компонентов Windows и то, для чего они нужны. Внимательно ознакомьтесь с ним и сами решите, какие из них нужны вашему компьютеру, а какие нет. Имейте ввиду, что отключение тех или иных компонентов может привести к тому, что часть приложений перестанет работать или будет работать с ошибками.
- .NET Framework 3.5 (включает .NET 2.0 и 3.0). Этот компонент должен быть включен, чтобы приложения, написанные с помощью .NET версий 3.0 и старше, работали должным образом. Зачастую Windows сама включает этот компонент, как только определенное приложение делает соответствующий запрос.
- .NET Framework 4.7 с дополнительными службами. Как и .NET 2.0 / 3.0, 4.7 включается автоматически при необходимости. Подробнее об этом вы можете почитать в статье «Что такое .NET Framework».
- Hyper-V. Это технологии виртуализации Microsoft. Они включают в себя сервисы, платформу и графический интерфейс Hyper-V Manager, который необходим для создания, управления и использования виртуальных машин. Этот компонент требует наличия физической поддержки технологий виртуализации процессором вашего компьютера. Он должен быть включен, если вы хотите пользоваться виртуальными машинами на своем компьютере. Если нет, можете его выключить.
- Internet Explorer 11. Старый-добрый «ослик». Если он вам не нужен, можете с чистой совестью отключить его. Подробнее этот процесс описан в статье «Как удалить Internet Explorer в Windows 10».
- Media Features. Этот компонент нужен для работы стандартного проигрывателя Windows Media Player. Отключите Media Features и из вашего компьютера исчезнет Windows Media Player, но при этом функции воспроизведения медиафайлов никак не пострадают.
- Microsoft Print to PDF. Хороший, годный и полезный инструмент, с помощью которого вы можете конвертировать любой документ в PDF-файл. Своего рода «виртуальный принтер», который печатает на цифровых PDF-файлах.
- Microsoft XPS Document Writer. XPS – новый формат документов, представленный с Windows Vista. Как и ОС, особой популярности он не снискал. Microsoft XPS Document Writer предоставляет системе необходимые библиотеки для создания документов формата XPS. Можно смело отключать, если вы никогда не слышали, а значит и не пользовались XPS-файлами.
- SNMP-протокол. Старый протокол для управления роутерами, свитчами и другим сетевым оборудованием. Нужен для тех, у кого рабочее оборудование использует этот протокол, что вполне очевидно. Отключен по умолчанию.
- Windows Identity Foundation 3.5. Очень старые .NET-приложения могут все еще могут требовать наличия этого компонента. .NET 4 включает в себя новую версию этого фреймворка. Как и в случае с .NET 3.5, WIF 3.5 активируется лишь тогда, когда определенное приложение потребует этого.
- Windows PowerShell 2.0. PowerShell – более продвинутая командная и скриптинговая среда, обладающая рядом значительных преимуществ по сравнению с классической командной строкой. PowerShell включена по умолчанию, но вы можете отключить ее, если вам так хочется. Ничего страшного не случится – вы просто не сможете больше пользоваться PowerShell.
- Клиент рабочих папок. С помощью этого компонента пользователи могут синхронизировать папки из корпоративной сети на компьютер.
- Служба активации Windows. Эта служба связана с IIS. Ее надо активировать лишь при запуске определенных серверных приложений. Если у вас таковых нет, то и трогать эту службу не надо. К активации самой операционной системы как продукта эта опция не имеет отношения.
- Клиент TFTP. Используется для передачи файлов на компьютеры и устройства с использованием протокола TFTP. Он старый и небезопасный, в основном используется на реально древних компьютерах.
- Подсистема Windows для Linux. Об этом подробно описано в статье «Как включить Linux в Windows 10».
- Компоненты прежних версий. DirectPlay. Этот компонент когда-то был частью DirectX и использовался в мультиплеере в определенных играх. Windows автоматически установит DirectPlay, если старая игра требует его.
- Поддержка API удаленного разностного сжатия. Быстрый алгоритм для сравнения синхронизированных файлов. Как и большое количество других компонентов, включается лишь по мере необходимости.
- Поддержка общего доступа к файлам SMB 1.0 / CIFS. За счет этой службы компьютер может делиться файлами и принтерами со старыми версиями Windows (от Windows XP / Windows Server 2003 R2 вплоть до Windows 10 NT 4.0). Протокол этот весьма старый и небезопасный, поэтому его можно отключить.
- Службы печати и документов. Клиент интернет-печати, а также факсы и сканирование Windows включены по умолчанию, но вы можете также включить печатные сетевые протоколы LPD и LPR. Надо сказать, что делать этого не стоит, поскольку протоколы уже устарели и требуются в очень редких случаях при подключении определенных сетевых принтеров.
- Соединитель MultiPoint. Этот компонент активирует мониторинг и управление устройством с помощью MultiPoint Manager. Полезен только в корпоративный сетях, где ИТ-специалисты используют соответствующие утилиты управления.
- Средство просмотра XPS. Собственно, приложение для открытия XPS-документов.
- Фильтр Windows TIFF iFilter. Ничего общего с Apple этот компонент не имеет. Он позволяет сервису индексирования Windows производить распознавание текста (OCR). Компонент отключен по умолчанию, поскольку функция сильно нагружает процессор компьютера. TIFF iFIlter нужен для тех, кто часто сканирует бумажные документы и использует TIFF-файлы.
В списке вы найдете еще много других компонентов, которые зачастую отключены. Они включаются автоматически лишь при необходимости, поэтому вручную активировать их мы не рекомендуем. Если они отключены, значит скорее всего они вам не нужны вовсе. Ну а что же касается включенных компонентов, то их описание вы уже нашли в этой статье. Сами решайте, стоит их отключать или нет. В подавляющем большинстве случаев пользователю вовсе не надо открывать окно с компонентами Windows, но все же полезно знать, для чего они нужны и какую функцию выполняют.
Windows 8 стала первой ОС Microsoft с возможностью управления дисковым пространством, которое занимают компоненты системы. Сегодня я подробно расскажу о том, как работает включение и отключение, а также удаление и добавление компонентов, что является новинкой.
С течением времени в операционных системах Microsoft эволюционировал механизм обслуживания, развивались инструменты для управления состоянием системы, но один момент оставался неизменным. Компоненты ОС могли находиться только в двух состояних — включенном и отключенном, причем в обоих случаях их файлы оставались на локальном диске.
Конечно, находились умельцы, вырезавшие компоненты из дистрибутива или WIM-образа системы, но это никогда не поддерживалось и порождало массу проблем для незадачливых владельцев г-сборок. Начиная с Windows 8, появился полностью поддерживаемый способ удаления компонентов из WIM-образа и работающей системы. О нем и пойдет речь сегодня во второй статье серии, раскрывающей изменения в обслуживании Windows.
[+] Сегодня в программе
Прежде чем перейти к тонкостям управления компонентами в Windows, я кратко расскажу о развитии инструментов обслуживания Windows. Ввиду сжатого формата мое описание утилит не претендует на абсолютную полноту, а лишь подчеркивает их ключевые функции.
Windows 2000/XP
Для управления компонентами в установленной системе наряду с графическим интерфейсом можно было использовать средство командной строки sysocmgr, опиравшееся на INF-файлы. Но ни установочные файлы XP, ни работающая система не являлись образом в современном понимании этого слова.
Эту тему я давно поднимал на OSZone, рассказывая о ключевых различиях развертывания XP и следующих ОС Microsoft. Указанная статья будет полезна новичкам для понимания того, о чем пойдет речь сегодня.
Windows Vista
Начиная с Windows Vista, в ОС Microsoft применяется новый механизм обслуживания. Он позволяет изменять состояние операционной системы и образов в формате WIM одними и тем же средствами.
В Vista для обслуживания автономных образов и работающей системы предназначался целый набор инструментов командной строки, где основными были:
- pkgmgr для управления компонентами Windows и установки пакетов (в том числе драйверов)
- peimg для работы с образами Windows PE
- intlcfg для настройки языковых параметров
- lpksetup для установки языковых пакетов
- ocsetup для управления ролями в серверной ОС
- imagex для подключения, захвата и применения образов
С этим зоопарком нужно было что-то делать…
Windows 7
В Windows 7 появилась единая система обслуживания и управления образами (Deployment Image Servicing and Management — DISM) и соответствующий ей инструмент командной строки DISM.exe. Эта утилита не просто вошла в WAIK, но и стала частью операционной системы. Кроме того, увидел свет API DISM, позволяющий внутренним и сторонним разработчикам использовать гибкую платформу обслуживания.
Обширные возможности DISM.exe позволили избавиться от утилит pkgmgr, peimg, intlcfg и автономных функций lpksetup для обслуживания WIM-образов и установленной системы, а также от ocsetup для управления ролями сервера. Начиная с Windows 7, на DISM уже возложены все основные задачи по управлению компонентами/ролями Windows и пакетами (кстати, именно в Windows 7 появилась возможность удалять пакеты драйверов, установленные утилитой).
В DISM Windows 7 уже было можно подключать WIM-образы, но для их захвата и применения без утилиты imagex было не обойтись.
Windows 8 и новее
В новой ОС Microsoft все представленные когда-то в Vista инструменты командной строки фактически слились в один. Так, DISM.exe ожидаемо обзавелась способностью захвата и применения образов (как следствие, утилита imagex автоматически получила статус устаревшей). Это далеко не единственная новая функция DISM — например, автономное обслуживание теперь доступно не только для WIM-образов, но и для VHD-файлов.
Кроме того, появилась возможность обслуживания системы с помощью PowerShell, в том числе из Windows PE 4.0. Другими словами, у основных функций DISM.exe есть эквивалентные командлеты PowerShell. Именно PowerShell в будущем станет главным инструментом обслуживания.
Компоненты по требованию
Даже при современной системе обслуживания у компонентов Windows Vista и 7 (а также ролей серверных систем 2008 и 2008 R2) было всего два основных состояния — включено и отключено. В обоих случаях файлы, относящиеся к компоненту, после установки системы хранились на локальном диске. Другими словами, можно было в любой момент изменить состояние компонента или роли, задействовав имеющиеся в распоряжении Windows файлы.
В Windows 8 у компонентов и ролей сервера появилось новое состояние — отключено с удалением полезных файлов (disabled with payload removed). В Windows 10 его уже нет, потому что для восстановления используется текущее состояние системы минус 30 дней.
В этом состоянии файлы, необходимые для работы компонента, физически отсутствуют на локальном диске. Поэтому для включения такого компонента необходим источник файлов:
- Windows Update
- другая работающая система
- автономный или подключенный образ Windows
Когда компонент или роль сервера отключены с удалением полезных файлов, операционная система занимает меньше места на диске. Это актуально в первую очередь для ролей Windows Server 2012+, но применимо и к Windows 8+.
Тонкости управления ролями Windows Server 2012 демонстрировал в блоге виртуализации Денис Дягилев, поэтому я расскажу об управлении компонентами клиентской Windows.
Пример установки компонента по требованию (.NET Framework 3.5)
Если вы запустите программу, которой требуется .NET Framework 3.5, появится такое окно:
Увеличить рисунок
Вам придется подождать, пока необходимые файлы загрузятся с серверов Windows Update. То же самое произойдет при попытке установить этот компонент из панели управления. Давайте посмотрим, что про него расскажут консольные инструменты.
Управление компонентами Windows с помощью DISM.exe и PowerShell
Для экспериментов, описанных в цикле статей о DISM, достаточно установленной Windows 8 и новее. В Windows 7 новые возможности DISM по обслуживанию образов доступны после установки Deployment Tools из ADK. Чтобы использовать командлеты PowerShell, необходимо установить .NET Framework 4.0 и Windows Management Framework 3.0, а затем импортировать модуль DISM.
Вам также пригодится знание параметров командной строки DISM. Я не буду дублировать встроенную справку, которая также опубликована в библиотеке TechNet для утилиты DISM.exe и командлетов PowerShell.
Примечание. В своих командах я использую переменную %ua%, которая соответствует моей рабочей папке. Если вы планируете копировать мои команды, имеет смысл задать в консоли такую же переменную. Параметры командной строки DISM.exe и PowerShell не чувствительны к регистру, но в именах компонентов его нужно соблюдать.
Отображение сведений о компонентах
Для начала вы можете вывести в текстовый файл полный список компонентов с информацией об их текущим состоянии:
DISM /online /get-features /format:table >%userprofile%\desktop\features.txt
Зная название компонента, можно получить о нем подробную информацию:
DISM /online /get-featureinfo /featurename:NetFx3
Увеличить рисунок
Как видите, компонент не просто отключен, но его файлы еще и отсутствуют на локальном диске.
Эквивалентные команды PowerShell
Очевидно, что с выходом .NET Framework 4.0 предыдущие версии потребуются лишь не самым новым программам.
Microsoft удалила файлы .NET Framework 3.5 из WIM-образа Windows, чтобы сэкономить место, которое занимает на диске установленная ОС.
Однако .NET Framework 3.5 входит в состав установочного диска, откуда его можно восстановить, как вы увидите чуть ниже.
Отключение и удаление компонентов в образе
Теперь Windows — это просто праздник для г-сборщиков! Ведь теперь не надо вырезать компоненты из дистрибутива кривыми руками, ибо можно просто удалить их абсолютно поддерживаемым методом.
Удаление компонентов работало только в Windows 8 и 8.1 Начиная с Windows 10 удаления не происходит, потому что файлы необходимы для восстановления к исходному состоянию, при котором используется текущее состояние системы.
Я предлагаю вам на минутку стать г-сборщиком и выпилить из дистрибутива что-нибудь, допустим, все компоненты Hyper-V! Скопируйте на локальный диск файл install.wim из папки sources установочного диска и последовательно выполняйте перечисленные ниже команды.
- Подключите образ:
DISM /Mount-Image /Imagefile:%ua%\wim\install.wim /index:1 /MountDir:C:\mount\
В данном случае я подключаю образ Windows 8 Корпоративная, у которой в WIM-файле единственный образ, имеющий индекс 1. Кстати, Mount-Image — это новый параметр командной строки, позволяющий подключать не только WIM, но и VHD!
- Проверьте состояние компонента Hyper-V (он должен быть включен):
DISM /Image:%ua%\mount /Get-FeatureInfo /FeatureName:Microsoft-Hyper-V-All
- Удалите компонент Hyper-V:
DISM /Image:%ua%\mount /Disable-Feature /FeatureName:Microsoft-Hyper-V-All /Remove
Как и в Windows 7, параметр Disable-Feature отключает компонент, но теперь у него появился новый ключ Remove для удаления файлов с диска в Windows 8 и 8.1. В Windows 10 и новее этот ключ игнорируется, поскольку в образе нужны все компоненты сброса к исходному состоянию системы.
- Снова проверьте состояние компонента. На этот раз он должен быть отключен с удалением полезных данных.
Увеличить рисунок
- Сохраните изменения в образе:
DISM /Unmount-Image /MountDir:%ua%:\mount /Commit
Все, теперь из этого WIM-образа система будет установлена на локальный диск без компонента Hyper-V. Именно такую операцию в Microsoft проделали с .NET Framework 3.5.
Эквивалентные команды PowerShell
Включение и восстановление компонентов в образе
В форуме Windows 7 я не раз видел владельцев г-сборок, безуспешно пытавшихся включить вырезанный компонент. Помочь им могла только переустановка поверх с неповрежденного дистрибутива. Начиная с Windows 8, у них появился шанс обойтись малой кровью (если, конечно, г-сборщик действовал по науке).
Я предлагаю вам переключиться в PowerShell и попробовать в деле новые командлеты DISM. Вообще, для работы с компонентами рекомендуется PowerShell, поскольку командлеты понимают зависимости, в отличие от DISM.ехе.
Скопируйте оригинальный образ install.wim в ту же папку, где лежит образ с удаленным компонентом Hyper-V. Назовите чистый образ install-clean.wim, чтобы не запутаться. Теперь последовательно выполняйте перечисленные ниже команды.
- Подключите образ с удаленным компонентом Hyper-V:
Mount-WindowsImage -ImagePath $env:ua\wim\install.wim -index 1 -Path C:\mount
Увеличить рисунок
- Посмотрите список всех удаленных компонентов. В PowerShell это делается элементарно:
Get-WindowsOptionalFeature -Path $env:ua\mount | where state -like *removed
Состояние DisabledWithPayloadRemoved означает, что компонент был отключен с удалением полезных файлов.
Увеличить рисунок
На рисунке видны изъятые компоненты Hyper-V, а также изначально отсутствующий .NET Framework 3.5. Но если в вашем установочном диске удалено что-то еще, это дело рук г-сборщика - Восстановите компонент Hyper-V, указывая путь к чистому WIM-образу в качестве источника файлов:
Enable-WindowsOptionalFeature -Path $env:ua\mount -FeatureName Microsoft-Hyper-V-All -Source $env:ua\wim\install-clean.wim:1
«Чистый» WIM-образ подключается автоматически, что является новой возможностью DISM. Eсли не указывать источник параметром -Source, DISM попытается использовать файлы текущей ОС и Windows Update, что не отражено в документации. Можно добавить в конце параметр -LimitAccess, запрещающий DISM контакт с Windows Update.
- Убедитесь в том, что компонент включен:
Get-WindowsOptionalFeature -Path $env:ua\mount -FeatureName Microsoft-Hyper-V-All
Результат выполнения двух последних команд показан на рисунке ниже. Восстановление компонента прошло успешно — он включен.
Увеличить рисунок
- Отключите образы:
Dismount-WindowsImage -Path $env:ua\mount -Save Dismount-WindowsImage -Path $env:ua\mount-clean -Discard
Первая команда сохраняет экспериментальный образ при отключении, а вторая — отключает чистый образ без сохранения изменений.
Таким способом можно восстановить любой удаленный компонент за маленьким исключением, о котором я расскажу дальше.
Добавление компонента .NET Framework 3.5 в образ
В отличие от всех прочих компонентов, файлы .NET Framework 3.5 находятся не в WIM-образе, а в папке sources\sxs установочного диска. Поэтому процедуру включения компонента надо слегка подкорректировать.
Подключите ISO-образ установочного диска и последовательно выполняйте команды PowerShell:
Mount-WindowsImage -Imagepath C:\wim\install.wim -Index 1 -Path C:\mount Enable-WindowsOptionalFeature -Path C:\mount -FeatureName NetFx3 -Source Х:\sources\sxs -LimitAccess Dismount-WindowsImage -Path C:\mount -Save
Во второй команде X обозначает букву диска подключенного ISO.
После развертывания образа компонент уже будет включен. Кстати, если в вашей организации используется WSUS, а на клиентских ПК необходим .NET Framework 3.5, следует подготовить образ с включенным компонентом и развертывать уже его.
Управление компонентами работающей системы
На «живой» системе все происходит точно так же, как и в случае с WIM-образом. Разница лишь в том, что вместо параметра -Path, указывающего на подключенный образ, задается параметр -Online, обозначающий работающую систему.
Поэтому я просто приведу примеры команд PowerShell для управления компонентом Hyper-V:
# Проверка состояния компонента Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All # Удаление компонента Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -Remove # Восстановление компонента из чистого WIM-образа Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -Source C:\wim\install-clean.wim:1
Компонент .NET Framework 3.5 включается так:
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -Source Х:\sources\sxs -LimitAccess
Сколько места можно сэкономить удалением компонентов
Теоретически у этого вопроса несколько аспектов:
- размер WIM-образа, что может быть актуально для организаций, хранящих множество образов на серверах
- требования к дисковому пространству для первоначальной установки системы
- объем всех файлов установленной системы за срок ее работы, что имеет значение для маленьких дисков
На некоторые вопросы можно ответить только экспериментальным путем. Поэтому я сначала установил оригинальную Windows 8 и посмотрел, сколько места она занимает по окончании установки. Затем я определил все компоненты, которые находятся в отключенном состоянии:
Get-WindowsOptionalFeature -Online | where state -eq 'disabled'| ft
После чего удалил их все из WIM-образа, сохранил его, создал ISO и установил Windows 8 заново с получившегося диска.
Windows 8 Enterprise x64 RU | Размер WIM-образа | Занято места на диске |
---|---|---|
Стандартный образ | 2.60GB | 9.75GB |
Образ с удаленными компонентами | 2.63GB | 9.66GB |
Экономия | Нет | 90MB (1%) |
Во-первых, размер WIM-образа даже слегка увеличился (видимо, по причине недостаточно сильного сжатия при сохранении). Во-вторых, удаление отключенных изначально компонентов не дало существенной экономии дискового пространства.
Что же касается увеличения размеров папки Windows со временем, то обновления для отключенных компонентов все равно не приходят из Windows Update. Другими словами, удаление компонента не дает дополнительной экономии дискового пространства по сравнению с отключением.
Зачем может понадобиться удаление компонентов
Казалось бы, особой выгоды из удаления компонентов извлечь невозможно. Однако не забывайте, что в своем эксперименте я удалял только те компоненты, которые изначально отключены. В организациях могут быть свои причины для удаления других компонентов (например, мультимедийных), когда заранее известны сценарии использования рабочих станций.
С другой стороны, по этой же схеме происходит управление .NET Framework 3.5, добавление которого съедает 600 мегабайт на диске.
Кроме того, удалив компонент, администратор может быть уверен, что пользователь его уже не установит. Конечно, для включения компонента нужны права администратора, но во многих организациях пользователи работают с полными правами.
Наконец, управление компонентами в клиентской ОС и ролями сервера в Windows Server — это смежные технологии. При этом удаление ролей дает намного более ощутимый эффект. Так, если оставлена только одна роль сервера (например, Hyper-V), счет в экономии дискового пространства идет уже на гигабайты.
Дискуссия и опрос
Список нововведений в обслуживании Windows еще не исчерпан! В следующей статье серии я расскажу о новых возможностях DISM, связанных с управлением приложениями.
Сегодняшний опрос призван выяснить, что установлено на компьютерах читателей блога. Пожалуйста, в комментариях расскажите:
- за какой пункт вы проголосовали и какая у вас версия Windows (XP, 7,
- если в основе вашей Windows лежит чужая сборка, объясните, почему вы не пользуетесь оригинальными дистрибутивами
- создавали ли вы когда-нибудь свои сборки Windows и с какой целью
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
Аннотация: Общая схема архитектуры. Компоненты пользовательского режима. Компоненты режима ядра.
Общая схема архитектуры
Windows представляет собой операционную систему с гибридным ядром (см. лекцию 1 «Введение в операционные системы»). В ней основные системные функции по управлению процессами, памятью, устройствами, файловой системой и безопасностью реализованы в компонентах, работающих в режиме ядра; но существует ряд важных системных компонентов пользовательского режима, например системные процессы входа в систему, локальной аутентификации, диспетчера сеансов, а также подсистемы окружения.
Архитектура Windows представлена на рис.4.1 [5; 2].
Рис.
4.1.
Архитектура Windows
Компоненты пользовательского режима
В пользовательском режиме работают следующие виды процессов:
- системные процессы (system processes) – компоненты Windows, отвечающие за решение критически важных системных задач (т. е. аварийное завершение одного из этих процессов вызывает крах или нестабильную работу всей системы), но выполняемые в пользовательском режиме.
Основные системные процессы:- Winlogon.exe – процесс входа в систему и выхода из неё;
- Smss.exe (Session Manager – диспетчер сеансов) – процесс выполняет важные операции при инициализации системы (загрузка необходимых DLL, запуск процессов Winlogon и Csrss и др.), а затем контролирует работу Winlogon и Csrss;
- Lsass.exe (Local Security Authentication Subsystem Server – сервер подсистемы локальной аутентификации) – процесс проверяет правильность введенных имени пользователя и пароля;
- Wininit.exe – процесс инициализации системы (например, запускает процессы Lsass и Services);
- Userinit.exe – процесс инициализации пользовательской среды (например, запускает системную оболочку – по умолчанию, Explorer.exe);
- Services.exe (SCM, Service Control Manager – диспетчер управления службами) – процесс, отвечающий за выполнение служб – см. ниже;
- службы (сервисы, services) – приложения, работающие в фоновом режиме и не требующие взаимодействия с пользователем. Службы могут быть как частью операционной системы (например, Windows Audio – служба для работы со звуком, или Print Spooler – диспетчер печати), так и частью пользовательского приложения (например, служба СУБД SQL Server). За службы отвечает системный процесс Services.exe;
- пользовательские приложения (user applications) ¬– прикладные программы, запускаемые пользователем;
- подсистемы окружения (environment subsystems) – компоненты, предоставляющие доступ приложениям к некоторому подмножеству системных функций. Windows поддерживает две подсистемы окружения:
- собственно Windows – при помощи данной подсистемы выполняются 32 разрядные приложения Windows (Win32), а также 16 разрядные приложения Windows (Win16), приложения MS DOS и консольные приложения (Console). За подсистему Windows отвечает системный процесс Csrss.exe и драйвер режима ядра Win32k.sys;
- POSIX (Portable Operating System Interface for UNIX – переносимый интерфейс операционных систем UNIX) – подсистема для UNIX-приложений. Начиная с Windows Server 2003 R2 компонент, реализующий эту подсистему, называется SUA (Subsystem for UNIX-based Applications). Компонент не устанавливается в Windows по умолчанию.
Все перечисленные процессы пользовательского режима (кроме подсистемы POSIX1Подсистема POSIX использует библиотеку Psxdll.dll.) для взаимодействия с модулями режима ядра используют библиотеки Windows DLL (Dynamic Link Library – динамически подключаемая библиотека). Каждая DLL экспортирует набор Windows API функций, которые может вызывать процесс.
Windows API (Windows Application Programming Interface, WinAPI) – это способ взаимодействия процессов пользовательского режима с модулями режима ядра. WinAPI включает тысячи функций и хорошо документирован [10].
Основные Windows DLL следующие:
- Kernel32.dll – базовые функции, в том числе работа с процессами и потоками, управление памятью и вводом выводом;
- Advapi32.dll – функции, в основном связанные с управлением безопасностью и доступом к реестру;
- User32.dll – функции, отвечающие за управление окнами и их элементами в GUI приложениях (Graphical User Interface – графический интерфейс пользователя);
- Gdi32.dll – функции графического пользовательского интерфейса (Graphics Device Interface, GDI), обеспечивающие рисование на дисплее и принтере графических примитивов и вывод текста.
Библиотека Ntdll.dll экспортирует в большинстве своем недокументированные системные функции, реализованные, в основном, в Ntoskrnl.exe. Набор таких функций называется Native API («родной» API).
Библиотеки Windows DLL преобразуют вызовы документированных WinAPI функций в вызовы функций Native API и переключают процессор на режим ядра.
Компоненты режима ядра
Диспетчер системных сервисов (System Service Dispatcher) работает в режиме ядра, перехватывает вызовы функций от Ntdll.dll, проверяет их параметры и вызывает соответствующие функции из Ntoskrnl.exe.
Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT Operating System Kernel – ядро операционной системы NT) (по поводу использования термина «ядро» в Windows см. лекцию 1 «Введение в операционные системы»).
Исполнительная система (Executive) представляет собой совокупность компонентов (называемых диспетчерами – manager), которые реализуют основные задачи операционной системы:
- диспетчер процессов (process manager) – управление процессами и потоками (см. лекцию 6 «Процессы и потоки»);
- диспетчер памяти (memory manager) – управление виртуальной памятью и отображение её на физическую (см. лекцию 8 «Управление памятью»);
- монитор контроля безопасности (security reference monitor) – управление безопасностью (см. лекцию 9 «Безопасность»);
- диспетчер ввода вывода (I/O manager), диспетчер кэша (cache Manager), диспетчер Plug and Play (PnP Manager) – управление внешними устройствами и файловыми системами (см. лекцию 10 «Управление устройствами» и лекцию 11 «Файловая система NTFS»);
- диспетчер электропитания (power manager) – управление электропитанием и энергопотреблением;
- диспетчер объектов (object manager), диспетчер конфигурации (configuration manager), механизм вызова локальных процедур (local procedure call) – управление служебными процедурами и структурами данных, которые необходимы остальным компонентам.
Ядро (Kernel) содержит функции, обеспечивающие поддержку компонентам исполнительной системы и осуществляющие планирование потоков (см. лекцию 7 «Планирование потоков»), механизмы синхронизации, обработку прерываний.
Компонент Windows USER и GDI отвечает за пользовательский графический интерфейс (окна, элементы управления в окнах – меню, кнопки и т. п., рисование), является частью подсистемы Windows и реализован в драйвере Win32k.sys.
Взаимодействие диспетчера ввода вывода с устройствами обеспечивают драйверы (drivers) – программные модули, работающие в режиме ядра, обладающие максимально полной информацией о конкретном устройстве (драйверы подробнее рассматриваются в лекции 10 «Управление устройствами»).
Однако, и драйверы, и ядро не взаимодействуют с физическими устройствами напрямую – посредником между программными компонентами режима ядра и аппаратурой является HAL (Hardware Abstraction Layer) – уровень абстрагирования от оборудования, реализованный в Hal.dll. HAL позволяет скрыть от всех программных компонентов особенности аппаратной платформы (например, различия между материнскими платами), на которой установлена операционная система.
Резюме
В лекции представлена архитектура операционной системы Windows и описаны основные компоненты пользовательского режима и режима ядра.
В следующей лекции рассматривается исследовательское ядро Windows (Windows Research Kernel) – вариант Ntoskrnl.exe с исходным кодом, доступным академическим организациям.
Контрольные вопросы
- К какому типу ядер в большей степени относится Windows NT, к монолитным или микроядрам? Ответ обоснуйте.
- Перечислите основные компоненты пользовательского режима.
- Перечислите основные компоненты режима ядра.
- Что такое Windows API? Где можно найти информацию по этому вопросу?
- Каковы основные функции исполнительной системы, входящей в состав Ntoskrnl.exe?
- Каковы основные функции ядра, входящего в состав Ntoskrnl.exe?
- Что такое HAL?
Разновидности Windows Состав и структура Windows
Обзор операционных систем Windows
Microsoft Windows – операционные системы корпорации Microsoft, различные версии которых предназначены для широкого класса устройств – от суперкомпьютеров до встроенных систем. В настоящее время Microsoft Windows установлена на большинстве персональных компьютеров: по данным сайта анализа веб трафика StatCounter (http://gs.statcounter.com) операционные системыWindows (версий XP, Vista, 7) в августе 2012 года были установлены на 88% компьютеров в мире; в то же время по данным компании веб-аналитики Net Applications (http://marketshare.hitslink.com) Windows занимает 92% рынка настольных компьютеров и ноутбуков.
В настоящее время существует несколько семейств (family) операционных систем Windows, предназначенных для использования на разных типах компьютеров:
- семейство клиентских операционных систем Windows NT (Windows XP, Windows Vista, Windows 7, Windows 8 и др.);
- семейство серверных операционных систем Windows NT Server (Windows Server 2003, Windows Server 2008 и др.);
- семейство мобильных операционных систем Windows Mobile и Windows Phone (Windows Mobile 6, Windows Phone 7 и др.);
- семейство встроенных операционных систем реального времени Windows CE (Windows CE 7.0 и др.).
Кроме того, в прошлом выпускались 16 разрядные операционные системы (Windows 1.0, Windows 2.х, Windows 3.х) и семейство операционных систем Windows 9x (Windows 95, Windows 98, Windows Me).
В данной лекции представлен краткий обзор семейств операционных систем Microsoft Windows (рис.2.1).
увеличить изображение
Рис. 2.1. История развития семейств операционных систем Windows
16 разрядные Windows
Первой Windows была Windows 1.0, выпущенная в ноябре 1985 года. Это была не полноценная операционная система, а надстройка над операционной системой MS-DOS. Windows 1.0 предоставляла пользователю графический оконный интерфейс и возможность запускать несколько приложений одновременно (и то и другое отсутствовало в MS DOS). Сначала эту программу хотели назвать Interface Manager, но затем склонились к названию Windows («окна»), как более точно отражающему суть работы с новой программой [7]. Минимальные системные требования к памяти ограничивались 256 КБ.
В Windows 2.0 (декабрь 1987 года) были введены некоторые улучшения графического интерфейса (в частности поддержка перекрывающихся окон) и работы с памятью. Также для большего удобства стали использоваться комбинации клавиш. В мае 1988 года и в марте 1989 года появляются соответственно Windows 2.10 и Windows 2.11, поддерживающие новые на то время процессоры Intel 80286 и Intel 80386 [16].
В мае 1990 года выходит Windows 3.0 с улучшенной графикой и поддержкой виртуальной памяти. В 1992 1993 гг. появляются версии Windows for Workgroups 3.1 и 3.11, в которых имеется поддержка работы в одноранговых сетях и сетях под управлением сервера. Это были последние версии 16 разрядных Windows.
Windows 9x
В августе 1995 года выпускается Windows 95 – 32 разрядная клиентская операционная система, в которой была встроенная поддержка работы с Интернетом (браузер Internet Explorer) и модемными сетями, а также технология Plug-and-Play («подключи и работай»), позволяющая быстро подключать к компьютеру различные устройства. Впервые появилась кнопка Пуск (Start) и Панель задач (Taskbar). Windows 95 требовала минимум 4 МБ оперативной памяти [7].
На смену Windows 95 в июне 1998 года приходит Windows 98 с множеством программ для работы с Интернетом (Internet Explorer 4, Outlook Express и др.), поддержкой DVD и USB, первым появлением Панели быстрого запуска программ (Quick Launch bar). Windows 98 была последней операционной системой, основанной на MS DOS [7].
Последней версией в семействе 9x стала Windows Me (Millennium Edition, сентябрь 2000 года). Эта система была нацелена на домашних пользователей, и, следовательно, имела широкую поддержку работы с мультимедиа (Windows Media Player 7, Windows Movie Maker), Интернетом и домашними сетями.
Другим направлением развития операционных систем Windows в 90 е годы стало семейство NT.
Windows NT
В июле 1993 года была выпущена первая операционная система семейства NT – Windows NT 3.1. Есть разные варианты объяснения названия NT, самый распространенный вариант – это аббревиатура от New Technology («новая технология»).
Разработка системы, основанной на новом ядре (не MS DOS), началась в 1989 году. К новой операционной системе предъявлялись следующие основные требования [5]:
- 32 разрядность;
- поддержка многопроцессорных систем;
- поддержка вытесняющей многозадачности и виртуальной памяти;
- высокая производительность;
- возможность работы в качестве сервера и клиента;
- переносимость;
- совместимость с другими версиями Windows и MS DOS, а также частичная совместимость с UNIX;
- безопасность;
- надежность;
- поддержка Unicode.
Windows NT 3.1 соответствовала всем этим требованиям, а на ядре этой системы (конечно, с изменениями) основаны все современные версии Windows, включая Windows 8.
Windows NT 3.1 поддерживала процессоры Intel 80386, Intel 80486, MIPS R4000 и DEC Alpha [5]. Существовали клиентская и серверная версии системы – Windows NT и Windows NT Advanced Server. Windows NT, помимо других файловых систем, поддерживала специально разработанную в Microsoft файловую систему NTFS (New Technology File System).
В 1994 1996 годах последовательно выходят операционные системы Windows NT 3.5, Windows NT 3.51 и Windows NT 4.0. Целями разработки Windows NT 3.5 были повышение производительности и надежности, а также уменьшение размера системы. В Windows NT 3.51 была включена поддержка процессора IBM PowerPC. Windows NT 4.0 обладала таким же графическим интерфейсом как и система Windows 95 [5].
Windows 2000, вышедшая в декабре 1999 года, разрабатывалась в качестве системы для профессиональных пользователей, объединяющей два направления – Windows 9x и Windows NT [7]. Система Windows 2000 включала Active Directory (служба и базу данных ресурсов для управления большими сетями) и поддержку значительного числа Plug-and Play устройств, в том числе беспроводных сетей, USB, IEEE 1394 и др. Существовало 4 версии Windows 2000 – одна клиентская (Professional) и три серверных (Server, Advanced Server и Datacenter Server). Windows 2000 была последней системой, для которой выпускались одновременно клиентские и серверные версии.
Следующим шагом стало объединение обоих направлений клиентских систем: и систем для профессиональных пользователей (Windows 2000 Professional), и систем для домашних пользователей (Windows Me). Результатом такого объединения стала операционная система Windows XP (август 2001 года). Благодаря своей стабильности, скорости и удобному интерфейсу, Windows XP стала (и до сих пор является) одной из самых распространенных операционных систем в мире. Важным шагом явилось появление 64 разрядных версий Windows XP (Windows XP 64-bit Edition). Количество строк кода в Windows XP – 45 миллионов [7].
В марте 2003 года выходит серверная операционная система Windows Server 2003, имеющая большую производительность и поддерживающая более мощное оборудование, чем Windows 2000. Система имеет 4 основные версии: Web, Standard, Enterprise и Datacenter. Например, версия Datacenter поддерживает 64 процессора и до 64 ГБ оперативной памяти (до 512 ГБ на 64 разрядных платформах).
Клиентская операционная система Windows Vista вышла в ноябре 2006 года. Акцент при разработке этой системы был сделан на безопасность – контроль учетных записей пользователей (User Account Control), шифрование дисков (BitLocker Drive Encryption), антишпионское программное обеспечение (Windows Defender) и др. В Windows Vista был также изменен пользовательский интерфейс, в частности поменяла вид кнопка Пуск (Start).
В феврале 2008 года появилась операционная система Windows Server 2008, основанная на коде Windows Vista – поэтому большая часть нововведений Windows Vista перешла и в Windows Server 2008.
В июле 2009 года выходит Windows 7, отличающаяся расширенной поддержкой ноутбуков и планшетов. Основные особенности Windows 7 – новые приемы работы с окнами, мгновенный поиск информации на компьютере, поддержка сенсорных экранов (Windows Touch), большие возможности по настройке оформления рабочей среды.
В 2012 году Microsoft выпускает новейшие версии операционных систем – клиентскую Windows 8 (октябрь 2012 года) и серверную Windows Server 2012 (сентябрь 2012 года). Windows 8 – операционная система, одинаково рассчитанная как на обычные настольные компьютеры и ноутбуки, так и на планшетные компьютеры, завоевавшие в последнее время существенную долю всего рынка персональных компьютеров (см. лекцию 3 «Windows 8»).
Windows CE
Windows CE – операционная система реального времени для встраиваемых систем. Символы «CE», по утверждению Microsoft, обозначают «Compact, Connectable, Compatible, Companion, Efficient»1 . В настоящее время эта система имеет официальное название Windows Embedded Compact (http://www.microsoft.com/windowsembedded).
Windows CE поставляется разработчикам устройств в виде набора компонентов, из которых можно создать операционную систему для конкретного устройства. Например, операционные системы Windows Mobile построены на основе Windows CE.
Первая версия Windows CE 1.0 появилась в 1996 году и была разработана как урезанная версия Windows 95. В дальнейшем команда разработчиков Windows CE сотрудничала с командой Windows 2000, затем Windows CE развивалась как независимая система.
На сентябрь 2012 года последней версией является Windows CE 7.0.
Windows Mobile и Windows Phone
Windows Mobile – операционная система для смартфонов и карманных персональных компьютеров (КПК, Personal Digital Assistant – PDA), основанная на Windows CE.
Первые версии операционных систем этого семейства назывались Pocket PC (2000 год). С 2003 года утвердилось наименование Windows Mobile – были выпущены операционные системы Windows Mobile 2003, Windows Mobile 5, Windows Mobile 6. Последней версией с таким названием стала система Windows Mobile 6.5 (2009 год).
С октября 2010 года Microsoft выпустила новую операционную систему для мобильных устройств – Windows Phone 7, несовместимую с Windows Mobile, хотя и основанную также на Windows CE. В Windows Phone 7 появился новый пользовательский интерфейс, в настоящее время называемый Modern UI.
В октябре 2012 года ожидается выход Windows Phone 8, основанной на ядре Windows NT.
Архитектура Windows
Общая схема архитектуры
Windows представляет собой операционную систему с гибридным ядром (см. лекцию 1 «Введение в операционные системы»). В ней основные системные функции по управлению процессами, памятью, устройствами, файловой системой и безопасностью реализованы в компонентах, работающих в режиме ядра; но существует ряд важных системных компонентов пользовательского режима, например системные процессы входа в систему, локальной аутентификации, диспетчера сеансов, а также подсистемы окружения.
Архитектура Windows представлена на рис.4.1 [5; 2].
Рис. 4.1. Архитектура Windows
Компоненты пользовательского режима
В пользовательском режиме работают следующие виды процессов:
- системные процессы (system processes) – компоненты Windows, отвечающие за решение критически важных системных задач (т. е. аварийное завершение одного из этих процессов вызывает крах или нестабильную работу всей системы), но выполняемые в пользовательском режиме. Основные системные процессы:
- Winlogon.exe – процесс входа в систему и выхода из неё;
- Smss.exe (Session Manager – диспетчер сеансов) – процесс выполняет важные операции при инициализации системы (загрузка необходимых DLL, запуск процессов Winlogon и Csrss и др.), а затем контролирует работу Winlogon и Csrss;
- Lsass.exe (Local Security Authentication Subsystem Server – сервер подсистемы локальной аутентификации) – процесс проверяет правильность введенных имени пользователя и пароля;
- Wininit.exe – процесс инициализации системы (например, запускает процессы Lsass и Services);
- Userinit.exe – процесс инициализации пользовательской среды (например, запускает системную оболочку – по умолчанию, Explorer.exe);
- Services.exe (SCM, Service Control Manager – диспетчер управления службами) – процесс, отвечающий за выполнение служб – см. ниже;
- службы (сервисы, services) – приложения, работающие в фоновом режиме и не требующие взаимодействия с пользователем. Службы могут быть как частью операционной системы (например, Windows Audio – служба для работы со звуком, или Print Spooler – диспетчер печати), так и частью пользовательского приложения (например, служба СУБД SQL Server). За службы отвечает системный процесс Services.exe;
- пользовательские приложения (user applications) ¬– прикладные программы, запускаемые пользователем;
- подсистемы окружения (environment subsystems) – компоненты, предоставляющие доступ приложениям к некоторому подмножеству системных функций. Windows поддерживает две подсистемы окружения:
- собственно Windows – при помощи данной подсистемы выполняются 32 разрядные приложения Windows (Win32), а также 16 разрядные приложения Windows (Win16), приложения MS DOS и консольные приложения (Console). За подсистему Windows отвечает системный процесс Csrss.exe и драйвер режима ядра Win32k.sys;
- POSIX (Portable Operating System Interface for UNIX – переносимый интерфейс операционных систем UNIX) – подсистема для UNIX-приложений. Начиная с Windows Server 2003 R2 компонент, реализующий эту подсистему, называется SUA (Subsystem for UNIX-based Applications). Компонент не устанавливается в Windows по умолчанию.
Все перечисленные процессы пользовательского режима (кроме подсистемы POSIX1) для взаимодействия с модулями режима ядра используют библиотеки Windows DLL (Dynamic Link Library – динамически подключаемая библиотека). Каждая DLL экспортирует набор Windows API функций, которые может вызывать процесс.
Windows API (Windows Application Programming Interface, WinAPI) – это способ взаимодействия процессов пользовательского режима с модулями режима ядра. WinAPI включает тысячи функций и хорошо документирован [10].
Основные Windows DLL следующие:
- Kernel32.dll – базовые функции, в том числе работа с процессами и потоками, управление памятью и вводом выводом;
- Advapi32.dll – функции, в основном связанные с управлением безопасностью и доступом к реестру;
- User32.dll – функции, отвечающие за управление окнами и их элементами в GUI приложениях (Graphical User Interface – графический интерфейс пользователя);
- Gdi32.dll – функции графического пользовательского интерфейса (Graphics Device Interface, GDI), обеспечивающие рисование на дисплее и принтере графических примитивов и вывод текста.
Библиотека Ntdll.dll экспортирует в большинстве своем недокументированные системные функции, реализованные, в основном, в Ntoskrnl.exe. Набор таких функций называется Native API («родной» API).
Библиотеки Windows DLL преобразуют вызовы документированных WinAPI функций в вызовы функций Native API и переключаютпроцессор на режим ядра.
Компоненты режима ядра
Диспетчер системных сервисов (System Service Dispatcher) работает в режиме ядра, перехватывает вызовы функций от Ntdll.dll, проверяет их параметры и вызывает соответствующие функции из Ntoskrnl.exe.
Исполнительная система и ядро содержатся в Ntoskrnl.exe (NT Operating System Kernel – ядро операционной системы NT) (по поводу использования термина «ядро» в Windows см. лекцию 1 «Введение в операционные системы»).
Исполнительная система (Executive) представляет собой совокупность компонентов (называемых диспетчерами – manager), которые реализуют основные задачи операционной системы:
- диспетчер процессов (process manager) – управление процессами и потоками (см. лекцию 6 «Процессы и потоки»);
- диспетчер памяти (memory manager) – управление виртуальной памятью и отображение её на физическую (см. лекцию 8 «Управление памятью»);
- монитор контроля безопасности (security reference monitor) – управление безопасностью (см. лекцию 9 «Безопасность»);
- диспетчер ввода вывода (I/O manager), диспетчер кэша (cache Manager), диспетчер Plug and Play (PnP Manager) – управление внешними устройствами и файловыми системами (см. лекцию 10 «Управление устройствами» и лекцию 11 «Файловая система NTFS»);
- диспетчер электропитания (power manager) – управление электропитанием и энергопотреблением;
- диспетчер объектов (object manager), диспетчер конфигурации (configuration manager), механизм вызова локальных процедур (local procedure call) – управление служебными процедурами и структурами данных, которые необходимы остальным компонентам.
Ядро (Kernel) содержит функции, обеспечивающие поддержку компонентам исполнительной системы и осуществляющие планирование потоков (см. лекцию 7 «Планирование потоков»), механизмы синхронизации, обработку прерываний.
Компонент Windows USER и GDI отвечает за пользовательский графический интерфейс (окна, элементы управления в окнах – меню, кнопки и т. п., рисование), является частью подсистемы Windows и реализован в драйвере Win32k.sys.
Взаимодействие диспетчера ввода вывода с устройствами обеспечивают драйверы (drivers) – программные модули, работающие в режиме ядра, обладающие максимально полной информацией о конкретном устройстве (драйверы подробнее рассматриваются в лекции 10 «Управление устройствами»).
Однако, и драйверы, и ядро не взаимодействуют с физическими устройствами напрямую – посредником между программными компонентами режима ядра и аппаратурой является HAL (Hardware Abstraction Layer) – уровень абстрагирования от оборудования, реализованный в Hal.dll. HAL позволяет скрыть от всех программных компонентов особенности аппаратной платформы (например, различия между материнскими платами), на которой установлена операционная система.
Контрольные вопросы
- Перечислите основные семейства операционных систем Windows и дайте их краткую характеристику.
- Назовите основных представителей 16 разрядных Windows.
- Перечислите основные отличия операционных систем Windows NT от Windows 9x.
- Чем отличаются клиентские и серверные версии Windows NT?
- Охарактеризуйте операционные системы семейства Windows CE.
- Охарактеризуйте операционные системы семейства Windows Mobile/Windows Phone.
- К какому типу ядер в большей степени относится Windows NT, к монолитным или микроядрам? Ответ обоснуйте.
- Перечислите основные компоненты пользовательского режима.
- Перечислите основные компоненты режима ядра.
- Что такое Windows API? Где можно найти информацию по этому вопросу?
- Каковы основные функции исполнительной системы, входящей в состав Ntoskrnl.exe?
- Каковы основные функции ядра, входящего в состав Ntoskrnl.exe?
- Что такое HAL?