Время на прочтение8 мин
Количество просмотров63K
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 11 |
|
Разработчик | Microsoft |
Исходный код | Закрытый исходный код / Shared source |
Первый выпуск | Windows 1.0x (20 ноября 1985) |
Последняя версия | Windows 11 (5 октября 2021) |
Последняя тестовая версия |
|
Метод обновления | Центр обновления Windows |
Менеджеры пакетов | Установщик Windows и Microsoft Store |
Поддерживаемые языки | Многоязычная |
Поддерживаемые платформы | IA-32, x86-64, ARM, ARM64 |
Тип ядра | Гибридное ядро |
Интерфейс | Windows Runtime, Windows API, .NET Framework, Универсальная платформа Windows, .NET Compact Framework, .NET, Windows Forms и Windows Presentation Foundation |
Лицензия | Microsoft EULA |
Состояние | Актуальное |
Предыдущая | MS-DOS |
Веб-сайт | support.microsoft.com/ru… |
Медиафайлы на РУВИКИ.Медиа |
Запрос «WIN» перенаправляется сюда; см. также другие значения.
Windows ([ˈwindəʊz]; с англ. — «Окна», сокр. Win) — семейство многозадачных операционных систем с графическим интерфейсом, выпускаемых корпорацией Microsoft. Работает на таких платформах, как IA-32, x86-64, ARM, ARM64 и др.
Первая операционная система Microsoft — Windows 1.0x — представляла графическую оболочку операционной системы MS-DOS. По состоянию на осень 2023 года последняя операционная система Microsoft — Windows 11[1].
Согласно данным ресурса StatCounter, на март 2023 года Windows — самая популярная операционная система в мире (доля на мировом рынке — 70 %)[2]. Однако она не является наиболее используемой операционной системой из-за распространённости Android[3].
Версии
За свою историю корпорация Microsoft выпустила не меньше 30 основных версий Windows.
В таблицу включены как активные (поддерживаемые) программные продукты, так и устаревшие согласно действующему регламенту жизненного цикла программного обеспечения. За первоначальным Windows следует (необязательно) брендовое название версии, затем номер релиза или его год. Для десктопных версий брендовое название часто пропущено, например WIndows 98 или Windows 10.
Условные обозначения:
- RTM — окончание поддержки первого обновления
- осн. — окончание действия лицензии для первого (основного) релиза
- SBL — окончание срока лицензии для производителей[4]
- retail — окончание срока лицензии для розничных покупателей
- SPx — окончание срока лицензии для различных дополнений (сервис-паков) к системе
- ext — полное окончание поддержки системы
- платный — платные окончание поддержки системы
Версии Microsoft Windows
Дата выхода | Название | Последняя версия | Дата прекращения поддержки[5] | Последняя версия встроенного браузера | Последняя версия DirectX | Семейство |
---|---|---|---|---|---|---|
20 ноября 1985 | Windows 1.0x | 1.04 (апрель 1987) | 31 декабря 2001 | Нет браузеров | N/A | Оболочка для MS-DOS |
9 декабря 1987 | Windows 2.0 Windows 2.1x |
2.11 (13 марта 1989) | 31 декабря 2001 | |||
1 мая 1990 (RTM)
22 мая 1990 (продаж) |
Windows 3.0 | 3.00a (31 октября 1990) | 31 декабря 2001 | |||
10 марта 1992 (RTM)
6 апреля 1992 (продаж) |
Windows 3.1 | 3.11 | 31 декабря 2001 | Internet Explorer 5 | ||
1 октября 1992 | Windows для рабочих групп 3.1 | 3.11 (31 декабря 1993) | 31 декабря 2001 | |||
24 июля 1993 (RTM)
27 июля 1993 (продаж) |
Windows NT 3.1 | 3.10.528 SP3 (10 ноября 1994) | 31 декабря 2001 | Windows NT | ||
4 сентября 1994 (RTM)
21 сентября 1994 (продаж) |
Windows NT 3.5 | 3.50.807 SP3 (21 июня 1995) | 31 декабря 2001 | |||
31 января 1994 | Windows 95 Plus | 3.50.807 SP3 (21 июня 1995) | 31 декабря 2001 | |||
27 мая 1995 (RTM)
30 мая 1995 (продаж) |
Windows NT 3.51 | 3.51.1057 SP5 (19 сентября 1996) | 31 декабря 2001 | 6.1 | Windows NT | |
11 июля 1995 (RTM)
24 августа 1995 (продаж) |
Windows 95 | 4.00.950C (4.03.1214) (26 ноября 1997) | 31 декабря 2000 (осн) 31 декабря 2001 (ext) |
Internet Explorer 5.5 | 6.1 | Windows 9x |
3 августа 1996 (RTM)
24 августа 1996 (продаж) |
Windows NT 4.0 | 4.00.1381 / SP6a SRP (26 июля 2001) | 31 декабря 2001 (осн.) 30 июня 2003 (SBL) 11 января 2005 (ext) |
Internet Explorer 6 | N/A | Windows NT |
12 мая 1998 (RTM)
25 июня 1998 (продаж) |
Windows 98 | 4.10.2222A (SE) (5 мая 1999) | 13 января 2004 (осн.) 31 марта 2004 (SBL) 11 июля 2006 (ext) |
9.0c | Windows 9x | |
7 декабря 1999 (RTM) 17 февраля 2000 (продажи) |
Windows 2000 | 5.0.2195 / 5.0 SP4 Rollup 1 v2 (13 сентября 2005) | 31 марта 2004 (retail) 31 марта 2005 (SBL) 12 июля 2005 (осн) 13 июля 2010 (ext) |
Windows NT | ||
12 июля 2001 | Windows Whistler | RTM | 8 апреля 2008 | |||
17 августа 2001 (RTM) 25 октября 2001 (продажи) |
Windows XP | 5.1.2600.5512 SP3 (21 апреля 2008) | 30 сентября 2004 (RTM) 10 сентября 2006 (SP1/SP1a) 30 июня 2008 (retail) 14 апреля 2009 (SP2/SP3 осн.) 13 июля 2010 (SP2) 22 октября 2010 (SBL) 8 апреля 2014 (ext) 9 апреля 2019 (для банкоматов и специализированных устройств) |
Internet Explorer 8 | ||
Май 2001 | Windows Longhorn | RTM | Ноябрь 2006 | Internet Explorer 9 | ||
25 октября 2001 | Windows XP Plus! | 9 января 2007 (осн.) 10 января 2012 (ext) |
Internet Explorer 8 | |||
28 марта 2003 | Windows XP 64-bit Edition | 5.2.3790 | 14 апреля 2009 (осн.) 8 апрель 2014 (ext) |
Internet Explorer 6 | ||
29 мая 2003 | Windows Server 2003 | 5.2.3790.3959 SP2 (13 марта 2007) | 30 июня 2009 (RTM) 13 июля 2010 (осн.) 14 июля 2015 (ext) |
Internet Explorer 8 | ||
25 апреля 2005 | Windows XP Professional x64 Edition | 5.2.3790.3959 SP2 (13 марта 2007) | 30 июня 2008 (retail) 31 января 2009 (SBL) 14 апреля 2009 (осн.) 8 апрель 2014 (ext) |
11 | ||
20 января 2006 | Windows Blackcomb | RTM | 14 июля 2009 | 9.0c | ||
4 марта 2006 | Windows Server 2003 R2 | 5.2.3790.3959 SP2 (13 марта 2007) | 30 июня 2009 (RTM) 13 июля 2010 (осн.) 14 июля 2015 (ext) |
Internet Explorer 8 | ||
1 ноября 2006 (RTM) 25 января 2007 (продажи) |
Windows Vista | 6.0.6001 / SP2 Build 6002 (25 мая 2009) | 13 апреля 2010 (RTM) 22 октября 2010 (retail) 12 июля 2011 (SP1) 22 октября 2011 (SBL) 10 апреля 2012 (осн.) 11 апреля 2017 (ext) |
Internet Explorer 9 | ||
16 июля 2007 | Windows Home Server | 5.2.4500 (16 июля 2007) | 8 января 2013 (ext) | Internet Explorer 8 | ||
17 июля 2007 | Windows Vienna | RTM | 14 июля 2009 | |||
27 февраля 2008 | Windows Server 2008 или Windows Longhorn Server | 6.0.6002 / SP2 build 6002 (25 мая 2009) | 12 июля 2011 (SP1) 13 января 2015 (осн) 14 января 2020 (ext) 10 января 2023 (платный) 9 января 2024 (бесплатный в Microsoft Azure) |
Internet Explorer 9 | 11 | |
13 июля 2009 (RTM) 25 октября 2009 (продажи) |
Windows 7 | 6.1.7601.25895 (12 марта 2022) | 9 апреля 2013 (RTM) 13 января 2015 (осн.) 14 января 2020 (ext.) 10 января 2023 (платный) 12 октября 2023 (платный, для редакции Windows Embedded 7 Standard) 8 октября 2024 (платный, для редакции Windows Embedded POSReady 7) |
Internet Explorer 11 / Microsoft Edge (только Chromium) | ||
22 июля 2009 (RTM) 22 октября 2009 (продажи) |
Windows Server 2008 R2 или Windows Server 7 | 6.1.7601 / SP1 Build 7601 (22 февраля 2011) | 13 января 2015 (осн) 14 января 2020 (ext)) 10 января 2023 (платный) 9 января 2024 (бесплатный в Microsoft Azure) |
Internet Explorer 9 / Microsoft Edge (только Chromium) | ||
6 апреля 2011 | Windows Home Server 2011 | 6.1.8400 | 12 апреля 2016 (ext) | |||
1 августа 2012 (RTM) 4 сентября 2012 (продажи) |
Windows Server 2012 или Windows Server 8 | 6.2.9200 (26 октября 2012) | 9 октября 2018 (осн) 10 октября 2023 (ext) 13 октября 2026 (платный) |
Internet Explorer 11 / Microsoft Edge (только Chromium) | 11.1 | |
23 августа 2012 (RTM)
26 октября 2012 (продажи) |
Windows RT | 9 января 2018 (осн)
10 января 2023 (ext) |
Internet Explorer 11/ Microsoft Edge | |||
25 июля 2012 (RTM) 26 октября 2012 (продажи) |
Windows 8 | 6.2.9200 (26 октября 2012) | 12 января 2016 (RTM) | |||
Windows Embedded 8 Standard: | 10 июля 2018 (осн) 11 июля 2023 (ext) |
Internet Explorer 11/ Microsoft Edge (только Chromium) | ||||
21 августа 2013 (RTM) 26 ноября 2013 (продажи) |
Windows Server 2012 R2 или Windows Server Blue | 6.3.9600 (17 октября 2013) | 9 октября 2018 (осн) 10 октября 2023 (ext) 13 октября 2026 (платный) |
Internet Explorer 11 / Microsoft Edge (только Chromium) | 11.2 | |
21 августа 2013 (RTM) 12 ноября 2013 (продажи) |
Windows 8.1 | 6.3.9600 (17 октября 2013) | 9 января 2018 (осн.) 10 января 2023 (ext) |
|||
Windows Embedded 8.1 Industry: | 10 июля 2018 года (осн.) 11 июля 2023 года (ext) |
|||||
9 июля 2015 (RTM) 29 июля 2015 (продажи) |
Windows 10 | 22H2 (18 октября 2022) | 13 октября 2020 (RTM) 14 октября 2025 (осн.) 12 января 2027 (осн.) 13 января 2032 (ext) для редакции Windows 10 LTSC 2021 |
Microsoft Edge / Internet Explorer 11 (оставлен для совместимости) | 12 | |
29 сентября 2016 (RTM) 15 октября 2016 (продажи) |
Windows Server 2016 или Windows Server 10 | 1607 (10.0.14393) (26 сентября 2016) | 11 января 2022 (осн.) 12 января 2027 (ext.) |
Internet Explorer 11 / Microsoft Edge (только Chromium) | ||
14 августа 2018 (RTM) 13 ноября 2018 (продажи) |
Windows Server 2019 или Windows Server 10 | 1809 (10.0.17763) (11 ноября 2018) | 9 января 2024 (осн.) 9 января 2029 (ext.) |
|||
24 июня 2021 (RTM)
17 августа 2021 (продажи) |
Windows Server 2022 или Windows Server 10 | RTM (1 сентября 2021) | 13 октября 2026 (осн.) 14 октября 2031 (ext.) |
|||
24 июня 2021 (RTM)
5 октября 2021 (продажи) |
Windows 11 | 22H2 (22621.1344) (14 марта 2023) | 12 января 2027 (осн.) 13 января 2032 (ext) |
Microsoft Edge | 13 |
Семейства
Все версии Windows классифицируются на семейства (и подсемейства): активные (Windows NT и Windows IoT) и устаревшие (Windows 9x, Windows Mobile и Windows Phone). Каждое семейство предназначено для конкретного сектора компьютерной индустрии: Windows NT — для потребителей, Windows Server — для серверов, Windows IoT — для специализированных устройств и т. д.
Графические интерфейсы и расширения для DOS
Логотип первых версий Windows
Первые версии Windows не были полноценными операционными системами, а представляли собой надстройки над операционной системой DOS. Они добавляли новые режимы работы процессора, многозадачность, стандартизировали интерфейсы аппаратного обеспечения и поддерживали единообразие пользовательских интерфейсов программ.
Для создания графического интерфейса использовались встроенные средства GDI и USER. Первые версии Windows состояли из трёх модулей: KERNEL, GDI и USER. KERNEL управлял памятью, запускал исполняемые файлы и загружал динамические библиотеки DLL. GDI отвечал за графику, а USER — за окна. Эти версии Windows работали на процессорах Intel 8086 и выше.
Список версий:
- Windows 1.0 (1985)
- Windows 2.0 (1987) — в системе появилась возможность запуска DOS-приложений в графических окнах, причём каждому приложению предоставлялись полные 640 КБ памяти. Улучшена поддержка процессоров 80286. В версии 2.03 (2.0/386) появилась поддержка процессоров 80386[6][7]
- Windows 2.1 (1988) — полная поддержка всех особенностей процессоров 80286 и 80386
- Windows 3.0 (1990) — улучшена поддержка процессоров 80386 и защищённого режима
- Windows 3.1 (1992) — серьёзно переработанная Windows 3.0: устранены UAE (фатальные ошибки прикладных программ), добавлен механизм OLE, печать в режиме WYSIWYG («что видишь, то и получишь»), шрифты TrueType, изменён диспетчер файлов, добавлены мультимедийные функции. Прекращена поддержка процессора 8086 и реального режима[8]
- Windows 3.2 (1994) — китайская версия Windows 3.1. Обновление было ограничено, поскольку оно исправляло только проблемы, связанные со сложной системой написания в китайском языке[9]
- Windows for Workgroups 3.11 (1993) — Windows для рабочих групп, первая версия ОС семейства с поддержкой локальных сетей. В системе также испытывались отдельные усовершенствования ядра, применённые позднее в Windows 95. С этой версии прекратилась поддержка процессора 80286 и стандартного режима
Windows 9x
Логотип первой системы семейства Windows 9x
Windows 9x — устаревшее семейство компьютерных операционных систем Microsoft Windows, которые выпускались с 1995 по 2000 год и были основаны на ядре Windows 95 и лежащей в его основе MS-DOS.
Система Windows 95 была выпущена в 1995 году и является первой в данном семействе[5][10][11]. Она отличалась новым пользовательским интерфейсом, поддержкой длинных имён файлов, автоматической конфигурацией периферийных устройств Plug and Play, возможностью запускать 32-битные приложения и наличием поддержки TCP/IP в системе. Windows 95 использовала вытесняющую многозадачность и каждое 32-битное приложение выполняла в своём адресном пространстве. К данному семейству также относятся Windows 98[5] и Windows Me[12][13].
Логотип второй системы семейства Windows 9x
Из соображений совместимости вся подсистема пользовательского интерфейса и графики оставалась 16-битной и мало отличалась от той, что была в Windows 3.x, в связи с чем операционные системы этого семейства не отличались безопасностью. Вследствие этого все вызовы в подсистему оборачивались в мьютекс по имени Win16Lock, который ещё и находился всегда в захваченном состоянии во время исполнения 16-битного приложения. В результате если 16-битное приложение зависало, то это немедленно блокировало всю операционную систему. Однако в 1999 году вышло второе исправленное издание.
Программный интерфейс был частью Win32 API, поддерживаемым Windows NT, поддерживаемой Windows NT, но его поддержка Юникода была очень ограниченной[14]. Кроме того, он не обладал должным уровнем безопасности (отсутствовали списки доступа к объектам и понятие «администратор»).
Windows 95 включала MS-DOS 7.0, но её функции сводились к загрузке и выполнению 16-битных DOS-приложений. Ядро Windows 95 — VMM — использовало DOS только для некоторых обращений, а главная функция DOS — файловая система FAT — не использовалась. Интерфейс между VMM и DOS никогда не публиковался, и Эндрю Шульман (автор книги «Недокументированный Windows 95») обнаружил недокументированные вызовы DOS, которые использовались только для поддержки VMM.
Список версий:
- Windows 95 (24 августа 1995 года) — в этой ОС появились кнопка «Пуск», панель задач и кнопки закрытия окон, а также возможности Интернета
- Windows 98 (25 июня 1998 года) — первая система, созданная специально для домашних пользователей, которая содержала улучшенный поиск информации на ПК и в Интернете, поддерживала DVD и USB, имела панель быстрого запуска программ. Последняя система, основанная на MS-DOS
- Windows 98 SE (Second Edition) (9 мая 1999 года)
- Windows ME (2000) — обладала улучшенным воспроизведением видео и музыки, повышенной надёжностью и System Restore, с Windows Media Player и Windows Movie Maker
Windows NT
Windows NT (аббр. от англ. New Technology) — семейство операционных систем, работающих на процессорах с архитектурами x86, x86-64, ARM[15][16]. До версии 4.0 включительно Windows поддерживала процессоры Alpha, MIPS и PowerPC. Все операционные системы этого семейства являются полностью 32- или 64-битными и не нуждаются в MS-DOS даже для загрузки. Только в этом семействе есть операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием, что и аналогичная версия для рабочих станций, но с добавлением суффикса, например «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003 серверные операционные системы называются добавлением суффикса «Server» и года выпуска.
Семейство Windows NT базируется на разделении адресных пространств между процессами, что позволяет каждому процессу работать с выделенной ему памятью. Однако он не может записывать данные в память других процессов, драйверов и системного кода.
Операционные системы семейства Windows NT относятся к ОС с вытесняющей многозадачностью. При этом процессорное время разделяется между потоками по принципу «карусели», где каждому потоку выделяется квант времени (в Windows 2000 — около 20 мс), если все потоки имеют одинаковый приоритет. Если поток отказывается от выделенного ему кванта времени, система перехватывает управление и передает его другому потоку, сохраняя при этом состояние всех регистров процессора в специальной структуре в оперативной памяти — контексте потока. Этого достаточно для возобновления работы потока в будущем.
Список версий:
- Windows NT 3.1 (1993)
- Windows NT 3.5 (1994)
- Windows NT 3.51 (1995)
- Windows NT 4.0 (1996)
- Windows 2000 — Windows NT 5.0 (2000)
- Windows XP[5][17] — Windows NT 5.1 (2001)
- Windows XP 64-bit Edition — Windows NT 5.2 (2003)
- Windows Server 2003 — Windows NT 5.2 (2003)
- Windows XP Professional x64 Edition — Windows NT 5.2 (2005)
- Windows Home Server — Windows NT 5.2 (2007)
- Windows Vista — Windows NT 6.0 (2007)
- Windows Server 2008 — Windows NT 6.0 (2008)
- Windows Small Business Server — Windows NT 6.0 (2008)
- Windows 7[18][19] — Windows NT 6.1 (2009)
- Windows Server 2008 R2 — Windows NT 6.1 (2009)
- Windows Home Server 2011 — Windows NT 6.1 (2011)
- Windows 8[20][21][22][23][24][25] — Windows NT 6.2 (2012)
- Windows Server 2012 — Windows NT 6.2 (2012)
- Windows 8.1[26] — Windows NT 6.3 (2013)
- Windows Server 2012 R2 — Windows NT 6.3 (2013)
- Windows 10[27][28][29][30] — Windows NT 10.0 (2015)[31][32][33]
- Windows Server 2016 — Windows NT 10.1 (2016)
- Windows Server 2019 — Windows NT 10.2 (2019)
- Windows 11 — Windows NT 10.0.22000 (2021)
- Windows Server 2022 — Windows NT 10.3 (2021)
Семейство мобильных операционных систем Microsoft Windows
Операционные системы реального времени данного семейства специально разработаны для мобильных устройств и поддерживают процессоры ARM, MIPS, SuperH и x86. В отличие от остальных операционных систем Windows эти системы продаются только вместе с готовыми устройствами: смартфонами, карманными персональными компьютерами, GPS-навигаторами, MP3-проигрывателями и др. Под термином Windows CE понимают только ядро операционной системы. Например, Windows Mobile 5.0 включает ядро Windows CE 5.0. Windows Phone и Windows 10 Mobile неактуальны в связи с тем, что уступили популярность Android и iOS.
Список версий:
- Windows CE
- Windows Mobile
- Windows Phone
- Windows 10 Mobile
Windows IoT
Windows IoT (ранее — Windows Embedded) — семейство операционных систем реального времени, специально разработанных для использования в качестве встраиваемых систем. Данные ОС имеют такое же ядро, как и версии семейства Windows CE, и поддерживают процессоры ARM, MIPS, SuperH и x86. Windows IoT включает дополнительные функции по встраиванию, такие как фильтр защиты от записи (EWF и FBWF), возможность загрузки с флеш-памяти, CD-ROM, сети, использование собственной оболочки системы и т. д.
Операционные системы данного семейства не продаются отдельно: они поставляются только вместе с готовыми устройствами, такими как банкоматы, медицинские приборы, навигационное оборудование, «тонкие» клиенты, VoIP-терминалы, медиапроигрыватели, цифровые рамки (альбомы), кассовые терминалы, платёжные терминалы, роботы, игровые автоматы, музыкальные автоматы и др.
Список версий[34]:
- Windows Embedded CE
- Windows Embedded Standard
- Windows Embedded POSReady
- Windows Embedded Enterprise
- Windows Embedded Industry
- Windows Embedded NavReady
- Windows Embedded Handheld
- Windows Embedded Server
- Windows 10 IoT Core
- Windows 10 IoT Core Services
- Windows 10 IoT Enterprise
Windows Server
Windows Server — семейство серверных систем, предназначенных для использования на серверных компьютерах и ноутбуах.
Логотип Windows Server 2008
Логотип Windows Server 2022
Список версий:
- Windows Server 2003
- Windows Server 2003 R2
- Windows Home Server 2007
- Windows Server 2008
- Windows Server 2008 R2
- Windows Home Server 2011
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
Windows Azure
Windows Azure — облачная операционная система компании Microsoft, предназначенная для разработки и запуска веб-приложений, которые выполняются на сервере поставщика, а не на компьютере пользователя. Входит в состав платформы Microsoft Azure[35].
Интегрированные программные продукты
В пакет Windows входят стандартные приложения[36], такие как браузер (Internet Explorer и Microsoft Edge), почтовый клиент (Outlook Express или Почта Windows), музыкальный и видеопроигрыватель (Проигрыватель Windows Media). Их компоненты могут использоваться в приложениях сторонних производителей с помощью технологий COM и OLE. Начиная с Windows 98 и более новых версий эти продукты являются неотъемлемой частью системы (ранее их можно было бесплатно скачать с официального сайта Microsoft, но для установки некоторых из них требовалась лицензионная версия ОС). Запуск этих программ под другими операционными системами возможен только с помощью эмуляторов среды Windows (Wine).
Список основных стандартных приложений:
- Paint
- WordPad
- Блокнот
- Internet Explorer
- Звукозапись
- Калькулятор
- Командная строка
- Подключение к удалённому рабочему столу
- Проводник
- Центр синхронизации
- Windows Power Shell
Microsoft Plus!
Коммерческий продукт, дополняющий возможности Microsoft Windows. Последней редакцией была Plus! SuperPack, которая включала заставки, темы, игры и мультимедийные приложения. Microsoft Plus! впервые был анонсирован 31 января 1994 года под кодовым названием Frosting[37]. Поддержка была прекращена в пользу Ultimate Extras для Windows Vista и Windows 7.
Популярность
Согласно данным ресурса StatCounter, на март 2023 года Windows — самая популярная операционная система в мире (доля на мировом рынке — 70 %)[2]. Среди достоинств операционных систем Microsoft Windows пользователи выделяют следующие[38]:
- простота использования;
- наличие разнообразного программного обеспечения сторонних производителей (AutoCAD, Photoshop и др.);
- игровая платформа;
- персонализация (частичная);
- автоматические обновления;
- драйверы для периферийных устройств и др.
На июнь 2019 года ОС Windows была установлена не менее чем на 88,5 % персональных компьютеров и рабочих станций. По данным компании Net Applications, на июнь 2019 года рыночная доля Windows составила 88,33 %. Среди различных версий Windows, по данным W3Schools, с июля 2017 года наиболее популярна Windows 10[39] (около 37 %). На февраль 2019 года доля мобильных версий Windows составила 0,16 %, версий для ПК — 74,0 %[39][40].
Популярность различных версий Windows по данным статистических агрегаторов, %[41][42]
Версия | Net Market Share, август 2014 |
GoStats.ru, август 2015 |
Февраль 2016 | Апрель 2016 | StatCounter | |||||||
Net Market Share | GoStats.ru | Net Applications | StatCounter[43] | Ноябрь 2017 | Март 2019 | Декабрь 2020 | Июнь 2022 | Март 2023 | Апрель 2023 | |||
Все версии | 91,68 | 84,76 | 88,66 | 90,10 | 88,77 | 83,29 | 76,50 | 74,21 | 77,10 | 75,50 | 74,14 | 69,43 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows 11 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 10,96 | 18,13 | 20,94 |
Windows 10 | N/A | 2,87 | 12,82 | 29,66 | 15,34 | 18,88 | 40,95 | 54,78 | 75,96 | 71,76 | 68,75 | 73,48 |
Windows 8 | 12,48 | 33,67 | 12,26 | 20,76 | 13,04 | 13,37 | 9,03 | 6,55 | 3,98 | 3,07 | 2,31 | 0,84 |
Windows 7 | 51,22 | 40,63 | 52,34 | 32,07 | 47,82 | 43,95 | 42,67 | 33,89 | 17,68 | 13,06 | 9,62 | 3,72 |
Windows XP | 23,89 | 6,55 | 11,24 | 7,42 | 10,63 | 7,09 | 3,89 | 1,97 | 0,79 | 0,40 | 0,40 | 0,40 |
По данным группы компаний Softline, в течение первого полугодия 2023 года продажи цифровых копий операционных систем Windows на российском рынке сократились на 78 % по сравнению с аналогичным периодом предыдущего года. Продажи коробочных версий Windows в РФ в годовом исчислении упали в 10 раз. Наблюдающаяся ситуация объясняется импортозамещением в сфере программного обеспечения в условиях сложившейся геополитической обстановки. В Softline отмечают, что по состоянию на август 2023 года распродаются складские остатки Windows и постепенно реализуется процесс отключения возможности приобретения ОС через Интернет[44].
Интересные факты
- В Windows нельзя создать папки con, prn, aux, nul, так как эти слова были зарезервированы для обозначения устройств ввода-вывода.
- На рекламу Windows 95 было потрачено более $300 млн.
- Создатели Windows разработали компьютерную версию игры Реверси для обучения пользователей обращению с мышкой посредством кликов по фишкам. Существует мнение, что для этих же целей была сделана игра «Сапёр»[45].
См. также
- Microsoft
- Билл Гейтс
- Пионеры Windows
- Windows API
- Проводник Windows
- Многозадачность
- Windows Script Host
Примечания
- ↑ Представлена Windows 11. Вести.Ру (24 июня 2021). Дата обращения: 9 октября 2023. Архивировано 5 октября 2021 года.
- ↑ 1 2 Desktop Operating System Market Share Worldwide (англ.). Statcounter GlobalStats. statcounter.com. Дата обращения: 9 октября 2023.
- ↑ Microsoft Gets Real, Admits Its Device Share is Just 14 % (англ.). ComputerWorld. computerworld.com. Дата обращения: 9 октября 2023.
- ↑ Лицензирование для сборщиков систем OEM. Дата обращения: 9 октября 2023. Архивировано 19 апреля 2014 года.
- ↑ 1 2 3 4 Политика жизненного цикла поддержки Microsoft. Дата обращения: 9 октября 2023. Архивировано 24 января 2018 года.
- ↑ The Apple vs. Microsoft GUI Lawsuit | Low End Mac. Дата обращения: 9 октября 2023. Архивировано 28 июня 2018 года.
- ↑ APPLE COMPUTER, INC. v. MICROSOFT CORP., 35 °F.3d 1435 (9th Cir. 1994). Дата обращения: 9 октября 2023. Архивировано из оригинала 14 декабря 2007 года.
- ↑ Поиск сведений о жизненном цикле продуктов и служб. Microsoft Ignite. learn.microsoft.com. Дата обращения: 9 октября 2023.
- ↑ Microsoft Windows Simplified Chinese 3.2 Upgrade is Available (англ.). Microsoft: Help and Support. support.microsoft.com. Дата обращения: 9 октября 2023. Архивировано 8 ноября 2006 года.
- ↑ Windows 95 turns 15: Has Microsoft’s OS peaked? — CNN.com. Дата обращения: 9 октября 2023. Архивировано 28 апреля 2019 года.
- ↑ Microsoft Internet Explorer Web Browser Available on All Major Platforms, Offers Broadest International Support | Stories. Дата обращения: 9 октября 2023. Архивировано 15 января 2008 года.
- ↑ Improving “Cold Boot” Time for System Manufacturers (англ.). Microsoft. microsoft.com (4 декабря 2001). Дата обращения: 9 октября 2023. Архивировано 13 января 2010 года.
- ↑ Windows Millennium Edition: All About Me (англ.). PCWorld. pcworld.com (24 июля 0200). Дата обращения: 9 октября 2023. Архивировано 1 августа 2013 года.
- ↑ Unicode support in Windows 95 and Windows 98. Дата обращения: 9 октября 2023. Архивировано 8 октября 2009 года.
- ↑ Inside Windows NT — Helen Custer — Google Книги. Дата обращения: 9 октября 2023. Архивировано 28 июня 2018 года.
- ↑ Paul Thurrott. Windows Server 2003: The Road To Gold Part One: The Early Years (англ.). Paul Thurrott’s SuperSite for Windows. winsupersite.com (24 января 2003). Дата обращения: 9 октября 2023. Архивировано 1 января 2005 года.
- ↑ Microsoft Windows XP — Home Edition review: Microsoft Windows XP — Home Edition — CNET. Дата обращения: 9 октября 2023. Архивировано 24 июня 2018 года.
- ↑ Windows 7 Unveiled Today at PDC 2008 — Windows Experience Blog. Дата обращения: 9 октября 2023. Архивировано 1 ноября 2008 года.
- ↑ How Libraries & HomeGroup Work Together in Windows 7 — Windows Experience Blog. Дата обращения: 9 октября 2023. Архивировано 2 ноября 2008 года.
- ↑ Test Driving Windows 8 RTM | PCWorld. Дата обращения: 9 октября 2023. Архивировано 21 сентября 2018 года.
- ↑ Matt Rosoff. Here’s Everything You Wanted To Know About Microsoft’s Upcoming iPad Killers Read (англ.). Business Insider. articles.businessinsider.com (9 февраля 2012). Дата обращения: 9 октября 2023. Архивировано 22 января 2013 года.
- ↑ Brandon LeBlanc. Blogging Windows: Announcing the Windows 8 Editions (англ.). Wndows. windowsteamblog.com. Дата обращения: 9 октября 2023. Архивировано 18 апреля 2012 года.
- ↑ Building Windows for the ARM processor architecture — Building Windows 8. Дата обращения: 9 октября 2023. Архивировано 21 мая 2018 года.
- ↑ Microsoft talks Windows Store features, Metro app sandboxing for Windows 8 developers — The Verge. Дата обращения: 9 октября 2023. Архивировано 10 сентября 2012 года.
- ↑ Build: More Details On Building Windows 8 Metro Apps | PCMag.com. Дата обращения: 9 октября 2023. Архивировано из оригинала 17 февраля 2012 года.
- ↑ Windows 8.1 now available! — Windows Experience Blog. Дата обращения: 9 октября 2023. Архивировано 3 ноября 2019 года.
- ↑ Announcing Windows 10 — Windows Experience Blog. Дата обращения: 9 октября 2023. Архивировано 10 сентября 2015 года.
- ↑ Windows 10 1511 Build 10586 November Update Is Out, Here’s How To Update Now | Redmond Pie. Дата обращения: 9 октября 2023. Архивировано 3 января 2016 года.
- ↑ What’s New in Windows 10’s First Big November Update. Дата обращения: 9 октября 2023. Архивировано 28 июня 2018 года.
- ↑ Windows switch to Git almost complete: 8,500 commits and 1,760 builds each day | Ars Technica. Дата обращения: 9 октября 2023. Архивировано 24 мая 2017 года.
- ↑ Microsoft Confirms that Windows 10 will also be Version 10 Internally | Windows 10 content from SuperSite for Windows. Дата обращения: 9 октября 2023. Архивировано из оригинала 16 октября 2017 года.
- ↑ Microsoft Confirms Windows 10 Kernel Version Update to 10.0 — Softpedia. Дата обращения: 9 октября 2023. Архивировано 9 октября 2015 года.
- ↑ Microsoft confirms that Windows 10 kernel will be 10.0. Дата обращения: 9 октября 2023. Архивировано 5 марта 2016 года.
- ↑ What is Windows Embedded. Дата обращения: 9 октября 2023. Архивировано 18 сентября 2009 года.
- ↑ Знакомство с Azure. Azure. azure.microsoft.com. Дата обращения: 9 октября 2023.
- ↑ Загрузки для Windows. windows.microsoft.com. Дата обращения: 9 октября 2023. Архивировано 26 июня 2013 года.
- ↑ Consumer Companion for Windows 98 Offers Powerful New Utilities Desktop Themes and Exciting Games (англ.). Microsoft. microsoft.com (10 февраля 2009). Дата обращения: 9 октября 2023. Архивировано 10 февраля 2009 года.
- ↑ Достоинства и недостатки операционной системы. Достоинства и недостатки операционной системы Windows. BiathlonMordovia. biathlonmordovia.ru. Дата обращения: 9 октября 2023.
- ↑ 1 2 OS Platform Statistics. w3schools.com. Дата обращения: 9 октября 2023. Архивировано 7 июня 2018 года.
- ↑ Mobile Devices Statistics. www.w3schools.com. Дата обращения: 9 октября 2023. Архивировано 10 апреля 2019 года.
- ↑ Market Share Statistics for Internet Technologies (англ.). Net Marketshare. netmarketshare.com. Дата обращения: 9 октября 2023.
- ↑ Net Applications (англ.). Net Applications. netapplications.com. Дата обращения: 9 октября 2023.
- ↑ StatCounter Global Stats — Browser, OS, Search Engine including Mobile Usage Share (англ.). gs.statcounter.com. Дата обращения: 9 октября 2023. Архивировано 26 мая 2012 года.
- ↑ Продажи цифровых копий и коробочных версий Windows от Microsoft резко упали в России. Forbes. forbes.ru (30 августа 2023). Дата обращения: 9 октября 2023.
- ↑ Windows — что это такое? Internet-lab.ru. internet-lab.ru (9 сентября 2009). Дата обращения: 9 октября 2023.
Литература
- Ливингстон Б., Таррот П. Секреты Microsoft Windows Vista = Windows Vista Secrets. — М.: Диалектика, 2007. — С. 456. — ISBN 0-7645-7704-2.
- Мак-Федрис П. Microsoft Windows 7. Полное руководство = Microsoft Windows 7 Unleashed. — М.: Вильямс, 2012. — С. 800. — ISBN 978-5-8459-1614-3.
- Томашевский Д. Microsoft Windows 8. Руководство пользователя = Microsoft Windows 8. Руководство пользователя. — Вильямс, 2013. — С. 352. — ISBN 978-5-8459-1827-7.
Ссылки
- http://windows.microsoft.com/ru-ru/windows/home — официальный сайт Windows
- Центр загрузки Майкрософт: Windows
- Официальный блог Windows. Дата обращения: 9 октября 2023.
Windows — самая популярная ОС для ноутбуков и десктопов. Позволяет хранить, просматривать и редактировать файлы, а также запускать игры и ПО для работы. Обеспечивает подключение к интернету. Переводится с английского как «Окна», которые можно перемещать, менять размер или разворачивать.
Надстройки над MS-DOS
Содержание
- Надстройки над MS-DOS
- Windows 1.0 — принесла на ПК графический интерфейс
- Windows 2.0 — познакомила с Excel и Word
- Windows 3.0 — требовала HDD
- Windows 3.1 — добавлены шрифты TrueType для издателей
- Windows 95 — ОС в полном смысле, начало доминирования платформы
- Windows 98 — начало эпохи USB и DVD
- Windows 2000 — профессиональная платформа на ядре NT
- Windows ME — сильные новые фишки и слабый коммерческий успех
- Windows XP — любимая ОС миллионов пользователей
- Windows Vista — требовательная к железу преемница XP
- Windows 7 — классика, которую ценят и сегодня
- Windows 8 и 8.1 — быстрый запуск, USB 3.0 и магазин приложений
- Windows 10 — познакомила с Microsoft Edge, привычный рабочий стол вернулся
- Windows 11 — центрирована Панель задач
Первую «Винду» Microsoft выпустила в середине восьмидесятых минувшего века. С тех пор вышло множество версий. На сегодня самая свежая — Windows 11. По всей видимости, в работе находится очередная — Windows 12. Отметим, что изначально Windows была скорее оболочкой для «ДОСа», чем операционной системой.
Windows 1.0 — принесла на ПК графический интерфейс
Выпущена 20 ноября 1985 года. Стала первой попыткой «Майкрософт» внедрить 16-битный графический интерфейс (GUI). По нынешним меркам графика примитивная, но для своего времени была крутой. Работала только на довольно продвинутом для своего времени железе, поэтому особенно популярной не стала. Данная оболочка для MS-DOS поддерживала ограниченную многозадачность. Заложила основу последующих версий ОС. Требовала для работы лишь 256 килобайт ОЗУ.
Windows 2.0 — познакомила с Excel и Word
Дебютировала 9 декабря 1987 года. Предлагала рабочую среду на основе 16-битного графического интерфейса. Первые версии Microsoft Word и Excel запускались именно под данной платформой. Принесла «Панель управления» — различные настройки и варианты конфигурации были собраны в одном месте. Отличалась от первой версии тем, что позволяла приложениям перекрывать друг друга, а также сворачивать/разворачивать окна программ. Были также выпущены редакции 2.10 и 2.11 с незначительными усовершенствованиями. Системе было достаточно 256 Кбайт оперативной памяти.
Windows 3.0 — требовала HDD
Увидела свет 22 мая 1990 года. Стала первой платформой семейства, которой требовался жесткий диск. Напомним, что первые две могли работать с дискет на компе без HDD. Была создана под компьютеры с микропроцессорами 8086. Пользовалась относительным коммерческим успехом, которого не хватало первой и второй Windows. Обладала как обычной, так и расширяемой памятью. С комфортом работала на ПК с 60 МБ HDD и 4 МБ RAM, но могла запуститься на более слабом — начиная с 640 КБ оперативной памяти и 6,5-мегабайтным накопителем.
Windows 3.1 — добавлены шрифты TrueType для издателей
Релиз платформы датирован 18 марта 1992 года. Были добавлены шрифты TrueType, благодаря которым стала достойной издательской платформой. Требовала для работы 1 мегабайт оперативной памяти — не так уж мало для своего времени. Поддерживала управление программами MS-DOS с помощью мыши. Стала первой ОС версией, которая поставлялась на CD. После установки занимала на HDD компьютера 10—15 МБ, хотя компакт-диск способен был вмещать до 700 мегабайт данных.
Windows 95 — ОС в полном смысле, начало доминирования платформы
Вышла 15 августа 1995 года. Стала первой полноценной операционной системой. Ведь первая, вторая и третья были лишь надстройками над MS-DOS, которые добавляли графический интерфейс и продвинутые функции. Появился «Пуск» и главное меню, куда можно было зайти по нажатию данной кнопки. Интерфейс стал 32-битным. Включала также «Диспетчер устройств» для управления оборудованием компьютера. Добавлена удобная фишка — клик правой кнопкой мыши для доступа к контекстному меню, которое сильно упростило работу с компьютером.
Пользователи получили Панель задач и расширенные возможности многозадачности. Через некоторое время был добавлен браузер Internet Explorer (IE). Функция Plug-and-Play («Подключи и работай») позволила автоматически устанавливать аппаратные устройства. 31.12.2001 системы Windows 95, Windows 3, Windows 2 и Windows 1 были объявлены устаревшими, а поддержка платформ прекращена. Минимально требовала: 50 МБ HDD/4 МБ ОЗУ. Рекомендованная конфигурация — вдвое выше.
Windows 98 — начало эпохи USB и DVD
Запущена 15 мая 1998 года и не стала абсолютно новой ОС. Была более развитой и функциональной версией Windows 95. Получила Internet Explorer 4.0, Адресную книгу, Outlook Express, NetShow Player и Microsoft Chat. 5 мая 1999 года дебютировала версия Windows 98 SE, в которой плеер NetShow был заменен проигрывателем Windows Media. Обеспечила дополнительную безопасность важных файлов на ПК — к примеру, поддерживала резервное копирование системного реестра. Нуждалась в 16 МБ оперативной памяти и 128 МБ диске (как минимум). На компе с 24 МБ ОЗУ и 1 ГБ накопителем уже летала. Добавила поддержку новых устройств и технологий, в том числе:
- ACPI — эффективное управление энергопотреблением и конфигурацией ПК.
- AGP — продвинутый стандарт интерфейса подключения графической карты к «материнке». Ускорил обмен данными между видеокартой и процессором по сравнению с подключением через обычный слот PCI. Повысил быстродействие в играх и приложениях, которые требовали высокой производительности 3D-графики.
- IEEE 1394 (FireWire) — стандарт, который применялся для обмена данными с некоторым оборудованием, в том числе: камерами, внешними дисками и аудиоустройствами.
- DVD — работала с оптическими приводами цифровых видеодисков, значительно более вместительных, чем CD.
- USB — стандарт кабельного подключения внешних и периферийных устройств к ПК.
Система оказалась довольно долгоиграющей. Расширенная поддержка была прекращена спустя многие годы после дебюта — только 11.07.2006.
Windows 2000 — профессиональная платформа на ядре NT
Порой данную ОС называли NT 5.0, поскольку базировалась на ядре серверных систем. Стала началом отхода от ядра Windows 9x. Официально дебютировала 17 февраля 2000 года и поставлялась в четырех редакциях — серверной, профессиональной, расширенной серверной и ориентированной на центры обработки данных.
Эксперты считают данную платформу одной из самых безопасных операционных систем в истории. Поддерживала различные языки. Принесла функцию автоматического обновления. Стала первой Windows с поддержкой спящего режима. Легла в основу Windows XP и последующих версий. Минимально требовала 32 МБ оперативной памяти и 2-гигабайтного жесткого диска. Но рекомендовано больше — 128 МБ ОЗУ и 20 ГБ HDD.
Windows ME — сильные новые фишки и слабый коммерческий успех
ОС считается самой неудачной в семействе. Последняя в серии Windows 9x, была выпущена 14 сентября 2000 года. Предназначалась для домашних пользователей. Принесла инструментарий восстановления системы. Получила IE 5.5, Windows Media Player 7. И, главное, Windows Movie Maker — программа позволяла пользователю создавать фильмы. К сожалению, больше запомнилась своими ошибками, чем новыми функциями. На компьютере с 32 МБ оперативной памяти и 200 МБ HDD запускалась, но могла подтормаживать. При 128 МБ ОЗУ и 500-мегабайтном жестком диске работала уже без лагов.
Windows XP — любимая ОС миллионов пользователей
Официальный релиз состоялся 25 октября 2001 года. Имела кодовое имя «Whistler» и полное название, которое сегодня мало кто помнит — Windows eXPerience. Домашняя (Home) версия была 32-битной, а профессиональная (Professional) — 32- и 64-битной. 64-разрядный вариант был добавлен 28.03.2003, а Professional x64 — 24.04.2005. Требовала 1,5 ГБ (и более) HDD. Запускалась на ПК с 64 МБ ОЗУ, но скорость была так себе — 128 МБ исправляли ситуацию. Пользовалась огромной популярностью, обладала классическим интерфейсом и запускалась быстро. В основе ядро NT 5.1. Microsoft долго поддерживала данную платформу и прекратила только 08.04.2014.
Windows Vista — требовательная к железу преемница XP
«Висту» выпустили 30 января 2007 года, а прекратилась поддержка 11.04.2017. Была известна также под кодовым именем «Longhorn». Базировалась на ядре NT 6.0. Радовала красотой своего обновленного интерфейса. Получила Windows Media 11 и Internet Explorer 7. Защитник Windows также дебютировал в данной системе. Стала первой версией «Винды», для установки которой использовался DVD-ROM. Получила ряд сильных для своего времени фишек — фотогалерею, распознавание речи и программу Windows DVD Maker для создания цифровых видеодисков с фильмами, роликами, изображениями и музыкой. Благодаря данному ПО меню диска могло выглядеть, как созданное профессионалами.
Понравилась некоторым геймерам, поскольку DirectX 10 был интегрирован в систему. Принесла «Контроль учетных записей» (UAC) — продвинутый инструмент безопасности. Предполагалось, что пользователь одобрит или отклонит изменения, которые вносит ПО. На практике не особо помог, поскольку люди подтверждали практически всё. Не стала успешной из-за высокого потребления ресурсов компьютера, что приводило к медленной работе на компьютерах с типичной для своего времени конфигурацией. Не тормозила при 1 ГБ оперативной памяти и 40 ГБ жестком диске, хотя минимальные требования были вдвое ниже.
Windows 7 — классика, которую ценят и сегодня
Релиз ОС состоялся 22 октября 2009 года. Расширенную поддержку завершили спустя более чем 10 лет — 14.01.2020. Принесла преодоление трудностей, с которыми столкнулась Vista. В основании — ядро NT 6.1. Платформа оказалась крайне удачной — стабильной, быстрой и простой в использовании. Запуск ускорился и появилась расширенная поддержка оборудования, а также мультисенсорных дисплеев.
И в настоящее время успешно работает на многих компах — требования к железу невелики, поэтому шустро запускается на слабых и старых устройствах. 32-битная версия могла запуститься на ПК с 1 ГБ ОЗУ/16 ГБ HDD. 64-разрядная — при 2 ГБ RAM и 20-гигабайтном диске. Чтобы работала без тормозов — лучше увеличить оперативную память до 4 ГБ. Читайте в «Блоге системного администратора» пошаговую инструкцию по установке данной ОС на ноут или стационарный ПК:
Windows 8 и 8.1 — быстрый запуск, USB 3.0 и магазин приложений
Восьмая версия вышла 26 октября 2012 года. Ядро системы — NT 6.2. Интерфейс стал «плиточным», что не понравилось многим пользователям. Новое ПО и технологии позволяли системе работать быстрее предшественниц. Минимальные и рекомендуемые требования остались как у седьмой. Получила поддержку устройств USB 3.0, интернет-магазин для загрузки и Internet Explorer 10. Была также повышена безопасность. Существенно переботан «Диспетчер задач». Были как 32-, так и 64-битная версии. В Windows 8.1 (вышла 17.10.2013) с ядром NT 6.3 вернулся «Пуск».
Windows 10 — познакомила с Microsoft Edge, привычный рабочий стол вернулся
29 июля 2015 года появилась данная ОС, которую позиционировали как универсальную — не только для компов, но также смартфонов и планшетов. Кроме привычного IE, получила новый браузер Microsoft Edge. Исправила недочеты пользовательского интерфейса, которые принесла Windows 8. Системные требования не изменились по сравнению с восьмой. Голосовой помощник Cortana был интегрирован в панель поиска. Версия ядра NT 10. Поддерживает виртуальные рабочие столы. Поддержка завершится в октябре—ноябре 2025 года.
Windows 11 — центрирована Панель задач
Выпущена 5 октября 2021 года. Кнопка «Пуск» переместилась слева в центр Панели задач, что было непривычно, особенно поначалу. Добавлена возможность установки Android-приложений. Улучшена поддержка игр и мультимедиа. Повышена безопасность системы, устойчивость к вредоносным программам и кибератакам. Усовершенствована поддержка экранов HDR. Повышены способности для работы на устройствах с тачскринами — например, на планшетах. Минимально система требует 4-гигабайтного ОЗУ и жесткого диска или твердотельного (SSD) накопителя на 64 ГБ. Ядро ОС — NT 10.
Какая Windows на вашем ноутбуке/настольном ПК? Напишите в комментариях.
5
5
голоса
Рейтинг статьи
Структура ОС Windows
Общее описание структуры системы
Архитектура ОС Windows (в данном разделе она излагается, следуя главным образом
[
Кастер
]
и
[
Руссинович
]
), претерпела ряд изменений в процессе эволюции. Первые версии системы имели микроядерный дизайн, основанный на микроядре Mach, которое было разработано в университете Карнеги-Меллона. Архитектура более поздних версий системы микроядерной уже не является.
Причина заключается в постепенном преодолении основного недостатка микроядерных архитектур — дополнительных накладных расходов, связанных с передачей сообщений. По мнению специалистов Microsoft, чисто микроядерный дизайн коммерчески невыгоден, поскольку неэффективен. Поэтому большой объем системного кода, в первую очередь управление системными вызовами и экранная графика, был перемещен из адресного пространства пользователя в пространство ядра и работает в привилегированном режиме. В результате в ядре ОС Windows переплетены элементы микроядерной архитектуры и элементы монолитного ядра (комбинированная система). Сегодня микроядро ОС Windows слишком велико (более 1 Мб), чтобы носить приставку «микро». Основные компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах.
В тоже время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром.
Высокая модульность и гибкость первых версий Windows NT позволила успешно перенести систему на такие отличные от Intel платформы, как Alpha (корпорация DEC), Power PC (IBM) и MIPS (Silicon Graphic). Более поздние версии ограничиваются поддержкой архитектуры Intel x86.
Упрощенная схема архитектуры, ориентированная на выполнение Win32-приложений, показана на
рис.
1.4.
Рис.
1.4.
Упрощенная архитектурная схема ОС Windows
ОС Windows состоит из компонентов, работающих в режиме ядра, и компонентов, работающих в режиме пользователя. Несмотря на миграцию системы в сторону монолитного ядра она сохранила некоторую структуру. В схеме, представленной на
рис.
1.4, отчетливо просматриваются несколько функциональных уровней, каждый из которых пользуется сервисами более низкого уровня.
Задача уровня абстрагирования от оборудования (hardware abstraction layer, HAL) — скрыть аппаратные различия аппаратных архитектур для потенциального переноса системы с одной платформы на другую.
HAL предоставляет выше лежащим уровням аппаратные устройства в абстрактном виде, свободном от индивидуальных особенностей. Это позволяет изолировать ядро, драйверы и исполнительную систему ОС Windows от специфики оборудования (например, от различий между материнскими платами).
Ядром обычно называют все компоненты ОС, работающие в привилегированном режиме работы процессора или в режиме ядра. Корпорация Microsoft называет ядром (kernel) компонент, находящийся в невыгружаемой памяти и содержащий низкоуровневые функции операционной системы, такие, как диспетчеризация прерываний и исключений, планирование потоков и др. Оно также предоставляет набор процедур и базовых объектов, применяемых компонентами высших уровней.
Ядро и HAL являются аппаратно-зависимыми и написаны на языках Си и ассемблера. Верхние уровни написаны на языке Си и являются машинно-независимыми.
Исполнительная система (executive) обеспечивает управление памятью, процессами и потоками, защиту, ввод-вывод и взаимодействие между процессами. Драйверы устройств содержат аппаратно-зависимый код и обеспечивают трансляцию пользовательских вызовов в запросы, специфичные для конкретных устройств. Подсистема поддержки окон и графики реализует функции графического пользовательского интерфейса (GUI), более известные как Win-32-функции модулей USER и GDI
В пространстве пользователя работают разнообразные сервисы (аналоги демонов в Unix), управляемые диспетчером сервисов и решающие системные задачи. Некоторые системные процессы (например, обработка входа в систему) диспетчером сервисов не управляются и называются фиксированными процессами поддержки системы. Пользовательские приложения (user applications) бывают пяти типов: Win32, Windows 3.1, MS-DOS, POSIX и OS/2 1.2. Среду для выполнения пользовательских процессов предоставляют три подсистемы окружения: Win32, POSIX и OS/2. Таким образом, пользовательские приложения не могут вызывать системные вызовы ОС Windows напрямую, а вынуждены обращаться к DLL подсистем (краткое определение dll имеется в приложении).
Основные компоненты ОС Windows реализованы в следующих системных файлах, находящихся в каталоге system32:
- ntoskrnl.exe — исполнительная система и ядро;
- ntdll.dll — внутренние функции поддержки и интерфейсы диспетчера системных сервисов с функциями исполнительной системы;
- hal.dll — уровень абстрагирования от оборудования;
- win32k.sys — часть подсистемы Win32, работающая в режиме ядра;
- kernel32.dll, advapi32.dll, user32.dll, gdi32.dll — основные dll подсистемы Win32.
Для рядовых пользователей работа с ПК под управлением Windows — это как полёт в самолёте. С одной стороны дико тошнит от багов и глюков, а с другой – выйти всё равно некуда. Zip File, мамкины хаЦкеры. С вами Денчик и нынче мы наконец-то обсудим верхние уровни устройства операционной системы Windows. Рассмотрим детально процесс загрузки, архитектурные особенности и нюансы. Ну и конечно же разберём потенциальные уязвимости, которые могут встречаться в операционных процессах данной системы. Если вам интересна данная тема и вы давненько хотите узнать, что же скрывается в неё под капотом. Тогда устраивайтесь по удобней, наливайте свежую порцию чего-нибудь по забористей и приготовьтесь к путешествию в полную Виндузятню. Погнали.
Но перед тем, как мы начнём обсуждение основной темы, я бы хотел рассказать вам о партнёрах данного выпуска, хостинг-провайдере FirstVDS. FirstVDS — это крупный хостинг-провайдер, который на рынке уже 20 лет. 6 декабря ребята начали отмечать юбилей, и в честь этого праздника запустили крутейшую акцию. Что же будет 6 декабря? Будут скидки, занимательная статистика для клиентов, розыгрыш техники Apple и игра FirstRunner. Игра FirstRunner была создана разработчиками специально к 20-летию FirstVDS. Участникам предлагается помочь Ферст Джону пробежать от медленного 2002 до сверхбыстрого 2022. Играйте, ищите пасхалки, входите в ТОП и получайте дополнительный подарки. Каждому клиенту, который поиграет в игру, выпадает возможность выиграть макбук, айфон, плейстейшн или сертификаты на баланс. FirstVDS будет ждать всех на странице акции с 6 по 13 декабря! Присоединяйтесь по ссылке в описании к видео.
Стандартное устройство машины
Ну а мы возвращаемся к основной теме нашего выпуска. Как вы помните, эталонно любая машина состоит у нас из процессора, исполняющего команды программ, быстрой памяти (ОЗУ), дискового пространства для долговременного хранения и подключения к сетке.
Касательно этих терминов вроде бы всё просто и очевидно, однако и по сей день многие ITшники называют «программами» то, что на поверку является приложением. Не путайте пожалуйста. Это совершенно разные вещи.
Окей. В целом картина выглядит следующим образом. На прикладном уровне находятся вышеупомянутые приложения. Они взаимодействуют непосредственно с операционной системой.
В данном случае под операционной системой я подразумеваю совокупность ядра (Kernel) и драйверов устройств. Последние соответственно относятся к самому нижнему, так называемому, железному уровню.
Сегодня мы будем акцентировать внимание на среднем, операционном уровне, который позволяет железу работать с протоколами, методами, периферийной историей и прочими интересными штуками.
Для того, чтобы не писать драйвера для каждого мало-мальски значимого устройства посредством ассемблера, умные дядьки придумали операционные системы.
Ключевые версии Windows
Если речь заходит о Windows, то тут можно выстроить поистине гигантский таймлайн из версий. Я специально включил в подборку не все, а только наиболее значимые версии мелкомягкой ОСи.
Из тех, с которыми вы ещё можете столкнуться тут Windows XP. Я буквально пару лет назад работал в крупной конторе, где 90% парка состояло из ХРюш и никого это особо не парило. Как говорится, лучшее, враг хорошего.
Windows Server 2003 был весьма прорывным и дико сложным для освоения на то время. Именно с него начинается эпоха сисадминства в России. Восьмой сервер в свою очередь был чутка дружелюбнее.
Однако почему-то дико тяжёлым и ел столько оперативы, что запустить его на одной физической тачке с Касперским было практически нереально.
А учитывая то, что SSDшников ещё не было от слова совсем, удовольствия админы получили изрядную порцию.
Седьмая Винда имела кучу проблем с совместимостью. Хотя со временем с помощью обнов и сервис-паков это исправили. Точно также Мелкомягкие допилили и Восьмой сервер выпустив R2 версию, которая, как по мне и по сей день является практически идеальным решением для мелких и средних контор.
Ну про остальные ОСи говорить в целом особо нечего, ибо вы и сами можете попробовать их в деле у себя дома или на рабочих местах.
По 16 серваку в связке с 10 виндой в роли клиента у меня кстати есть целый авторский видеокурс. Можете чекнуть как-нибудь на досуге, если любите иногда развиваться, а не только писю гонять.
Также для развития очень полезно ежедневно учить команды для оперативного взаимодействия с командной строкой системы.
Как показывает практика, если вы шарите, то набрать команду можно в разы быстрее, нежели тыкать мышью в иконки. Рекомендую.
Application Programming Interface (API)
Интерфейс программного взаимодействия или API позволяет одной программе взаимодействовать с другой. Например, приложению с Windows.
API также имеют разные версии. Для 32 разрядных ОС они одни, для 64 разрядных другие.
Если в теме, напишите в комментах по каким причина 32 разрядные операционки до сих пор существуют и почему в самом ближайшем будущем их исчезновение в принципе невозможно.
Даю подсказку. Это как-то связано с особенностями программ. Как вы помните, программа – это набор инструкций для выполнения. Тут всё логично. Однако давайте помимо программы введём ещё такое понятие, как процесс.
Процесс – это совокупность из загруженного и исполняемого набора инструкций и контейнера для ресурсов. Ни больше ни меньше.
Любой процесс обладает рядом особенностей. Наиболее важным для вас из этого списка является PID. Он же Process ID. Он же идентификатор процесса.
Давайте сразу рассмотрим пример. Как видно в таскменеджере, запущенная программа, в данном случае блокнот, может в момент работы создавать несколько разных процессов.
Один процесс может запускать целое дерево из созависимых процессов. И каждый процесс в этом дереве будет иметь равные права. Это же работает в обратную сторону.
Т.е. если вы хлопните какой-нибудь процесс Explorer, всё что так или иначе связано с интерфейсом у вас отвалится. Это в целом достаточно удобная штука. Также для расширенной работы с процессами рекомендую юзать Sysinternals.
Это такой набор расширенных системных инструментов Windows от Марка Руссиновича, позволяющий получить больше информации, чем при апеллировании стандартными инструментами.
Внутри процессов у нас существуют потоки исполнения (threads). Т.е. то, что Windows может запускать на ядре процессора на исполнение.
Также внутри работающего процесса есть как минимум один поток. Windows выделяет каждому потоку квант времени для выполнения на процессоре и быстро переключает исполняющиеся потоки.
Именно это и создаёт так называемую иллюзию «параллельности» работы приложений. Ключевая идея тут заключается в разделении задач на разные потоки, чтобы не было «подвисаний».
Например, один поток рисует графический интерфейс, а другой — выполняет сложную работу. Всё, как в жизни. От каждого по возможностям на благо общего дела.
Архитектура
Windows и приложения – это, как мы знаем исполняемый код, поэтому существует задача ограничения возможностей приложений. В современных процессорах (речь про x64) по дефолту определены 4 уровня привилегий.
Про UserMode мы с вами уже поговорили в общих чертах. Kernel же, являясь по сути ядром, даёт доступ к процессору и всей оперативной памяти.
Т.е. когда пользовательскому процессу необходимо выполнить операцию, требующую повышенных привилегий, например, блокнот хочет сохранить файл на диск.
Наш процесс самостоятельно вызывает соответствующий сервис в ядре. Там выполняется специальная команда, переводящая вызывающий поток в kernel mode, а после завершения возвращающая его обратно в user.
Именно поэтому все путные вирусы хотят заломиться именно в Kernel. Ибо доступ к железу возможен только на уровне ядра, а значит для какой-то реальной пакости требуются повышенные привилегии.
Память
Фундаментально вся память представляется, как непрерывная адресуемая последовательность байт, где операционная система занимает верхние адреса, к которым у пользовательских процессов доступа нет.
Поскольку процессов много, Windows распределяет между ними участки памяти так, что для процесса они как бы непрерывные, однако на самом деле это не так.
Т.е. в моменте процессор не видит этих пробелов. Для него есть только синенькие полосочки или только зелёненькие. Такие вот специфические особенности области видимости.
Если есть нужда посмотреть более детальную информацию о карте памяти процесса, то можно воспользоваться ещё одной утилитой от Руссиновича под названием VMMap.
Для примера я, как обычно, запустил стандартный блокнот. С помощью данной программы наглядно видно, что помимо самого файла notepad.exe (он будет в самом низу списка), загружается много dll файлов.
Библиотеки DLL
DLL (они же Dynamic-link library) – это специальный формат файлов, позволяющий хранить исполняемый код (т.е. инструкции), которые могут использоваться различного рода процессами.
Процессы подгружают библиотеки и используют описанные в ней функции. Поэтому если мы в VMMap’е прочекаем разные приложения, то увидим, что стандартные библиотеки используются одни и те же.
В основном это будут Кернелы. Именно эти библиотеки служат своеобразным слоем, который транслирует документированные вызовы функций в вызовы к сервисам Windows.
Глобально разделение на Kernel Mode и User Mode со стороны выглядит следующим образом. В самом низу мы видим вариант Мелкомягкого гипервизора. Эта деталь не является обязательной.
Если точнее, то она актуальна для ситуаций, когда на одном железе крутится несколько операционных систем. Само ядро, согласно схеме, находится над ХАЛом (набором общих инструкций).
При этом ядро загружается при старте машины и берёт управление на себя. А гипервизор, хоть и исполняется в 0-ом кольце, но при этом изолирует себя от ядра и может как бы «наблюдать» за всей ситуацией со стороны.
Или как говорят умные дядьки, осуществляет мониторинг. В самом User Mode выделяется 4 типа процессов: пользовательские — процессы, получаемые из обычных (т.е. устанавливаемых пользователем или предустановленных) приложений;
Сервисы (они же службы) — чаще всего процессы, которые выполняются в «фоновом режиме», например, службы печати, службы индексирования.
Environment Subsystems — поддержка различных окружений (ранее поддерживалось POSIX, сейчас только Windows). Поэтому обратной совместимости нет.
Ну и само-собой различного рода системные процыки. Уже упомянутый POSIX (Portable Operating System Interface) — это набор стандартов, предназначенный для организации совместимости между ОС.
Начиная с Windows 10, в состав операционки вошла подсистема WSL (Windows Subsystem for Linux). И как понятно из названия она предоставляет возможность запуска Linux-приложений из командной строки.
Вернее, так работала первая версия. WSL 2 уже представляет собой отдельную виртуалку на гипервизоре и даёт гораздо больше возможностей для сисадминов и безопасников в плане доступа к кишкам ОСи.
Ключевые файлы и драйвера
Теперь что касается ключевых файлов в системе. На слайде представлены основные каталоги, которые необходимо запомнить. Современные версии ОС Windows не позволяют как-либо работать с ними.
Однако во времена Windows 2000 вы могли удалить с компьютера папку system32 и тем самым провести небольшой саботаж. Папка окажется в корзине, восстановить вы её не сможете, винда зависнет, но при этом не выключится.
Короче, ад и Израиль. Благо, что мелкомягкие пофиксили этот забавный баг. Но сам факт существования такой вот хурмы заставляет задуматься о тщетности бытия.
Ладненько, помимо файлов есть ещё драйвера, которые представляют собою программный код, обеспечивающий поддержку той или иной функциональности устройств, протоколов и файл-систем.
Системные драйвера располагаются в каталоге System32\Drivers, а пользовательские — в произвольных каталогах, выбираемых в момент инсталляции.
Загрузка
Процесс загрузки компьютера начинается не с работы операционной системы Windows, а с работы встроенного ПО — BIOS.
BIOS зашит в материнскую плату и отвечает за базовую инициализацию оборудования и процедуру самотестирования (она же POST).
BIOS анализирует диски в установленном порядке для поиска MBR (Master Boot Record) — специальным образом оформленной области на диске.
Сам MBR загружает Boot Manager, который уже непосредственно и запускает ОС.
Для Windows это каталог %SystemDrive%\bootmgr (к слову в файловой системе он не отображается).
Ну а дальше Boot Manager загружает так называемый Windows Loader (файлик winload.exe), который уже будит наш Kernel, т.е. загружает ядро Винды.
Вот такой вот хитро**ный процесс. А вы это даже не цените. Давайте резюмирую. Сначала BIOS, затем Boot Manager, далее Loader и только затем ядро, а после уж и рабочий стол с пышногрудой девицей.
Есть ещё вариант с UEFI. Это такой интерфейс, пришедший на смену BIOS, который позволяет писать приложения, подписывать их и проверять конечную подпись.
Собственные UEFI есть у Samsung, ASUS и других популярных вендеров. Схематически работа этой истории выглядит следующим образом.
Да, возможно чутка сложнее, чем в случае с классическим BIOS, зато в разы дружелюбнее для конечного пользователя.
Помимо прочего есть ещё утилиты позволяющие модифицировать BOOT-систему. Например, bcdedit. Либо msconfig, если предпочитаете графический интерфейс. Если захотите поковырять, рекомендую делать это на виртуалке.
И последнее о чём мне бы хотелось сегодня поговорить – это процесс smss.exe. Данный процесс запускает ядро session manager subsystem.
Он же первый процесс в user mode. Который в свою очередь загружает цепочку процессов, отвечающих за выполнение дальнейшей процедуры инициализации.
Ее мы с вами подробно разберём в следующем видео из цикла информационная безопасность с нуля до джуна.
Так что, если не хочешь пропустить это дело и более детально изучить механизмы безопасности операционной системы Windows – обязательно подпишись на канал кликнув на колокольчик.
Не пойму правда, какого лешего ты не сделал этого раньше, но всё-таки дам шанс и возможность исправить карму по-братски, раз уж ты так напрягся и досмотрел ролик до этой минуты.
Окей, друзья. Нынче мы рассмотрели общую архитектуру ОС Windows и базовый процесс загрузки. Тот, что происходит непосредственно до загрузки ядра.
На следующей лекции мы с вами уже подробно поговорим о процессе загрузки и механизмах безопасности, предоставляемых данной операционной системой.
Не забываем сделать домашнее задание по теме лекции. Ссылочка, как обычно, будет закреплена в описании. Ну и если урок зашёл – не пожидитесь и отблагодарите жирнейшим лайкосиком.
Вам не напряжно пару раз по экранчику тапнуть, а мне дико приятно. Приятно осознавать, что работа над контентом происходит не зря и среди современных ITшников есть спрос на инфу с уклоном в ИБ.
Ладненько. С вами, как обычно, был Денчик. В заключении, по традиции, желаю всем удачи, успеха и самое главное, отличного настроения.
Берегите себя и данные своих пользователей. Не позволяйте криворуким ломать винду. Для этого регулярно делайте бэкапы на сервер с наиболее важных тачек. И будем вам счастье.
Помните, технологии – это весело. Во всяком случае, если речь идёт об IT. Тут без креативности, улыбки и хорошего чувства юмора в принципе никуда. Унынение – главный враг любого развития.
Капец, я, как всегда, под конец видео ударяюсь в никому не нужную диванную философию. Всё короче. До новых встреч, мои кайфные друже. Всем пока.