Ядро windows 10 на чем написано

Обновлено: 06.07.2024

Windows 10 — операционная система для персональных компьютеров, разработанная корпорацией Microsoft Corporation в рамках семейства Microsoft Windows NT. После Microsoft Windows 8 система получила номер 10, минуя 9.

Система призвана стать единой для разных устройств, таких как персональные компьютеры, планшеты, смартфоны, консоли Xbox One и пр. Доступна единая платформа разработки и единый магазин универсальных приложений, совместимых со всеми поддерживаемыми устройствами. В течение первого года после выхода системы пользователи могли бесплатно обновиться до Windows 10 на устройствах под управлением легальных Windows 7, Windows 8.1 и Windows Phone 8.1. [1] Среди значимых нововведений — голосовая помощница Кортана, возможность создания и переключения нескольких рабочих столов и др. [2] Windows 10 — последняя «коробочная» версия Microsoft Windows, все последующие версии будут распространяться исключительно в цифровом виде.

Лицензионное соглашение Windows 10 позволяет компании Microsoft Corporation собирать многочисленные сведения о пользователе, историю его интернет-деятельности, пароли к точкам доступа, данные, набираемые на клавиатуре и многое другое [3] [4] .

Содержание

История

После Microsoft Windows 8 система получила номер 10, минуя 9. Как объяснил глава Microsoft по маркетингу Microsoft Windows Тони Профет, пропуск девятого номера в наименовании операционной системы Windows не связан с совместимостью. Многие программы определяли бы её, как систему из семейства Windows 9x, которые выпускались с 1995 по 2000 год. Изначально предполагалось, что нынешняя Microsoft Windows 8.1 будет названа Windows 9, в Microsoft не хотели, чтобы новая версия Windows ассоциировалась с непопулярной Microsoft Windows 8:

Первая предварительная версия Windows 10 (сборка 9841) была выпущена 30 сентября 2014 года для корпоративных клиентов. На следующий день эта сборка стала доступной для загрузки на сайте программы предварительной оценки Windows.

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

Распространение

Windows 10 — первая операционная система Microsoft, которая официально распространяется не только с серверов поставщика, но и с компьютеров её пользователей, по принципу протокола BitTorrent. По такому же принципу распространяются и обновления Windows 10, причём эта настройка включена по умолчанию, то есть, если у пользователя лимитированный трафик, тариф с оплатой за объём трафика или скорость подключения к сети не позволяет излишне нагружать линию связи — то эту опцию следует отключить. Так же имеется возможность оставить обмен обновлениями только между компьютерами локальной сети.

В течение первого года после выхода системы пользователи могли бесплатно обновиться до Windows 10 на любом устройстве под управлением официальных версий Microsoft Windows 7, Microsoft Windows 8.1 и Windows Phone 8.1, соответствующим определённым требованиям.

Прямое обновление

Прямое обновление до Windows 10 доступно для Microsoft Windows 7 и Microsoft Windows 8.1 с 29 июля 2015 года для устройств, соответствующих определенным требованиям [5] . Вопросы и ответы по обновлению рассмотрены в официальном собрании вопросов [6] . Для обновления на Microsoft Windows 8.1 требуется установленный Windows 8.1 Update. Для Microsoft Windows 8 потребуется установить обновление Microsoft Windows 8.1. Для обновления на Microsoft Windows 7 требуется SP1. В течение первого года после выхода финальной версии Windows 10 была возможность получить обновление бесплатно. Пользователи Microsoft Windows Vista и более старых версий, даже с пакетами обновлений, не смогут совершить прямое обновление до Windows 10. Для этого им потребуется чистая установка «с нуля» [7] . Исключение: пользователи Vista, которым досталась бесплатно Microsoft Windows 7 по различного рода акциям [8] . Они смогут выполнить цепное обновление: Windows Vista — Windows 7 — Windows 10 бесплатно по своей лицензии. Обновление для всех, кому оно доступно, требуется лишь один раз на конкретном оборудовании.

