Заиндевевшее стекло массивных двойных дверей НИИ глушило звуки улицы. Алексей стоял в пустом вестибюле, засунув руки в карманы рабочего свитера. От мраморного пола тянуло стылым холодом. Декабрьская метель накрыла город плотным, колючим снегопадом. Белая пелена съела перспективу улицы, оставив лишь серые силуэты голых тополей.
Вахтерша в стеклянной будке мерно постукивала спицами. Тиканье настенных часов эхом отражалось от высоких потолков.
Из белесой мглы вынырнули два тусклых желтых пятна. Они медленно увеличивались, пока сквозь снегопад не проступили очертания тяжелого, обледенелого металлического механизма. Округлая морда с решеткой радиатора, забитой снегом. Натужно ревущий двигатель, с трудом проворачивающий карданный вал на промерзшем асфальте. Машина неуклюже перевалилась через снежный бруствер на обочине и замерла у ступеней крыльца.
Скрипнули тормозные колодки. Внутри кабины водитель с силой дернул длинный рычаг. Раздалось громкое шипение стравливаемого воздуха, и створки дверей с лязгом разъехались в стороны.
Алексей толкнул плечом тугую пружину входной двери. Морозный воздух мгновенно обжег лицо.
Первым из темного нутра холодного салона на заснеженные ступени спустился мужчина в строгом сером пальто и пыжиковой шапке — инструктор обкома ВЛКСМ, назначенный сопровождающим. Он поежился от морозного ветра, сверился с папкой и кивком скомандовал пассажирам выходить.
Следом за ним на утоптанный снег начали неуверенно спрыгивать подростки. Пятеро ребят. Они тут же жались друг к другу, образуя плотную, настороженную стайку. Задранные воротники, надвинутые по самые брови кроличьи ушанки, тяжелые шарфы, замотанные в несколько слоев. Государственная машина сработала четко: комсомол собрал победителей по всей стране, оформил направления и списки, посадил в поезда под опеку взрослых и доставил во Владимир.
Морозов сделал шаг навстречу.
Воздух вокруг ребят был плотным, почти осязаемым. В нос ударила густая смесь запахов. Так пахла долгая зимняя дорога в плацкартном вагоне. Влажная шерсть тяжелых советских драповых пальто, набравших в себя сырость перрона. Острый, праздничный и совершенно неуместный здесь сладковатый аромат мандаринов — кто-то привез гостинец в пузатой дерматиновой сумке с оторванной ручкой. И поверх всего этого плыл резкий, дешевый дух мужского одеколона «Шипр», которым явно от души набрызгался самый рослый из парней, пытаясь казаться старше.
Они стояли перед монументальным фасадом секретного института и боялись пошевелиться.
— Товарищ Морозов? — инструктор обкома шагнул к Алексею, протягивая руку. — Делегация Всесоюзной заочной олимпиады прибыла в полном составе. Пять человек. Согласно списку. Принимайте эстафету, Алексей Николаевич, а я пока пойду в дирекцию оформлять документы на гостиницу.
Алексей смотрел на них сквозь пелену падающего снега. В своей прошлой, безвозвратно ушедшей жизни двадцать первого века он привык к другому образу юных гениев. Там это были раскованные подростки в дорогих худи, с раннего детства окруженные гигабайтами оперативной памяти, терабайтными накопителями и безлимитным интернетом. Они писали код на высокоуровневых фреймворках, не задумываясь о том, как именно транзисторы переключают ток. А здесь, на промерзших ступенях режимного советского института тысяча девятьсот восьмидесятого года, перед ним стояли дети, у которых не было ничего, кроме карандаша, школьной тетрадки в клеточку и абсолютного, кристально чистого пространственного воображения.
Их неуклюжая, тяжелая зимняя одежда — валенки с галошами, безразмерные цигейковые шубки, колючие шарфы фабрики «Большевичка» — делала их похожими на обычных, ничем не примечательных советских пионеров из массовки киножурнала «Ералаш». Никто из прохожих, спешащих мимо по заснеженной улице, даже в бреду не смог бы заподозрить, что под этими нелепыми кроличьими шапками прямо сейчас вращаются сложнейшие виртуальные шестеренки. Что эти замерзшие, шмыгающие носами дети способны силой одной лишь мысли удерживать в голове многомерные массивы данных и выстраивать идеальные архитектуры обхода памяти, ни разу в жизни не прикоснувшись к настоящей клавиатуре.
Алексей помнил те тяжелые мешки писем, которые ветераны из расформированного КБ-2 с таким искренним непониманием вываливали на столы. Для советской номенклатуры это была макулатура, детская забава, не стоящая серьезного государственного внимания. Но для него каждый тетрадный листок, испещренный аккуратными стрелками блок-схем, был подлинным свидетельством чуда. Эти ребята, кутающиеся сейчас в колючую шерсть, выстроили в своих головах сложнейшие архитектуры, не имея возможности даже проверить их на настоящем «железе».
Они не знали, что такое зависание системы от статического разряда, не слышали разочаровывающего хруста зажеванной механизмом перфоленты. Их код был идеален, потому что до сих пор существовал лишь в идеальном мире математической абстракции.
Морозов медленно выдохнул, выпуская облачко пара. Весь этот год он играл в опасные шахматы с Системой. Он обходил партийных боссов на поворотах, выстраивал сделки с Комитетом Государственной Безопасности, менял дефицитную логику на списанные дисководы и крал секретный компаунд со складов ПВО, чтобы приклеить латунные щиты. Иногда ему казалось, что он строит карточный домик на ветру, балансируя между технологическим прорывом и расстрельной статьей. Но сейчас, глядя на этих съежившихся от холода ребят, он понял: всё было не зря. Вот они — живые узлы его будущей сети. Те самые самородки, которых он просеял через жесткое сито Заочной Олимпиады, вытащив из глухих таежных поселков, промышленных моногородов и заснеженных райцентров. Тот самый интеллектуальный резерв, ради которого он превратил себя в циничного системного архитектора этой эпохи.
Алексей остановился в двух шагах от них. Он не стал надевать дежурную улыбку массовика-затейника. Внимательный, сканирующий взгляд выхватывал детали.
Худой, сутулый парень в очках, перемотанных синей изолентой на дужке. Он судорожно прижимал к груди потертый портфель. Дима Кориков из Свердловска. Тот самый, чей алгоритм маршрутизации спас бы маневровые тепловозы от холостых пробегов.
Рядом переминался с ноги на ногу крепкий, вихрастый мальчишка в куртке явно с чужого плеча. Костя Макаров из Каменск-Уральского. Автор алгоритма двумерного раскроя металла, заставившего Громова курить две сигареты подряд.
Чуть позади пряталась девочка с тонкими чертами лица, кутаясь в пуховый платок. Лена Савельева из Новосибирска. Единственная девчонка среди победителей, написавшая безупречный код управления конвейерной лентой без единого лишнего такта.
Игорь и Миша жались с краев, шмыгая замерзшими носами.
— Доброе утро, ребята, — Морозов тепло, ободряюще улыбнулся, намеренно избегая казенного тона. — С приездом. Я Алексей Николаевич. Идемте скорее внутрь, пока вы окончательно не окоченели на этом ветру.
Дети промолчали. Услышав из уст сопровождающего фамилию автора статей, которые они зачитывали до дыр в журнале «Радио», они, казалось, оцепенели еще больше, во все глаза рассматривая живую легенду. Только синхронно, как по команде, кивнули.
Морозов развернулся и придержал для них тяжелую дверь. Инструктор махнул рукой, показывая, что догонит их позже, и ребята потянулись следом за Алексеем, стараясь ступать по мраморному полу вестибюля как можно тише. В теплом вестибюле, под суровым взглядом вахтерши, их робость только усилилась. Они оказались в святая святых. В месте, где рождалась вычислительная техника. Для них каждый человек в белом халате, проходящий мимо по коридору, был небожителем.
Длинные коридоры НИИ «Электронмаш» встретили их привычным, въевшимся в стены казенным запахом: смесью половой мастики, старой бумаги и хлорки. Звук их шагов гулко разносился под высокими сводами, отражаясь от выкрашенных бледно-зеленой масляной краской стен. Мимо проплывали закрытые двери с табличками отделов, где за каждой скрывалась своя локальная бюрократическая империя. Навстречу изредка попадались хмурые инженеры в синих или белых халатах, которые окидывали странную процессию беглыми, недоуменными взглядами. Для них эти дети были просто экскурсией, случайным сбоем в строгом расписании секретного института.
Ребята шли плотной группой, почти наступая друг другу на пятки, и настороженно вертели головами. Их поражало всё: и массивные дубовые двери спецотделов, обитые черным дерматином для звукоизоляции, и стенды с выцветшими графиками выполнения плана, и доносящийся из-за поворота оглушительный треск шаговых искателей. Они попали внутрь огромного механизма, о котором раньше могли только читать в научно-популярных журналах. Морозов шел чуть впереди, спиной чувствуя их благоговейный трепет. Он помнил, как сам впервые шел по этим коридорам, чувствуя себя чужаком из будущего, придавленным чудовищной инерцией советской плановой машины.
Но теперь этот институт был его территорией. Он знал здесь каждую трещину на линолеуме и каждый аппаратный конфликт. Он помнил, как еще недавно в расформированном КБ-2 бородатые «аналоговики» презрительно морщились при слове «микропроцессор», пока он не заставил их признать неизбежность цифровой эры и не объединил в одну команду. Он помнил, как в кабинетах на верхнем этаже выбивал право на жизнь для «Сферы». Сейчас он вел этих детей сквозь слои застывшей бюрократии прямо к сердцу своего проекта. Он физически ощущал, как его знания из двадцать первого века сливаются с их чистым, неиспорченным шаблонами интеллектом, образуя нечто совершенно новое. Оружие, против которого у Системы не будет никакой защиты.
Каждый их шаг по гулкому коридору казался Алексею отсчетом нового времени. Сквозь полуприкрытые двери соседних отделов доносилось тяжелое гудение мощных трансформаторов и монотонный стрекот старых табуляторов. Там, в этих заставленных громоздкими шкафами комнатах, доживала свой век старая инженерная школа. Там все еще искренне верили в непрерывный сигнал, в могущество тяжелых реле и толстых медных шин, способных выдержать колоссальные перепады напряжения.
Но Алексей уверенно вел своих юных спутников мимо этого дремлющего аналогового пантеона. Он чувствовал себя сталкером, прокладывающим единственный верный путь сквозь зону аппаратных аномалий. В его кармане лежал ключ от лаборатории КБ-3, за дверью которой пульсировал совершенно иной ритм. Ритм дискретный, хирургически точный, измеряемый не килограммами меди, а микросекундами и логическими нулями.
Алексей повел их по длинному коридору первого этажа. Ребята шли кучно, боясь отстать хотя бы на шаг. Слышалось только шарканье по линолеуму. Ожидание расправы или экзамена читалось в их ссутуленных плечах.
Морозов остановился перед лестницей и повернулся к ребятам. Нужно было срочно ломать этот лед казенного отчуждения.
— Костя, — мягко произнес Алексей, глядя на вихрастого парня.
Крепкий мальчишка вздрогнул, едва не выронив свою сумку.
— Я.
— В твоем алгоритме раскроя металла. Тот самый третий вложенный цикл, — Морозов ободряюще кивнул. — Ты ввел проверку остатка площади перед тем, как перейти к следующему листу.
Костя судорожно сглотнул.
— Да. Я… я думал, так логичнее. Чтобы машина не гоняла математику вхолостую, если деталь уже заведомо не влезает.
— Логичнее. И быстрее, — подтвердил Алексей. — Евгений, наш системный программист, когда увидел этот финт, выкурил две сигареты подряд от зависти. Но скажи мне: что будет, если мы загрузим в твой алгоритм тысячу уникальных деталей? Как твоя блок-схема найдет нужную без бесконечного перебора массива с самого начала?
Костя моргнул. Робость в его глазах внезапно сменился острой, почти хищной задумчивостью.
— Перебор убьет всё время… — тихо рассуждал подросток, глядя в пространство. — Значит, перед началом цикла их нужно отсортировать. Предварительно разбить на группы по площади. И искать только в нужной группе.
— В десятку, — улыбнулся Морозов. Он перевел взгляд на сутулого парня в очках. — Дима.
Дима Кориков торопливо поправил дужку с синей изолентой.
— Слушаю.
— Твой метод отсечения тупиковых ветвей в задаче развозки хлеба. Изящно. Но ты заложил проверку длины маршрута на каждом перекрестке. Если граф огромный, мы потратим больше времени на саму проверку, чем на движение по маршруту. Как бы ты оптимизировал этот блок?
Парень замер, беззвучно шевеля губами. Он прогонял логику в уме, перестраивая блок-схему, которую до этого чертил на тетрадном листе.
— Проверять не на каждом узле… — пробормотал Дима. — А, например, через каждые пять шагов. Или оценивать не точный путь, а приблизительный радиус. Если мы явно ушли в другую сторону города, тогда отсекаем ветку целиком.
Лед треснул.
Морозов смотрел на них и видел, как уходит физический страх перед чужим городом, строгим НИИ и взрослыми инженерами. Их вернули на знакомую территорию. В мир чистой математической абстракции, где не имел значения возраст, фасон куртки или качество одеколона. Здесь правили алгоритмы.
Морозов с тихим восхищением системного архитектора наблюдал за этой переменой. Еще минуту назад перед ним стояли зажатые, насмерть перепуганные школьники, ожидающие сурового отчета у кабинета директора. Но стоило только перевести разговор на язык тактовых частот, машинных циклов и аппаратных прерываний, как невидимая стена рухнула. Жесточайшие физические ограничения восьмибитной логики, тот самый «каменный век кремния», в котором Морозов был вынужден выживать, стали для этих детей универсальным переводчиком. Им не нужно было объяснять социальные контексты или правила поведения в НИИ. Их умы, отточенные на суровом «бумажном коде», мгновенно адаптировались к предложенным правилам игры.
Морозов смотрел на то, как меняется их пластика. Расправились ссутуленные плечи, исчезла нервная дрожь в руках, пропал затравленный взгляд из-под надвинутых шапок. Дима Кориков перестал вжимать в себя потертый портфель, его пальцы теперь рефлекторно отбивали ритм по дерматину, словно пересчитывая те самые такты задержки. Костя Макаров смотрел не в пол, а прямо в глаза Алексею, и в этом взгляде читался холодный, расчетливый азарт хищника, которому только что показали новую, более сложную траекторию охоты. Они были лишены того высокомерного академического снобизма, с которым Морозов сталкивался в московских институтах. Для них не существовало авторитетов, кроме железной, неопровержимой логики микропроцессора К580.
В будущем, откуда пришел Алексей, избыток вычислительных мощностей породил поколение программистов, не умеющих экономить ресурсы. Зачем оптимизировать цикл, если можно просто добавить планку оперативной памяти? Зачем считать миллисекунды, если процессор работает на частоте в несколько гигагерц? Но здесь, в условиях тотального аппаратного голода, рождалась совершенно иная порода инженеров. Бедность элементной базы выковала из этих детей абсолютных перфекционистов. Они вылизывали каждый байт, они боролись за каждую микросекунду машинного времени так, словно от этого зависела их жизнь. Эта вынужденная нищета технологий сделает их лучшими архитекторами в мире. Он дал им базис, но теперь они сами были готовы строить на нем здания невероятной красоты.
— Идемте, — Морозов начал подниматься по ступеням. — Покажу вам железо.
Они вошли в лабораторию КБ-3.
Воздух здесь был густым. Привычный запах канифоли ФК-2, нагретого пластика и озона. На длинных столах монотонно гудели три дисковода ИЗОТ. Мерцали зеленым свечением экраны осциллографов.
Громов сидел за своим столом, обложившись распечатками кода. Программист услышал шаги, обернулся и мгновенно принял подобающий вид. Он хмуро сдвинул брови и скрестил руки на груди, всем своим видом изображая сурового, недосягаемого столичного мэтра кибернетики.
Дети замерли у порога. В их глазах отражались мигающие курсоры. Настоящие вычислительные машины. Не на картинках в журнале «Радио». Вживую.
Евгений тяжело, значительно вздохнул, готовясь произнести приветственную речь о важности дисциплины в программировании.
На мгновение голоса смолкли. Слышался лишь мерный, низкий гул трансформаторов в линейных блоках питания. Для этих пятерых подростков тесная комната КБ-3 сейчас казалась не просто рабочим помещением секретного института, а пульсирующим центром мироздания. Они вдыхали едкий запах канифоли так, словно это был самый изысканный аромат на свете. Их расширенные зрачки жадно отражали белое свечение люминофора, выхватывая на мерцающем экране заветные строки, которые раньше они видели лишь в собственном воображении или на страницах журнала «Радио».
Громов, тем временем, нарочито медленно поправил рукава своего растянутого свитера.
Из стайки подростков робко шагнула вперед Елена. Девочка подошла к столу Громова. Ее взгляд был прикован к монитору, где замерли строки ассемблерного кода.
— Извините, — ее голос был тихим, но совершенно лишенным трепета. Она безошибочно выхватила суть открытого в текстовом редакторе исходника базовой системы ввода-вывода. — А почему вы вызываете обработчик прерывания клавиатуры через косвенную адресацию? Если вектор жестко зашит в ПЗУ, прямой вызов сэкономит вам три машинных такта на каждом нажатии.
Громов поперхнулся заготовленным вздохом.
Суровый наставник исчез в долю секунды. Евгений подался вперед, чуть не смахнув локтем пепельницу.
— Три такта? — программист лихорадочно придвинул к себе листинг, а затем недоверчиво посмотрел на школьницу. — Откуда ты вообще знаешь, как устроены прерывания? Мы этого в журнале не печатали.
— У меня папа в Новосибирском Академгородке работает, на стенде с СМ ЭВМ, — девочка сняла пуховый платок, обнажив туго заплетенные косички. В ее голосе зазвучала профессиональная гордость. — Я у него на работе все справочники по машинному коду выучила. А гибкость на базовом уровне опроса матрицы вам не нужна. Опрос матрицы должен быть монолитным. Перехват делайте уже на уровне буфера символов.
— Буфера… — Громов уставился на код, потом на девочку, потом снова на код. Его лицо расплылось в широкой, совершенно мальчишеской улыбке. Он схватил карандаш. — А ну-ка. Садись. Смотри, как у нас реализовано распределение памяти…
Остальные ребята неуверенно переминались в дверях, не решаясь подойти к сложному коду. Ситуацию мгновенно спасли Люба и Наташа.
— Мальчики, ну что вы стали на пороге, как чужие! — Люба решительно отодвинула коробки с деталями, освобождая проход. — Наташа, включай чайник!
Девушки взяли шефство над опешившими подростками. Наташа Рогова принялась разливать горячий чай, всучивая ребятам кружки и сухари, а Люба Ветрова подвела Игоря и Мишу к своему рабочему столу.
— Программы — это хорошо, но без нас они не заработают, — с улыбкой сказала Люба, включая паяльную станцию. — Смотрите сюда. Вот здесь у нас блок питания. Знаете, почему здесь стоят керамические конденсаторы, а не электролиты?
Спустя десять минут Костя и Дима уже стояли за спиной Евгения, жадно вглядываясь в экран кинескопа и наперебой споря с Леной об оптимизации алгоритмов. А двое других парней завороженно следили, как Люба виртуозно спаивает тончайшие медные провода, превращая их в системную шину. Всякая субординация мгновенно стерлась.
Экран опытной «Сферы-82» заливал лица собравшихся вокруг стола детей ровным белым светом. Пальцы Громова отбивали ритм по тугим клавишам клавиатуры, а сам программист то и дело возмущенно хрипел, пытаясь отстоять свой код перед безжалостной критикой девочки с косичками.
Алексей тихо отошел к окну, чтобы не мешать, и прислонился плечом к холодной раме.
За стеклом продолжал мести густой декабрьский снег.
Морозов сделал глоток остывшего чая из чужой кружки. За его спиной Громов яростно стучал по клавишам, доказывая что-то девочке с косичками. Звенел смех Любы. Кто-то из ребят уже с лязгом придвигал к себе тяжелый осциллограф. Алексей поставил кружку на крашеную доску подоконника. Теперь оставалось только следить, чтобы они не спалили лабораторию до прихода начальства.