На этом курсе будут рассматриваться технологии, инструменты, использующиеся в Windows Server, а также архитектура системы
Сейчас лидирующее положение среди операционных систем на персональных компьютерах занимает Microsoft Windows
В серверах же преобладает ОС Linux, доля Windows составляет около 20%. При этом ОС Windows не популярна как платформа для веб-серверов (примерно 8% сайтов используют Windows) и суперкомпьютеров
Несмотря на это, около половину заработка компании Microsoft составляет облачные услуги и офисные продукты. Облачная платформа Microsoft Azure принесла более 100 млрд долларов за 2026 финансовый год, что составляет около 30% от прибыли компании. Сейчас Microsoft Azure на рынке облачных услуг уступает только Amazon Web Services
Ключевой технологией является Windows Server, которая используется:
Помимо Azure и Windows Server экосистема Microsoft включает:
Историю Microsoft можно разделить на 3 эпохи:
Предпосылками создания компании были желанием IBM выйти на рынок персональных компьютеров и Билла Гейтса заработать на ПО. IBM нуждалась в простенькой операционной системе, которая использовалась бы на аппаратном обеспечении IBM. До этого Microsoft разработали интерпретаторы языков BASIC, FORTRAN, COBOL и форк ОС Unix - Xenix
Первой версией стала MS-DOS (от MicroSoft Disk Operating System), выпущенная в 1981 году и основанная на выкупленной 86-DOS у Seattle Computer Products. MS-DOS имела только интерфейс консольной строки:

В 1985 году вышла Windows 1.0, которая представляла графическую оболочку и набор приложений для MS-DOS. В 1987 году Windows 2.0, а в 1993 году вышла Windows 3.11 for Workgroups, в которой появился интегрированный сетевой стек

Параллельно с развитием MS-DOS компании IBM и Microsoft совместно разрабатывали операционную систему OS/2. В 1991 году Microsoft прекращает участие, а наработки использует для создания ядра Windows NT (от New Technology). Новое ядро получило поддержку многопоточности, работы со множеством пользователей, 32-битной адресации, собственной файловой системы NTFS (New Technology File System) и стало архитектурнонезависимым
В 1993 году выходит Windows NT 3.1 для серверов и рабочих станций. В 1994 году появляется Windows NT 3.5, которая получила сертификат безопасности C2, определенный Критериями определения безопасности компьютерных систем (так называемая “Оранжевая книга”)
Параллельно с этим выходят Windows 95 и Windows 98, развивающую основную ветвь Windows. В Windows 95 графическая подсистема полностью встраивается в ядро ОС, а MS-DOS при этом продолжала использоваться для загрузки и обеспечения совместимости со старым ПО

Далее:

Сейчас операционные системы Windows для ПК и Windows Server используют одно ядро, однако серверные ОС отличаются набором компонентов. На 2026 году поддерживаются Windows Server 2016 (до января 2027), Windows Server 2019 (до января 2029), Windows Server 2022 (до октября 2031) и Windows Server 2025 (до ноября 2034)
Как и обычная версия Windows, которая издается в изданиях “Домашняя” (Home), “Профессиональная” (Pro) и “Корпоративная” (Enterprise), отличающиеся функционалом, Windows Server издается в нескольких редакциях:
Устаревшие редакции включают:
Отдельно существует сервис Windows 365 Cloud PC - облачная настольная среда в Azure, доступная по сети
Также Windows Server имеет несколько вариантов установки:
Отдельно существовал Minimal Server Interface в старых версиях Windows Server, начиная с Windows Server 2012, но в современных версиях отдельным вариантом установки не является
Операционная система - это слой абстракции между пользователем, программным обеспечением и аппаратным обеспечением
Операционная система решает такие задачи:
Windows является гибридной операционной системой нереального времени (которая делает приоритетом максимальную пропускную способность вместо гарантированного времени отклика) с вытесняющей многозадачностью
В отличии от Linux система Windows:
Windows, как и другие операционные системы, представляет собой слой абстракции между программным обеспечение и устройством, на котором обеспечение запускается
Изначально, проект Multics, прародитель Unix, ставил цель сделать ОС для многих пользователей, поэтому в Multics было 8 колец защиты (или привилегий). Кольцо 0 было наиболее привилегированным и использовалось для ядра или супервизора системы, а остальные 7 колец использовались для других подсистем, служб супервизора и пользовательских приложений. Чем больше номер кольца, тем менее возможностей взаимодействия с устройствами ПК имел процесс
Операционная система Windows же разрабатывалась для IBM-PC-совместимых компьютеров, то есть компьютеров с процессором архитектуры x86. Компания Intel, разработавшая архитектуру x86 и процессор Intel 80286, аппаратно реализовала 4 кольца привилегий в процессоре:
Процессор знает, в каком кольце исполняется текущий код благодаря машинному регистру, отвечающему за это, из-за чего понимал, что делать, если инструкция обращается к памяти чужого процесса или выполняемая инструкция неправильная
На практике ранние версии Windows (3.x, 95, 98 и Millennium Edition) использовали 2 кольца - 0 и 3. Затем при создании Windows NT учитывалось, что операционная система будет работать на процессорах не только архитектуры x86, но MIPS, Alpha и PowerPC, которые имеют только 2 кольца привилегий: привилегированный и пользовательский режимы. Также, Поэтому кольца 1 и 2 в системе Windows (как и в других системах, таких как Linux и macOS) не используются
Современное ядро Windows NT имеет гибридную архитектуру, хотя изначально OS/2 планировалась как система с микроядерной архитектурой. Из-за этого некоторые существенные компоненты работают в пользовательском режиме