Обновление осуществляется с помощью приложения «Получить Windows 10», которое распространяется через обновление KB3035583. В нём можно зарезервировать и загрузить систему до 29 июля 2016 года — срока окончания акции. Установочные файлы сами загрузятся на компьютер, однако можно отложить установку. Установка в среднем может идти около часа. Можно также и быстрее обновиться до Windows 10 — для этого можно с сайта Microsoft загрузить утилиту для создания установочных носителей и выбрать вариант обновления. Данные способы обновления не распространяются на выпуски корпоративной версии, корпоративную версию нужно обновить через образ VLSC, выданный корпорацией [9] .

производится вне акции)

Отличия от предыдущих версий Windows

Основные отличия

Приложения

  • Обновлён Магазин Windows.
  • В систему встроен сервис OneGet, позволяющий устанавливать программы как в Linux с помощью менеджеров пакетов.
  • Приложение обратной связи Windows Feedback позволяет сообщать Microsoft о своём опыте использования предварительных версий Windows 10, а также об ошибках и пожеланиях.
  • Добавлено новое приложение «Начало работы».
  • В командную строку добавлена возможность использовать вставку текста, скопированного в буфер обмена, через комбинацию клавиш Ctrl + V
  • В «Проводник» добавлен более функциональный поиск и отображение последних файлов вместе с самыми посещаемыми папками.
  • Обновлено приложение «Калькулятор».
  • Новый браузер Microsoft Edge, который поставляется в системе со сборки 10158 [1] , Internet Explorer остаётся для совместимости со старыми приложениями.

Редакции

Windows 10 имеет 8 редакций:

  • Windows 10 Домашняя — базовая версия для пользователей ПК, ноутбуков и планшетных компьютеров. Поставляется с ноутбуками и нетбуками.
  • Windows 10 Домашняя для одного языка полностью аналогична редакции Домашняя, но возможность менять язык отключена. Поставляется с ноутбуками и нетбуками.
  • Windows 10 Домашняя с Bing — версия Windows 10, в которой в браузерах Edge и Internet Explorer поисковая система по умолчанию — Bing, при этом изменить её невозможно. Поставляется с некоторыми ноутбуками.
  • Windows 10 Профессиональная — версия для ПК, лэптопов и планшетов с функциями для малого бизнеса типа CYOD (выбери своё устройство).
  • Windows 10 Мобильная — версия для смартфонов и небольших планшетов.
  • Windows 10 Корпоративная — версия для более крупного бизнеса с расширенными функциями управления корпоративными ресурсами, безопасности и т. д.
  • Windows 10 для образовательных учреждений — вариант «Профессиональной» для учебных заведений.
  • Windows 10 Мобильная корпоративная — вариант корпоративной версии, адаптированный под мобильные устройства и тач с усиленной безопасностью.
  • Windows 10 IoT Домашняя — версия для разнообразных компьютерных устройств, таких как терминалы, роботы и т. д., со специфическими функциями, например, для использования в платёжных терминалах на базе Windows-планшетов.

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

Минимальные аппаратные требования Windows 10 [12]
Архитектура 32-бит 64-бит
Процессор 1 ГГц и более тактовой частоты с поддержкой PAE, NX и SSE2 (x86-64 процессоры должны также поддерживать CMPXCHG16B, PrefetchW и LAHF/SAHF инструкции) [13] [14] или система на кристалле
Оперативная память 1 Гб (для системы, поставляемая как обновление)

2 Гб (для системы, поставляемая отдельно)

Другие версии

Windows 10 Мобильная

Windows 10 Мобильная предназначена для устройств с диагоналями экрана до 8 дюймов. Смартфоны с Windows Phone 8.1 будут иметь возможность обновиться до неё. Разработка этой версии началась ещё в 2012 году.

Новые функции

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

Минимальные системные требования Windows 10 Мобильная — экран с разрешением 800х480 (854х480 без аппаратных кнопок) и оперативная память 512 Мбайт.

Windows Redstone

Windows Redstone — крупные обновления для персональных компьютеров и других устройств на базе Windows 10.

Redstone 1

Юбилейное обновление Windows (build 14393.82) было выпущено для ПК 2 августа, для мобильных устройств — 9 августа 2016 года. Включает в себя:

  • Windows Ink — рукописный ввод;
  • расширения для браузера Microsoft Edge;
  • улучшенная Cortana;
  • тёмная тема оформления;
  • автоматическая установка временной зоны;
  • Windows Hello — идентификация пользователя с помощью веб-камеры;
  • возможноность портирования приложений на Xbox One;
  • функционал bash и основной инструментарий;
  • универсальное приложение Skype для Windows 10;
  • синхронизация уведомлений мобильного устройства и ПК;
  • специальная настройка ПК для образовательных учреждений;
  • обновлённое меню Пуск;
  • новое меню параметров.

