Начиная с Windows 8, корпорация Microsoft запустила процесс конвергенции ОС, полезный как с точки зрения как разработчика, так и команды разработки Windows.
В Windows 8 и Windows Phone 8 все началось с конвергенции ядра, затем в Windows 8.1 и Windows Phone 8.1 процесс продолжился конвергенцией современных приложений. История конвергенции завершилась в системе Windows 10, работающей на настольных/портативных компьютерах, серверах, XBOX One, телефонах (Windows Mobile 10), HoloLens и различных IoT-устройствах (Internet of Things).
С Windows 7, нумерация версий перестала быть очевидной. Системе был присвоен номер версии 6.1 вместо 7. Из-за популярности Windows XP, когда в Windows Vista номер версии был повышен до 6.0, в некоторых приложениях проверка версии ОС стала работать некорректно - разработчики проверяли, что основная версия больше или равна 5, а дополнительная версия была больше или равна 1; в Windows Vista это условие не выполнялось. Компания Microsoft усвоила урок и решила оставить основную версию 6 с повышением дополнительной версии до 2 (больше 1), чтобы свести к минимуму подобные несовместимости. Впрочем, в Windows 10 номер версии был обновлён до 10.0.
- Windows NT 3.1 ver.3.1 июль 1993г.
- Windows NT 4.0 ver. 4.0 июль 1996г.
- Windows 2000 ver.5.0 декабрь 1999г.
- Windows XP ver.5.1 август 2001г.
- Windows Vista ver.6.0 январь 2007г.
- Windows 7 ver.6.1 октябрь 2009г.
- Windows 8 ver.6.2 октябрь 2012г.
- Windows 8.1 ver.6.3 октябрь 2013г.
- Windows 10 версия 1507 ver.10.0 (сборка 10240) июль 2015г.
- Windows 10 версия 1511 ver.10.0 (сборка 10586) ноябрь 2015г.
- Windows 10 версия 1607 ver.10.0 (сборка 14393) август 2016г. Anniversary Update
- Windows 10 версия 1703 ver.10.0 (сборка 15063) апрель 2017г. Creators Update
- Windows 10 версия 1709 ver.10.0 (сборка 16299) октябрь 2017г. Fall Creators Update
- Windows 10 версия 1803 ver.10.0 (сборка 17133) апрель 2018г. April 2018 Update
- Windows 10 версия 1809 ver.10.0 (сборка 17639) октябрь 2018г. October 2018 Update
- Windows 10 версия 1903 ver.10.0 май 2019г. May 2019 Update
- Windows 10 версия 1909 ver.10.0 ноябрь 2019г. November 2019 Update
На внутреннем уровне Microsoft продолжает строить версии Windows «волнами». Например, исходной версии Windows 10 было присвоено кодовое название Threshold 1, тогда как обновление в ноябре 2015 года называлось Threshold 2.
Следующие фазы обновлений назывались Redstone 1 (версия 1607), Redstone 2, Redstone 3,Redstone 4,Redstone 5.
Фундаментальные концепции и термины.
Windows API (Application Programming Interface) — программный интерфейс пользовательского режима для ОС семейства Windows. До появления 64-разрядных версий Windows программный интерфейс 32-разрядных версий ОС Windows назывался Win32 API в отличие от исходного 16-разрядного Windows API, программного интерфейса для исходных 16-разрядных версий Windows.
Изначально Windows API состоял только из функций в стиле C. Выбор языка C был естественным на момент появления Windows, потому что он был своего рода «наименьшим общим кратным» (т. е. написанный на нем код также мог использоваться из других языков) и он был достаточно низкоуровневым для предоставления сервиса ОС.
Обратной стороной было огромное количество функций в сочетании с недостаточной последовательностью выбора имен и отсутствием логических группировок (вроде пространств имен C++).
Эти сложности привели к тому, что в некоторых новых API используется другой механизм — модель COM (Component Object Model, «модель составного объекта»).
Технология COM изначально создавалась для того, чтобы приложения Microsoft Office могли взаимодействовать друг с другом и передавать данные между документами (например, чтобы в документ Word можно было вставить диаграмму Excel или презентацию PowerPoint). Эта функциональность получила название OLE (Object Linking and Embedding, «связывание и внедрение объектов»).
Сначала технология OLE была реализована на базе старого механизма передачи сообщений в Windows, который назывался DDE (Dynamic Data Exchange, «динамический обмен данными»). Технология DDE обладала рядом непреодолимых ограничений, поэтому был разработан новый коммуникационный механизм — COM. Более того, в первом варианте, который был представлен около 1993 года, технология COM изначально называлась OLE 2.
COM базируется на двух основополагающих принципах.
Во-первых, клиенты взаимодействуют с объектами (которые иногда называются серверными объектами COM) через интерфейсы — четко определенные контракты с набором логически связанных методов, сгруппированных посредством механизма диспетчеризации по виртуальным таблицам (этот же механизм обычно применяется компиляторами C++ для реализации диспетчеризации виртуальных функций). Таким образом обеспечивается двоичная совместимость и снимаются проблемы с декорированием имен компилятором. Соответственно, такие методы могут вызываться из многих
других языков (и компиляторов), включая C, C++, Visual Basic, языки .NET, Delphi и т. д.
Второй принцип — динамическая загрузка компонентов (вместо статической компоновки с клиентом).
Термин «сервер COM» обычно относится к DLL-библиотеке или исполняемому файлу (EXE), в котором реализованы классы COM.
COM также содержит ряд важных функций, связанных с безопасностью, межпроцессным маршалингом, потоковой моделью и т. д.
В Windows 8 появились новый API и исполнительная среда поддержки Windows Runtime (иногда используется сокращение WinRT. Windows Runtime состоит из платформенных сервисов, предназначенных для разработчиков приложений Windows Apps (ранее также использовались термины Metro Apps, Modern Apps, Immersive Apps и Windows Store Apps).
Приложения Windows Apps подходят для разных форм-факторов устройств, от миниатюрных IoT-устройств до телефонов, планшетов, ноутбуков, настольных систем, и даже таких устройств, как Xbox One и Microsoft HoloLens.
С точки зрения API платформа WinRT строится на базе COM, добавляя в базовую инфраструктуру COM различные расширения. Например, в WinRT доступны полные метаданные типов (хранящиеся в файле WINMD и основанные на формате метаданных .NET), расширяющие аналогичную концепцию библиотек типов в COM. С точки зрения архитектуры API она обладает намного большей целостностью, чем классические функции Windows API: в ней реализованы иерархии пространств имен, последовательная схема назначения имен и паттерны программирования.