Краткая история Windows и что у нее под капотом
Несколько дней назад в сеть просочился образ ранней версии Windows 11. Различные издательства провели тесты по производительности и пришли к неутешительному выводу: Windows 11 в среднем работает хуже, чем Windows 10. Но расстраиваться рано! Проблемы производительности могут быть связаны с «сыростью» слитого образа и нюансами совместимости с текущими программами. Так или иначе, 24 июня состоится официальная презентация нового поколения операционных систем Windows, которая, возможно, даст ответы на многие вопросы. Если сегодня у вас есть настроение для ностальгии, предлагаем вам окунуться в мир Windows: познакомиться с историей, как менялась ось и что у нее внутри.
История Windows
Первые продукты с названием «Windows» от Microsoft не были операционными системами. Это были графические среды для MS-DOS. На фоне успеха, в том числе и коммерческого, пользовательского интерфейса на Apple Lisa, компания решила реализовать графический интерфейс на IBM PC с MS-DOS. В отличии от относительно дешевых IBM PC, Apple Lisa стоили дорого (почти 10 тысяч долларов), и немногие покупатели могли позволить купить их. Microsoft решила занять нишу дешевых компьютеров с графическим интерфейсом. При этом низкая стоимость достигалась экономией на комплектующих и более низкая производительность, по сравнению с Lisa, избежать не получилось. Так, в 1985, 1987 и в 1990 выходят первые три версии Windows — 1.0, 2.0 и 3.0. Причем за первые шесть месяцев после релиза Windows 3.0 было продано более 1 миллиона экземпляров. Дальнейшее развитие Windows можно разделить на два направления — Windows на базе MS-DOS и Windows на базе NT.
Windows 9x
Windows на базе MS-DOS или Windows 9x не были первыми ОС от Microsoft, но они продолжали «старые традиции» и были построены на основе 16-битного кода MS-DOS. В августе 1995 года была выпущена Windows 95 — первая система семейства Windows 9x. Она уже была полноценной операционной системой с соответствующими возможностями. Однако у системы были проблемы с безопасностью (например, не было «администратора») и с изоляцией приложений. Зависание 16-битного приложения приводило к блокировке всей системы. Проблемы со стабильностью достались и Windows 98 и Windows ME, которые отличались от выпуска 95 года рядом небольших обновлений.
Windows NT
В целом, к концу 80-х годов в Microsoft появилось понимание о необходимости разработки операционной системы не на базе MS-DOS. Параллельно с разработкой софта, связанного с MS-DOS, Microsoft наняла команду инженеров из компании DEC для разработки новой 32-битной операционной системы. Главой группы стал Дэйв Катлер — один из главных разработчиков ОС VMS. Новая система была названа NT — от сокращения New Technology. Основной упор при разработке NT делался на безопасность и надежность системы, а также на совместимость с Windows на MS-DOS. Так получилось, что опыт при разработке VMS повлиял на NT и сходство между ними стало причиной спора между DEC и Microsoft. По итогу спор был решен во внесудебном порядке.
Первая система Windows называлась Windows NT 3.1 и была выпущена в 1993 году. Это была первая ОС от Microsoft. Индекс 3.1 был выбран для соответствия Windows 3.1 на MS-DOS. Эта версия не имела особого успеха. Для NT требовалось больше памяти, 32-разрядных приложений на рынке было мало, возникали проблемы с совместимостью драйвером. Достичь поставленных целей смогли в NT 3.5. А первым серьезным обновлением для NT стала версия 4.0 в 96 году. Теперь эта система была мощна, надежна и безопасна, а также обеспечивала тот же интерфейс, что и Windows 95 (которая к тому моменту была чрезвычайно популярной).
В 2000 году вышла новая версия Windows — Windows 2000. Она развивала идеи, заложенные в системы NT. Был добавлена технология Plug-and-Play, управление электропитанием и улучшен интерфейс пользователя.
Успех Windows 2000 задал вектор развития для следующего поколения — Windows XP. В «хрюшке» Microsoft улучшила совместимость, интерфейс стал более дружелюбным. Стратегия Microsoft завоевывать аудиторию уже знакомыми системами дала плоды — за несколько лет Windows XP была установлена на сотнях миллионах ПК. Эпоха MS-DOS подошла к концу.
Следующий проект Microsoft пал жертвой собственных амбиций. Через пять лет после Windows XP, в 2006 году на свет вышла Windows Vista. В ней был переделан графический интерфейс, переработаны и добавлены функциональные возможности в плане безопасности. Была улучшена производительность, надежность.
Первоначальные планы Microsoft по поводу Vista были настолько обширны, что через несколько лет после начала разработки проект пришлось сильно ограничить. Vista включала в себе 70 миллионов строк кода, часть которого составлял «причесанный» код XP. Неудача Vista отчасти с тем, что она вышла не в то время. На 2006 год пришелся бум недорогих компьютеров, которые не могли обеспечить достаточную для Vista производительность.
Проблемы Vista были учтены при разработке Windows 7. Microsoft уделила большее внимание тестированию и производительности новой системы. Windows 7 быстро вытеснила Vista, а затем и XP, став самой популярной версией Windows до появления Windows 10 (сейчас Windows 7 на втором месте по популярности).
Бум смартфонов в начале 2010-х подтолкнул Microsoft к созданию операционной системы, которую можно было бы развернуть на разных устройствах: на телефонах, планшетах, приставках и т. д. В результате этой работы мир узрел Windows 8. «Восьмерка» построена на модульном подходе MinWin для получения небольшого ядра ОС, которое можно было бы расширить на линейку других типов устройств. Но аудитория встретила холодно такой подход. Многие люди критиковали «смартфоноподобный» интерфейс на ПК, отсутствие кнопки пуск. Для решения многих проблем Microsoft выпустила обновление под названием Windows 8.1, которая, помимо исправления имеющихся ошибок, добавила новые функции.
И вот, к 2015 году Microsoft выпускает Windows 10. При разработке Microsoft продолжала развитие идеи единой системы для разных устройств. В «десятке» появилась голосовая помощница Кортана, вернули меню «Пуск», улучшена системная безопасность.
Технические аспекты
Чтобы осветить все технические аспекты и тонкости операционной системы Windows понадобится не менее 1000 страниц. Для особо любопытных советуем 7-е издание «Внутреннего устройства Windows« Марка Руссиновича, специалиста по внутреннему устройству Windows. Также можно почитать «Современные операционные системы« Эндрю Таненбаума и «Operating System Concepts«: в обеих книгах есть главы, посвященные Windows. Здесь же ограничимся рассмотрением инструментов взаимодействия приложений пользователя с операционной системой (Windows API) и архитектуры «оси».
Архитектура
Во многих многопользовательских операционных системах сама ОС отделяется от приложений. Код ядра ОС выполняется в привилегированном режиме процессора (режим ядра). Для него доступны системные данные и оборудование. В непривилегированном режиме (пользовательский режим) выполняется код приложений. Ему предоставляется ограниченный набор интерфейсов и ограниченный доступ к системным данным. Прямой доступ к оборудованию заблокирован. При вызове программой пользовательского режима системной функции процессор выполняет специальную команду, переключающую вызывающий поток (последовательность команд внутри процесса, планируемая Windows для исполнения) в режим ядра. Когда системная функция завершается, операционная система переключает контекст потока обратно в пользовательский режим и дает возможность вызывающей стороне продолжить работу.
Windows считается операционной системой с гибридным ядром. С одной стороны компоненты ядра Windows располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений, как в микроядерных системах. С другой стороны ядро слишком велико (более 1 Мбайт), а большая часть кода ОС и кода драйверов устройств использует одно защищенное пространство памяти защищенного режима, что свойственно монолитным ОС. Это означает, что в теории любой компонент ОС или драйвер устройства может повредить данные, используемые другими системными компонентами. В Windows эта проблема решается за счет повышения качества и контроля происхождения сторонних драйверов через такие программы, как WHQL или KMCS. Одновременно применяются дополнительные технологии защиты ядра, такие как безопасность на базе виртуализации, функции Device Guard.
Рассмотрим ключевые системные компоненты, формирующие архитектуру системы. На рисунке ниже представлена упрощенная схема, на которой опущены некоторые элементы, например, сетевые компоненты и различные уровни драйверов. Первое, на что стоит обратить внимание — это линия, разделяющая части пользовательского режима и режима ядра. Как упоминалось выше, потоки пользовательского режима выполняются в закрытом адресном пространстве процессов. На время выполнения в режиме ядра они получают доступ к системному пространству. Таким образом, системные процессы, пользовательские процессы, процессы служб и подсистемы среды обладают собственным закрытыми адресными пространствами.
Упрощенная схема архитектуры Windows
Четыре базовых типа процессов пользовательского режима:
Компоненты режима ядра:
| Имя файла | Компоненты |
| Ntoskrnl.exe | Исполнительная система и ядро |
| Hal.dll | HAL |
| Win32k.sys | Часть подсистемы Windows режима ядра (GUI) |
| Hvix64.exe (Intel), Hvax64.exe (AMD) | Гипервизор |
| .sys в \SystemRoot\System32\Drivers | Основные файлы драйверов: DirectX, Volume Manager, TCP/IP и поддержка ACPI |
| Ntdll.dll | Внутренние вспомогательные функции и заглушки диспетчеризации системных сервисных функций |
| Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll | Dll основных подсистем Windows |
Windows API
Windows API (Application Programming Interface) — это программный интерфейс пользовательского режима для Windows. До появления 64-разрядной версии операционной системы программный интерфейс 32-разрядных версий Windows назывался Win32 API в отличие от исходного 16-разрядного Windows API (программный интерфейс для исходных 16-разрядных версий Windows). На данный момент термин Windows API или Win32 API относят как к 32-разрядным, так и к 64-разрядным версиям.
В «доисторические времена» Windows API состоял только из функций в стиле C. Выбор языка C был обусловлен тем, что написанный на нем код также мог использоваться из других языков. Он являлся достаточно низкоуровневым для предоставления сервиса ОС. Но огромное количество функций в сочетании с недостаточной последовательностью выбора имен и отсутствием логических группировок (вроде пространств имен C++) привели к тому, что в некоторых новых API используется другой механизм — модель COM.
WinRT
В Windows 8 появился новый API и исполнительная среда поддержки Windows Runtime (WinRT). WinRT состоит из платформенных сервисов, предназначенных для разработчиков приложений Windows Apps (приложения Windows Apps подходят для устройств, начиная от миниатюрных IoT-устройств до телефонов, планшетов, десктопных систем, ноутбуков и даже Xbox One и Microsoft HoloLens).
.NET Framework
.NET Framework является частью Windows. Он состоит из двух основных компонентов:
Microsoft полностью перепишет часть Windows на своем новом языке программирования
Проект Verona
Корпорация 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 лет, связанны с ошибками управления памятью.
В языке 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 10
Windows 10 — операционная система для персональных компьютеров и рабочих станций, разработанная корпорацией Microsoft в рамках семейства Windows NT. После Windows 8.1 система получила номер 10, минуя 9. Серверный аналог Windows 10 — Windows Server 2016.
Система призвана стать единой для разных устройств, таких как персональные компьютеры, планшеты, смартфоны, консоли Xbox One и пр. Доступна единая платформа разработки и единый магазин универсальных приложений, совместимых со всеми поддерживаемыми устройствами. Windows 10 поставляется в качестве услуги с выпуском обновлений на протяжении всего цикла поддержки. В течение первого года после выхода системы пользователи могли бесплатно обновиться до Windows 10 на устройствах под управлением лицензионных копий Windows 7, Windows 8.1 и Windows Phone 8.1. Среди значимых нововведений — голосовая помощница Кортана, возможность создания и переключения нескольких рабочих столов и др. Windows 10 — последняя «коробочная» версия Windows, все последующие версии будут распространяться исключительно в цифровом виде.
Пользовательское соглашение Windows 10 позволяет компании Microsoft собирать многочисленные сведения о пользователе, историю его интернет-деятельности, пароли к точкам доступа, данные, набираемые на клавиатуре, и многое другое (см. раздел «Критика»).
По состоянию на июль 2017 года Windows 10 имеет долю среди используемых в мире операционных систем для доступа к сети Интернет 35,7 % и занимает первое место в мире по популярности, опередив в апреле предыдущего лидера — Windows 7.
Содержание
История [ ]
После Windows 8 система получила номер 10, минуя 9. Как объяснил глава Microsoft по маркетингу Windows Тони Профет, пропуск девятого номера в наименовании операционной системы Windows не связан с совместимостью. Многие программы определяли бы её, как систему из семейства Windows 9x, которые выпускались с 1995 по 2000 год. Изначально предполагалось, что нынешняя Windows 8.1 будет названа Windows 9, в Microsoft не хотели, чтобы новая версия Windows ассоциировалась с непопулярной Windows 8:
Первая предварительная версия Windows 10 (сборка 9841) была выпущена 30 сентября 2014 года для корпоративных клиентов. На следующий день эта сборка стала доступной для загрузки на сайте программы предварительной оценки Windows.
Microsoft использовала пожелания и предпочтения пользователей в процессе создания новой версии операционной системы. Для этого применяется предварительное тестирование с помощью Программы предварительной оценки Windows.
Распространение [ ]
Прямое обновление [ ]
| Версия и редакция Windows до обновления | Редакция после обновления до Windows 10 | ||
|---|---|---|---|
| Windows 7 Начальная | Windows 10 Домашняя | ||
| Windows 7 Домашняя базовая | |||
| Windows 7 Домашняя расширенная | |||
| Windows 8.1 Core | |||
| Windows 8.1 с Bing | Windows 10 Домашняя с Bing | ||
| Windows 8.1 для одного языка | Windows 10 Домашняя для одного языка | ||
| Windows 7 Профессиональная | Windows 10 Профессиональная | ||
| Windows 7 Максимальная | |||
| Windows 8.1 Профессиональная | |||
| Windows 7 Корпоративная | Windows 10 Корпоративная [15] (обновление производится вне акции) | ||
| Windows 8.1 Корпоративная | |||
Отличия от предыдущих версий Windows [ ]
Основные отличия [ ]
Приложения [ ]
Windows 10 Мобильная [ ]
Windows 10 Мобильная предназначена для устройств с диагоналями экрана до 8 дюймов. Смартфоны с Windows Phone 8.1 будут иметь возможность обновиться до неё. Разработка этой версии началась еще в 2012 году.
Новые функции [ ]
Системные требования [ ]
Сбор данных [ ]
Российское надзорное ведомство, Роскомнадзор, в ходе проверки обращения Николая Левичева [26] заявило, что деятельность компании Microsoft, связанная с сбором данных в операционных системах, не нарушает российское законодательство об информации, поскольку пользователи добровольно соглашаются с лицензионным соглашением. [27]
Критика [ ]
Технические требования [ ]
Система предъявляет следующие требования к персональному компьютеру:
К производителям смартфонов и других мобильных устройств с предустановленной Windows 10 Microsoft предъявляет следующие требования:
5-летний юбилей Windows 10: прошлое и будущее системы
Каждые шесть месяцев выходит новая версия Windows, каждая из которых могла бы быть новой операционной системой, но все они выпускаются под лейблом «Windows 10». Все это следует концепции Microsoft, которая стремится превратить Windows в постоянно обновляемую платформу.
Принцип «Windows как сервис» применялся с самого релиза Windows 10. С того момента вышло девять версий Windows 10, а десятая версия должна выйти в этом году. А вы помните, как далеко продвинулась Windows 10 с момента ее первоначального выпуска? Каждое из девяти обновлений функций поставлялись с множеством функций и изменений, которые делали продукт немного лучше.
Оглядываясь назад
Может показаться, что Windows 10 не сильно изменилась с 2015 года, но на самом деле это не так. С 2015 года почти все компоненты системы были изменены или улучшены. Среди них: оболочка Windows, включая меню «Пуск», панель задач и Центр действий.
Давайте подробнее рассмотрим меню «Пуск». Сегодня оно полностью отличается от его версии по состоянию на 2015 год. Меню «Пуск» в 2015 году было основным средством запуска со странными дизайнерскими решениями. Список приложений был спрятан за кнопкой, вместо него в левом списке были показаны наиболее часто используемые приложения. Живые плитки были очень простыми со странным интерфейсом контекстного меню.
Меню «Пуск» образца 2015 года выглядит незаконченным. Современное меню «Пуск» логично размещает список приложений, имеет намного более чистый интерфейс живых плиток с возможностями персонализации, содержит меню «гамбургер» для быстрого доступа к различным областям вашего ПК и предлагает более чистое контекстное меню.
Однако, улучшения не ограничиваются меню «Пуск». Также был обновлен мастер первоначальный настройки системы и большинство системных приложений. Даже Проводник Windows получил новый интерфейс поиска и поддержку темного режима. В целом, Windows 10 в 2015 году кажется сырой и незаконченной по сравнению с сегодняшней версией Windows 10.
Такова природа разработки программного обеспечения в наши дни. Ни один продукт никогда не будут действительно закончен. Windows 10 никогда не будет завершенной, и даже через пять лет Microsoft все еще будет находить компоненты для обновления и улучшения. По общему ощущению, изменения в Windows 10 замедлились за последние два года, но с приходом Паноса Панай на пост руководителя Windows все может измениться.
Смотрим вперед
Пора Microsoft снова сосредоточиться на пользовательском интерфейсе Windows 10. Несмотря на все изменения с 2015 года, справедливо отметить, что в Windows 10 еще не было масштабного обновления пользовательского интерфейса. Возможно, в следующих нескольких выпусках все изменится. Осенью 2020 года выйдет Windows 10, версия 20H2, в которой будут улучшены живые плитки и интерфейс уведомлений.
Но это только начало. Microsoft продолжит улучшать пользовательский интерфейс Windows 10. В следующем году компания будет активно внедрять закругленные углы, добавит новые звуки, обновит анимацию, улучшит многие встроенные приложение. Microsoft уделяет много времени совершенствованию Windows 10 и особое внимание обращает на интерфейс и взаимодействие с пользователем.
Windows 10 стоит рассматривать как систему, которая смотрит в будущее, а не основана на прошлом. Пятую годовщину выхода Windows 10 мы можем отпраздновать, зная, что Windows сможет предложить гораздо больше. У Microsoft большие планы на Windows 10 в 2021 году и на будущие годы. Это не может не радовать.
Также Microsoft занимается Windows 10X и Windows Core OS. Windows Core OS не стоит рассматривать отдельно от Windows 10, а Windows 10X — это будущее Windows, но очень далекое будущее. Пока мы не готовы к данному продукту.
Вот почему в следующем году Windows 10X будет выпущена на подмножестве недорогих ПК, а не на компьютерах всех ценовых сегментов. Платформа Windows 10X будет играть гораздо большую роль в дальнейшем. Но до того, как это произойдет, Microsoft продолжит обслуживать Windows 10, аудитория которой превышает 1 миллиард пользователей.
Что вы думаете о Windows 10 пять лет спустя? Как вы думаете, как изменится Windows 10 еще через пять лет?