Redstone 2

Windows Redstone 2 будет выпущена для ПК и мобильных устройств в апреле 2017 года [16] . Точные данные об обновлении неизвестны, возможно, будет окончательна убрана панель управления. Также в Redstone 2 окажутся новшества, которые не успели включить в Юбилейное обновление.

Redstone 3

Windows Redstone 3 будет выпущена для ПК и мобильных устройств осенью 2017 года. Точные данные об обновлении неизвестны.

Сбор данных

Windows 10 содержит два сервиса для сбора и отправки в Microsoft «отчетов об ошибках» и «сбора данных об использовании программ» (список установленных приложений, статистика их использования). Отключение обоих сервисов доступно лишь в версии «Windows 10 Enterprise»; более доступные версии ОС «Home» и «Pro» всегда отсылают по крайней мере базовую информацию.

В связи с этим в Генеральную прокуратуру России некоторыми юристами и депутатами были направлены заявления о несоответствии новой операционной системе российскому законодательству, депутаты посчитали, что ОС угрожает сохранности персональных данных, адвокатской и государственной тайн Российское надзорное ведомство, Роскомнадзор, в ходе проверки обращения Николая Левичева заявило, что деятельность компании Microsoft, связанная с сбором данных в операционных системах, не нарушает российское законодательство об информации, поскольку пользователи добровольно-принудительно соглашаются с лицензионным соглашением.

Критика

На Windows 10 обрушился шквал критики из-за слежки операционной системы за пользователями. Пользователям не понравилось, что Windows собирает ряд различных типов данных, таких как местоположение, названия открываемых программ, их электронные письма и данные различных менеджеров, данные о контактах и частоту взаимодействия с этими контактами на мобильных устройствах, которые находятся под управлением Windows 10. Все эти данные автоматически отправляются на облачные сервера Microsoft Corporation. Часть критики также относится к тому, что Windows делится паролями от Wi-Fi с другими пользователями

