Номер версии ядра Windows 7

О том, почему новая клиентская ОС Windows имеет семерку в своем названии, почему она именно “седьмая”, и как этот номер соотносится с номером ядра, писалось уже неоднократно. Однако, мой опыт недавних выступлений на семинарах TechDays в различных городах показал, что вопросов на эту тему по-прежнему много.  

Один из способов отобразить номер установленной версии Windows – запустить команду ver в Command Prompt. Например, в Vista SP1 результат выполнения команды выглядит так:

ver60

Первые два значения, разделенные точкой, фактически указывают версию ОС (в данном случае, 6.0), следующее четырехзначное число – номер сборки (build).

Если при выпуске очередной ОС меняется первая цифра в номере версии, принято говорить, что данная ОС представляет собой major release. Тем самым подчеркиваются существенные изменения в архитектуре продукта, и, как следствие, большой объем новых функций, технологий и возможностей. Эти самые изменения могут повлиять, в том числе, на работоспособность приложений, разработанных для предыдущих версий системы. Совместимость нередко является платой за инновации, причем не только в области разработки ПО. :) И наоборот, обновление лишь второго числа в номере версии означает выпуск minor release и несет в себе плавное, эволюционное развитие продукта. Существующий функционал расширяется с минимальными последствиями для совместимости приложений и/или драйверов, либо вообще без таковых последствий.

Думаю, вы согласитесь с вышесказанным, посмотрев на следующую таблицу и вспомнив (кто сможет :)) особенности той или иной версии Windows. В таблице перечислены только продукты архитектуры Windows NT. Первая версия NT получила номер 3.1, поскольку тогда на рынке уже пользовалась большой популярностью Windows 3.0.

Название продукта Номер версии
Windows NT 3.1 3.1
Windows NT 3.5 3.5
Windows NT 3.51 3.51
Windows NT 4.0 4.0
Windows 2000 5.0
Windows XP 5.1
Windows Server 2003 5.2
Windows Vista / Windows Server 2008 6.0
Windows 7 / Windows Server 2008 R2 6.1

Windows 7 представляет собой очередной major release семейства NT и содержит большое количество изменений в системе, в том числе, на уровне ядра. Этот факт как раз и отражен в названии продукта, а стало быть, по логике, и номер версии должен быть 7.0. Тогда почему в бета-версии в ответ на команду ver мы получаем 6.1.7000?

В Windows 7 все сделано для совместимости приложений, разработанных под Vista. Иными словами, любое приложение, написанное под Windows Vista, будет корректно работать и под Windows 7. Однако, многие приложения при старте проверяют major-версию ОС и, обнаружив 7, могут завершить свою работу. Для предотвращения подобных ситуаций, то есть, еще раз подчеркну, для обеспечения максимальной совместимости на уровне приложений, было решено “Семерке” присвоить номер версии 6.1. Вот такая “магия чисел”. :)