О Windows из первых рук: Нумерология сборок

Назначение номера сборки готовой версии Windows — хороший шанс для руководства сделать красивый жест.

Раймонд Чен

Вернемся в 1993 год. Microsoft только начала поставку Windows NT 3.1 в виде сборки 528. Происхождение этого номера легко объяснить — это 528 официальная сборка продукта.

Никаких других свойств этому числу не назначалось. Его никто специально не выбирал. Просто так случилось. Это вполне мог быть и не 528-я официальная сборка. При параллельной разработке некоторые номера сборок могут опускаться.

Например, если текущий номер сборки 256 и вы решите выпустить бета-версию, для нее в системе управления версиями будет создана отдельная ветка. Сборки в бета-ветке будут продолжать исходную последовательность, поэтому сборки будут нумероваться 257, 258 и т. д. Номера сборки основной ветки делают прыжок вперед, чтобы оставить место для бета-версии, поэтому нумерация здесь продолжается: 300, 301, 302 и т. д.

Менеджеры сборки выбирают достаточно большой пробел, чтобы в нем разместились все сборки, необходимые для стабилизации бета-версии, плюс дополнительный запас на всякий случай. Таким образом, номера сборок будут следовать в таком порядке:

255, 256, (прыжок вперед) 300, 301, 302, 303, 304 и т. д.

257, 258, 259, выпуск бета-версии

Нет большого смысла в попытке «законсервировать» номера сборок. Это всего лишь числа. И они ничего не стоят. Важно то, чтобы никогда номера сборок не повторялись.

В тот же 1993 год в другом месте кампуса Microsoft в Редмонте завершилась работа над Windows 95. В конечном итоге эта операционная система была выпущена как сборка 950. Это был изящный номер, потому что содержал 95, но он еще служил практической цели. Он позволял разработчикам приложения понимать, что они используют финальную версию Windows 95, а не предварительную сборку. При запросе состояния сборки им сообщалось: «Проверьте номер сборки. Если он больше 700, это финальная сборка».

Разработчики выбрали число 700, потому что оно заведомо не попадало в диапазон номеров реальных сборок. Номера сборок увеличиваются на единицу раз в сутки (большие пробелы возможны в бета-версиях). Чтобы получить номер сборки больше 700, нужно задать его явно.

В версиях Windows на основе Windows 95 традиция присвоения финальной сборке изящного номера продолжилась. У Windows 98 номер сборки 1998, у Windows 98 SE — 2222, а у Windows Me (версия Windows, о которой никто не хочет говорить) — 3000.

Все это время сотрудники команды Windows NT сопротивлялись моде назначать красивые номера сборкам и просто назначали тот номер который получен при сборке финальной версии. Когда последовательность основанных на Windows 95 версий Windows закончилась, казалось, что пришел конец эре красивых номеров сборок.

Что тебе в номере моем?

Разработчики возродили традицию при разработке Windows XP. Финальная сборка Windows XP получила номер 2600, напоминание о хакерском журнале «2600: The Hacker Quarterly». Этот номер «прыгнул вперед» по той же причине, по которой бы совершен скачок в Windows 95 — чтобы четко отделить финальную сборку от предварительных.

Продолжая традицию, разработчики присвоили финальной сборке Windows Vista кругленький номер 6000, а Windows 7 — 7600. Предполагалось, что финальная сборка Windows 8 получит номер 8888. На самом деле, команда (и я был ее членом) выпустила сборку с таким номером, но обнаружилась проблема. Число 8888 не делится нацело на 16.

В Windows Vista появилось требование, чтобы номер финальной сборки любой версии Windows был кратным 16. Команда поддержки добавила это требование, чтобы использовать младшие четыре бита номера сборки для кодировки дополнительной информации для внутренних нужд. К сожалению, мы не смогли использовать другой удачный номер, 8800, потому что номера сборок не могут уменьшаться (это сильно затруднило бы обновление).

После некоторых раздумий мы решили назначить номер 9200. Извините за то, что он не такой изящный. Любители нумерологии наверняка заметили, что на протяжении последних версий номера финальных сборок увеличивались ровно на 1600. Хотя это и удивительно, но я не думаю, что это что-либо значит.

Raymond Chen

Раймонд Чен (Raymond Chen) — его веб-сайт и одноименная книга «Old New Thing», вышедшая в издательстве Addison-Wesley в 2007 году, рассказывает об истории Windows, программировании с использованием интерфейса Win32 и о том, как замечательно выглядеть в новых ботинках.