Через год после выхода, в обязательном обновлении "Windows 10 Anniversary Update" пользователи некорпоративных версий были лишены возможности отключить Lock Screen, на котором приложением Windows Spotlight принудительно демонстрируется реклама Microsoft. Также, после интеграции Windows Search и Cortana [21] стало невозможным отключение Cortana, этот блок теперь постоянно отсылает вводимые данные (без входа в учетную запись cortana данные остаются "анонимными".

Корпорация Microsoft разрабатывает новый язык программирования, который ориентирован на создание приложений, не подверженных наиболее распространенным проблемам безопасности, пишет Zdnet.

Новый язык базируется на набирающем популярность Rust, развитием которого занимается компания Mozilla, разработчик известного браузера Firefox. Проект получил название Verona и, по данным издания, ключевое его отличие от Rust заключается в применении модели владения на основе групп объектов, а не единичных объектов. Ожидается, что исходные тексты текущих наработок в его рамках будут открыты под свободной лицензией Apache 2.0. Репозиторий проекта уже появился на принадлежащей Microsoft c 2018 г. платформе Github, но пока пуст.

Как отмечает Zdnet, Microsoft также может переписать некоторые низкоуровневые компоненты Windows 10 с использованием модифицированного Rust, чтобы исключить потенциальные проблемы, возникающие при применении языков C и C++.

Как смена языка поможет повысить безопасность

Языки C и C++ в течение десятилетий повсеместно используются в качестве инструмента разработки системного ПО и возлагают на программиста задачу управления оперативной памятью, что неизбежно приводит к возникновению ошибок, таких как обращение к участку памяти после его освобождения или, например, выход за границы буфера. По словам Мэтта Миллера (Matt Miller), специалиста Microsoft по безопасности, около 70% всех уязвимостей, обнаруженных в программных продуктах корпорации за последние 12 лет, связанны с ошибками управления памятью.

microsoftmemorysafetytrends.jpg

Около 70% всех уязвимостей, обнаруженных в программных продуктах Microsoft за последние 12 лет, связанны с ошибками управления памятью

В языке Rust (как, видимо, и в Verona), в отличие от C и C++, реализован механизм автоматического управления памятью на основе принципа «владения», который избавляет программиста от необходимости вручную манипулировать памятью, тем самым снижая вероятность возникновения ошибок. Стоит также отметить, что в угоду производительности в Rust не используется так называемый сборщик мусора (Garbage Collector, GC), в задачи которого входит автоматическое удаление из памяти объектов, которые более не востребованы программой.

Эксперименты Microsoft с Rust

Zdnet пишет, что Microsoft начала экспериментировать с Rust летом 2019 г. Сообщалось, что компания собирается переписать некоторые из своих продуктов с использованием этого языка программирования.

В начале ноября 2019 г. Адам Берч (Adam Burch), программист из команды разработчиков Hyper-V (системы аппаратной виртуализации для x64-систем на основе гипервизора), написал в корпоративном блоге о том, что ему поручили переписать на Rust некий низкоуровневый компонент Windows, назвать который он пока не может. По его словам, несмотря на незавершенность проекта, опыт применения Rust оказался в целом позитивным. Он также отметил, что кодовую базу новых компонентов и уже существующих, но с «чистыми интерфейсами», перевести на Rust не составит большого труда. Кроме того, Берч посетовал на отсутствие некоторых возможностей в языке по сравнению с привычным ему C, но выразил уверенность в том, что Microsoft сможет посодействовать их добавлению.

Несколько слов о Rust

Rust появился в 2006 г. как личный проекта Грейдона Хоара (Graydon Hoare), сотрудника Mozilla. В 2009 г. Mozilla начала спонсировать разработку Rust для собственных нужд, а также расширила команду для дальнейшего развития языка.


Интерес Mozilla к Rust был вызван наличием огромного числа критических уязвимостей в разрабатываемом компанией браузером Firefox, в реализации которого присутствовало свыше 4 млн строк на языке C++. Rust был создан с учетом требований безопасности и параллелизма, что сделало его подходящим выбором для переписывания многих компонентов Firefox в рамках проекта Quantum по полной переработке архитектуры браузера. Кроме того, Mozilla использовала Rust для разработки Servo, движка рендеринга HTML, который должен был заменить действующий движок рендеринга Firefox.

Помимо Mozilla и Microsoft в своих проектах Rust применяют Google, Facebook, Amazon, Dropbox, Fastly, Baidu.

В августе 2019 г. в рамках саммита по технологиям с открытым исходным кодом (Open Source Technology Summit) Джош Триплетт (Josh Triplett), ведущий инженер Intel, рассказал о том, что его компания заинтересована в том, чтобы в ближайшем будущем Rust достиг «паритета» с доминирующим в области системной и низкоуровневой разработки языком C.

В том же месяце Грег Кроа-Хартман (Greg Kroah-Hartman), один из ключевых разработчиков ядра Linux, заявил, что не станет препятствовать включению в ядро фреймворка для написания драйверов на языке Rust.

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. Решая, какой из потоков запустить, планировщик использует их приоритеты, и в теории, поток с наивысшим приоритетом должен запускаться на системе, даже если это означает, что потокам с более низким приоритетам времени не останется.

У планировщика 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, дающую обзор работы планировщика. Статьи со сходными техническими подробностями о внутренней работе ОС последуют позже.

Аххх, как хорошо, просто бальзам на сердце.

Тогда можете считать что сто процентов, нет, даже сто десять.

Не ребят виндовс написан на англиском, из-за этого периодически он непонятно тупит, то есть шутит, по англиски.

исходя из того, что dll библиотека может быть написано на чём угодно, хоть на асме, уместно предположить что нет единого языка в windows xp. в неё есть и Ява аплеты и чего только нет.

но само ядро вроде написано на c++, по крайней мере я в это верю 8]

Давайте начнём с простого: на чём написан "Сапёр"? Ну и так далее - по всем программам, DLL-ам и прочим.

Кстати, нет ли утилитки, которая натравливается на на исполнимый файл и говорит, на чём он написан?

Сначала нужно как минимум нужно определить границы самой Windows, например Notepad это ОС или не ОС.

А так однозначно С/C++, хотя некоторые вещи возможно на ASM.

windows xp. в неё есть и Ява аплеты и чего только нет.

Какие ява аплеты. Нет там и строчки ява аплетов. Я не видел исходников ХР, но твёрдо уверен в этом. Зачем Микрософт использовать сторонний язык для своей ОС, откуда они знаю что в свои либы напихала Сан микросистем. Однозначно С\С++, ядро асм.

Вообще, вопрос интересный. Например, для OpenVMS я где-то видел диаграмму использованных языков. Каких только языков там не было!

По теме:
1. Диалоги и визарды MS Office написаны на VB. Поэтому с определенной долей правоты можно утверждать, что часть MS Office написана на VB. Видимо, это ваш друг имел в виду.

2. В инталляторе Windows использовался VBScript.

Есть еще один момент. Если помните, в Win3.1 была утилита recorder - она записывала нажатия и передвижения мыши в файл, позволяя потом этот файл запустить. Потом аналогичную функциональность добавили в MS Office, но при этом записывались не перемещения мыши, а события - записывались они в макрос на VB. Аналогичную функциональность планировалось реализовать для системы в целом, встроив в нее VB. Предполагалось, перемещая мышку и нажимая кнопочки, запуская файлы можно будет записать последовательность событий в файл VBScript и потом запустить заместо bat-файла. Но эту функциональность так и не реализовали.

За прошедшие годы Microsoft осуществила несколько собственных проектов Linux. Существовали ОС на базе Linux для сетевых коммутаторов в центрах обработки данных и ОС на основе Linux для микроконтроллеров, созданных для встраиваемой службы безопасности Azure Sphere. А теперь стало известно ещё об одном проекте на базе Linux, над которым какое-то время трудились специалисты Microsoft.


В первый день конференции разработчиков Build 2019 программный гигант объявил о создании собственной версии ядра ​​Linux, которое станет частью Windows 10. Первые тестовые сборки для участников программы Insider будут выпущены уже в конце июня. Это ядро ​​обеспечит основу для архитектуры Microsoft Windows Subsystem for Linux (WSL) 2. Как отметили представители Microsoft в своём блоге, это первый случай, когда полноценное ядро Linux станет встроенным компонентом Windows.

Напомним: WSL 1 представлял собой слой совместимости, по сути эмулятор, для выполнения бинарных файлов Linux (ELF) в среде операционной системы Windows 10 и Windows Server 2019. Это, например, позволило в последние годы перенести в Windows оболочку Bash, добавить поддержку OpenSSH в Windows 10, а также включить дистрибутивы Ubuntu, SUSE Linux и Fedora в магазин приложений Microsoft Store.


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

Реальный прирост производительности будет зависеть от того, о каком приложении идёт речь и как оно взаимодействует с файловой системой. Внутренние тесты Microsoft показывают, что WSL 2 работает в 20 раз быстрее по сравнению с WSL 1 при распаковке архивов tarball и примерно в 2–5 раз быстрее при использовании git clone, npm install и cmake в различных проектах.


Ядро Microsoft Linux первоначально будет основано на последней долгосрочной стабильной версии 4.19, которая применяется компанией, и в технологиях, задействованных облачными сервисами Azure. По словам официальных представителей Microsoft, ядро ​​будет полностью открытым: то есть все вносимые Microsoft изменения будут предоставлены сообществу разработчиков Linux. Компания также обещает, что с выходом следующей долгосрочной стабильной версии ядра обновится и версия для WSL 2, чтобы разработчики всегда имели доступ к последним новшествам Linux.


WSL 2 по-прежнему не будет включать каких-либо бинарных файлов пользовательского пространства, как и в случае с текущей версией WSL 1. Пользователи по-прежнему смогут выбирать, какой именно дистрибутив Linux им больше подходит, загружая его как через Microsoft Store, так и из других источников.

Одновременно Microsoft представила новое мощное приложение командной строки для Windows 10, которое получило название Windows Terminal. Оно включает вкладки, ярлыки, текстовые смайлики, поддерживает темы, расширения и рендеринг текста на основе GPU. Приложение предназначено для доступа к таким средам, как PowerShell, Cmd и WSL. Это ещё один шаг Microsoft, призванный упростить взаимодействие разработчиков с Windows 10. Предварительная версия Windows Terminal уже доступна в виде репозитория на GitHub, а появление в Microsoft Store обещано в середине июня.

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