Начиная с 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: в ней реализованы иерархии пространств  имен, последовательная схема назначения имен и паттерны программирования.