В пользовательском режиме работают:
smss.exe, от Session Manager Subsystem), программа входа в систему Windows (winlogon.exe) и согласованный пользовательский интерфейс для административных приложений (consent.exe)Отличия пользовательских приложений и процесс служб от системных процессов и подсистем окружения являются в использовании разных интерфейсов:
В режим ядра работают:
Исполнительная система - низкоуровневые функции операционной системы, такие как диспетчеризация потоков, диспетчеризация прерываний и исключений и мультипроцессорная синхронизация
Исполнительная система состоит из этих компонентов:
Графический пользовательский интерфейс (GUI) - реализация функция графического интерфейса, работа с окнами, элементы пользовательского интерфейса и графический вывод
Ядро Windows (ntoskrnl.exe) - низкоуровневые функции ОС: планирование потоков, диспетчеризация прерываний и исключений и многопроцессорная синхронизация. Оно
также предоставляет набор функций и базовых объектов, которые используются исполнительной системой для
реализации высокоуровневых конструкций
Драйверы устройств (*.sys в папке Windows\System32\Drivers) - драйверы физических устройств, преобразующие вызовы пользовательских функций ввода/вывода в конкретные запросы к устройству, и драйверы устройств, не относящихся к физическому оборудованию, например драйверы файловой системы, сети
Слой абстрагирования оборудования (он же HAL, Hardware Abstraction Layer или машинно-зависимые модули, hal.dll), который изолирует ядро, драйверы устройств и прочий исполняемый код от платформенно-зависимых различий в работе оборудования
Отдельно уровнем ниже существует гипервизор, который состоит из нескольких внутренних уровней и служб: собственный диспетчер памяти, планировщик виртуальных процессов, управление прерываниями и таймером, функции синхронизации, разделы (экземпляры виртуальных машин), внутрипроцессные коммуникации (IPC, Inter-Process Communication) и другое
Сейчас Windows 11 работает на процессорах с архитектурой x86-64 и ARM64. Версии с Windows 95 по Windows 10 поддерживают 32-битные процессоры архитектуры x86. Отдельная версия Windows RT (основанная на Windows 8 и 8.1) поддерживает процессоры архитектуры ARM32 (в том числе отдельные системы на чипе из семейства Nvidia Tegra). Ранние версии Windows работала на процессорах с архитектурой Itanium, DEC Alpha, PowerPC, MIPS
Сама система Windows написана на языках C, C++ и на языке ассемблера. Независимость от архитектуры в Windows обеспечивается изменение машинно-зависимых модулей и ядра
Ядро Windows поддерживает симметричную мультипроцессорность, то есть потоки процесса исполняются на любых ядрах с общей памятью, а также многоядерные, гиперпотоковые (Hyper-Threading) процессоры и технологию доступа к неоднородной памяти NUMA (Non-Uniform Memory Architecture) для систем с несколькими процессорами (память в NUMA разделяется NUMA-группы, которые распределяются отдельным процессорам)
Также Windows имеет ограничения до 64 физических процессоров (при этом неограниченное число логических ядер) и до 20 сокетов NUMA
Операционная система Windows Server может управляться с помощью таких инструментов:
mmc.exe) - консоль управления MicrosoftWindows имеет стандартную структуру каталогов:
Windows (в пользовательских компьютерах чаще всего C:\Windows, полный путь хранится в переменной окружения SystemRoot). В качестве ссылки на каталог Windows используются %SystemRoot% или %WinDir%
Windows\System32 - основные 64-битные системные файлы (динамические библиотеки .dll и исполняемые файлы .exe)Windows\SysWOW64 (от Windows on Windows 64-bit) - 32-битные версии файлов для запуска старых программWindows\WinSxS (от Side-by-Side) и Windows\Servicing\Packages - компоненты WindowsWindows\SoftwareDistribution и Windows\servicing\LCU (от Last Cumulative Update) - каталоги пакетов обновленийProgramData для хранения данных приложений и установочных файловProgram Files и Program Files (x86) для приложений (соответственно 64-битные и 32-битные)PerfLogs для хранения журналов производительностиRecovery для хранения образа среды восстановления$Recycle.Bin, который представляет “Корзину”System Volume Information, который хранит файлы, позволяющие восстановить состояние системы в случае серьезных сбоевUsers (в русской версии отображается как Пользователи) для хранения данных пользователей
Users/All Users и Users/Default для хранения специальных профилейUsers\%имя-пользователя%\Documents (Документы) - документыUsers\%имя-пользователя%\Desktop (Рабочий стол) - каталог файлов, иконки которых отображаются на рабочем столе системыUsers\%имя-пользователя%\AppData - данные приложений этого пользователя
Users\%имя-пользователя%\AppData\Local - локальные для этого компьютера данные приложений (например, кэш браузера)Users\%имя-пользователя%\AppData\LocalLow - данные приложений, работающих в изолированной средеUsers\%имя-пользователя%\AppData\Roaming - данные приложений, которые должны следовать за пользователем при входе в одну учетную запись на разных компьютерах (полезно для офисов)pagefile.sys - виртуальный файл подкачкиswapfile.sys - аналог pagefile.sys для приложений, созданных на UWP (Universal Windows Platform)hiberfil.sys - файл для работы гибернации. При входе в режим гибернации оперативная память копируется в этот файл, из-за чего экономится больше энергии, чем в спящем режимеКаталоги Windows, Recovery и файл Hiberfil.sys обязаны находится на системного разделе диска, а Program Files, ProgramData и Users могут находится вне, но через костыли
Конфигурация Windows хранится в конфигурационных файлах разных форматов (.ini, .xml, .json, .conf) и в реестре
Реестр Windows - это набор бинарных файлов для хранения конфигурации в виде дерева
Преимущества:
Недостатки:
Реестр хранит значения этих типов:
Ссылка - символическая ссылка в формате Unicode
REG_SZ - обычная текстовая строка, используется для хранения путей, имен и других текстовых данных фиксированной длины.REG_DWORD - 32-разрядное число, применяется для хранения числовых параметров конфигурации, флагов и настроекREG_QWORD - 64-разрядное числоREG_BINARY- двоичные данные, информация отображается в шестнадцатеричном формате, чаще всего применяется для параметров оборудования и графических настроекREG_MULTI_SZ - множественная строковая последовательность (список строк, разделенных нулевым символом \0)REG_EXPAND_SZ - расширяемая строковая переменная. Текст, содержащий переменные окружения (например, %SystemRoot%), которые автоматически заменяются на реальные пути при чтенииREG_LINK - символическая Unicode-ссылка на другой раздел реестраРеестр также поддерживает ACL (Access Control List) - список управления доступом, который определяет, какие пользователи или группы имеют права на чтение, запись, изменение или удаление конкретных разделов и параметров в реестре
Значения в реестре разбиты на несколько основных веток:
HKEY_LOCAL_MACHINE (HKLM) - глобальные настройки компьютера, которые применяются ко всем пользователям и самой операционной системе
HKEY_LOCAL_MACHINE\HARDWARE - информация о текущем аппаратном обеспечении компьютера, создаваемая динамически (аналог /dev в Linux)HKEY_USERS (HKU) - профили всех пользователей, зарегистрированных в системеHKEY_CURRENT_USER (HKCU) - настройки текущего вошедшего пользователя (ссылка на подраздел внутри HKEY_USERS)HKEY_CLASSES_ROOT (HKCR) - сопоставления типов файлов и регистрация COM-компонентов. Эта ветка указывает системе, какое приложение должно открывать конкретный формат (например, .txt или .pdf), а также хранит настройки для контекстного меню проводника. Она является динамическим объединением данных из HKLM\Software\Classes (для всех пользователей) и HKCU\Software\Classes (личные ассоциации пользователя, которые имеют приоритет)HKEY_CURRENT_CONFIG (HKCC) - текущая конфигурация оборудования (ссылка на ветку HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current). Здесь хранятся временные параметры подключенных в данный момент устройств, профили мониторов, принтеров и других аппаратных средств, которые активны при текущем запуске системы.Сам реестр хранится во множестве файлов. Расположение основных веток:
HKEY_LOCAL_MACHINE\BCD00000000 хранится в %SystemRoot%\Boot\BCDHKEY_LOCAL_MACHINE\SYSTEM - хранится в %SystemRoot%\System32\config\SYSTEMHKEY_LOCAL_MACHINE\SOFTWARE - хранится в %SystemRoot%\System32\config\SOFTWAREHKEY_LOCAL_MACHINE\SECURITY - параметры безопасности, хранящиеся в %SystemRoot%\System32\config\SECURITYHKEY_LOCAL_MACHINE\SAM - формируется в %SystemRoot%\System32\config\SAMHKEY_USERS\DEFAULT - формируется из %SystemRoot%\System32\config\DEFAULTHKEY_USERS\S-1-5-18, HKEY_USERS\S-1-5-19 и HKEY_USERS\S-1-5-20 - формируются из документов NTUSER.DAT, которые лежат в директориях %SystemRoot%\System32\config\systemprofile\, %SystemRoot%\ServiceProfiles\LocalService\ и %SystemRoot%\ServiceProfiles\NetworkService\HKEY_USERS\%SID_пользователя% - формируется из %USERPROFILE%\NTUSER.DATHKEY_USERS\%SID_пользователя%_Classes - формируется из %USERPROFILE%\AppData\Local\Microsoft\Windows\UsrClass.datТакже каталог %SystemRoot%\System32\config\RegBak применяется для бекапа реестра
Для изменения реестра существуют:
regedit.exe (или regedt32.exe - устаревший редактор для Windows NT/2000, сейчас является ссылкой на regedit.exe)reg.exeGet-ChildItem, Get-ItemProperty, Set-ItemProperty, New-Item, New-ItemProperty, Remove-ItemРаньше было обслуживание на основе файлов (File-Based Servicing, FBS): были .inf файлы с описанием изменений, а обновляемые системные файлы
перезаписывались новыми версиями непосредственно в %SystemRoot%\System32, а копия новой версии помещалась еще и в кэш защищенных системных файлов %SystemRoot%\System32\DLLcache
Сейчас используется обслуживание на основе компонентов (Component-Based
Servicing, CBS) с помощью TrustedInstaller.exe
Компонент представляет набор файлов, сгруппированных по назначению, функциональности и возможности многократного использования. В компонент входят библиотеки, исполняемые файлы, манифесты и так далее
Также появились статусы компонентов/обновлений (такие как установлен, активирован) и возможность ставить определенный функционал в операционной системе по мере необходимости
Благодаря этому обеспечиваются:
Управление компонентами осуществляется через:
OptionalFeatures.exe)Dism.exeGet-WindowsFeature и Enable-WindowsOptionalFeaturewinget для установки пакетов:
winget install <пакет> - установка пакетаwinget uninstall <пакет> - удаление пакетаwinget list - список установленных пакетовwinget show <пакет> - показать информацию о пакетеwinget source <опции> - управление репозиториями пакетовСлужбы могут быть:
.exe-файл, которые перечислены в реестре HKLM\SYSTEM\CurrentControlSet\Services.dll-библиотека, запускаемые через svchost.exe, например “Брандмауер Защитника Windows”Для служб в реестре есть поля: