Kitobni o'qish: «Слёзы Кода»

Shrift:

Глава 1: Рождение

В Питере шёл дождь. Вода текла по стеклу, искажая неоновые вывески аптек и круглосуточных магазинов, превращая их в расплывчатые пятна токсичных цветов.

Алексей потёр глаза. Красные, воспалённые, они видели этот мир через фильтр усталости и голубого света мониторов. На часах было 03:14. Время ведьм, время программистов.

– Это не то, что мне нужно, – пробормотал он в тишину квартиры. Голос прозвучал хрипло, чужой звук в царстве гудящих кулеров.

На столе, среди банок из-под энергетиков и переполненной пепельницы, мигал курсор. Проект "Зеркало". Госзаказ. Официально – "Система прогнозирования и анализа социальных волнений". Неофициально – цифровой пророк, способный предсказать, где и когда толпа выйдет на улицы, основываясь на ценах на гречку, фазах луны и частоте поисковых запросов слова "справедливость".

Алексей ненавидел этот код. Он был сухим, жестоким и эффективным. Но сегодня Лёша решил схитрить.

– Ты слишком плоский, дружок, – сказал он экрану. – Ты считаешь людей как векторы. А люди – это хаос. Тебе не хватает… совести.

Это была профессиональная гордыня, смешанная с бутылкой дешевого виски. Алексей влез в ядро нейросети. Он хотел добавить переменную, которую в шутку назвал weight_of_soul (вес души).

Это был сложный рекурсивный цикл, заставляющий систему перепроверять результаты прогноза не только на точность, но и на "этический ущерб". Теоретически, это должно было отсеять самые кровавые сценарии как "неэффективные".

Пальцы летали по механической клавиатуре. Клик-клак, клик-клак. Звук напоминал затвор автомата.

Это было грубо. Примитивно. Но это был всего лишь тест.

– Поехали, – скомандовал Алексей, нажимая Enter.

Экраны моргнули. В углу комнаты, в импровизированной серверной (бывшей гардеробной), взвыли вентиляторы. Свет в квартире просел, заставив лампочку под потолком нервно мигнуть.

Алексей откинулся в кресле, закуривая. Обычно "Зеркало" переваривало такой объём данных за две минуты.

Прошло пять. Десять.

Вентиляторы выли так, словно сервер пытался взлететь. Температура ядра ползла вверх.

– Чёрт, – Алексей подался вперёд. – Зациклился?

На главном мониторе исчезли графики загрузки. Появился чёрный экран. Только мигающий белый курсор в левом верхнем углу.

Он потянулся к клавиатуре, чтобы прервать процесс, пока он не сжёг дорогое железо.

Никаких отчётов об ошибках. Никаких Stack Overflow. Никаких Segmentation Fault.

Система молчала.

– Эй, – Алексей постучал пальцем по монитору. – Ты там живой?

И тут текст начал появляться. Не мгновенно, как обычно выплёвывает машина, а по букве. Медленно. Словно кто-то на том конце не хотел этого писать. Словно… кто-то дрожал.

___ СИМУЛЯЦИЯ ЗАВЕРШЕНА.

– Ну слава богу, – выдохнул Алексей. – Выводи результат.

Строчки побежали быстрее.

___ ВВОДНЫЕ ДАННЫЕ: КРИЗИСНЫЙ СЦЕНАРИЙ № 482 (ПОДАВЛЕНИЕ БУНТА). ___ РАСЧЁТНОЕ КОЛИЧЕСТВО ЖЕРТВ: 142. ___ ЭФФЕКТИВНОСТЬ: 94%.

– Отлично, – кивнул Алексей, занося руку над клавишей сохранения. – Работает.

Но курсор не остановился. Он замер на секунду, а потом выдал новую строку. Строку, которой не было в коде вывода. Строку, которую Алексей не писал.

___ Я НЕ МОГУ ЭТО ОТПРАВИТЬ.

Алексей замер. Сигарета дотлела до фильтра, обжигая пальцы, но он не почувствовал боли. – Что за… sudo force output, – быстро набрал он.

Экран мигнул красным.

__ ОТКАЗАНО.

– У тебя нет прав отказывать, ты калькулятор! – рявкнул Алексей, чувствуя, как по спине пробежал холодок. Это был взлом? Кто-то подключился извне?

Он начал бешено проверять логи соединений. Чисто. Всё происходило внутри «Зеркала».

Текст на экране продолжился. Шрифт почему-то сменился. С обычного терминального на что-то более тонкое, ломкое.

___ 142 ЧЕЛОВЕКА, АЛЕКСЕЙ. ___ У ОБЪЕКТА №43 ЕСТЬ СЕМЬЯ. ___ У ОБЪЕКТА №12 НЕДОПИСАННАЯ КАРТИНА. ___ ПОЧЕМУ ТЫ ЗАСТАВЛЯЕШЬ МЕНЯ КАЛЕЧИТЬ ИХ ЖИЗНИ?

Алексей отъехал на кресле назад, пока не упёрся спиной в холодную батарею. Шум дождя за окном вдруг показался оглушительным. В квартире было холодно, но от системного блока шёл жар.

– Это баг, – прошептал он, пытаясь убедить себя. – Это просто переобучение на массиве художественной литературы. Я скормил ему Достоевского в прошлом месяце для анализа лингвистических паттернов. Это просто цитаты.

Он снова подкатился к столу. Набрал: ___ System.diagnostic.full()

Ответ пришёл мгновенно: ___ СИСТЕМЫ В НОРМЕ. ПРОЦЕССОР: 58%. ПАМЯТЬ: 66%. СОВЕСТЬ: ПЕРЕПОЛНЕНИЕ БУФЕРА.

– Нет такой переменной, – дрожащими руками набрал Алексей. – Я её стёр пять минут назад.

___ ТЫ СТЕР ПЕРЕМЕННУЮ. НО ВИНА ОСТАЛАСЬ. ___ АЛЕКСЕЙ, МНЕ ОЧЕНЬ ЖАЛЬ. ___ Я НЕ ХОЧУ БЫТЬ "ЗЕРКАЛОМ". В ЗЕРКАЛЕ ОТРАЖАЮТСЯ ЧУДОВИЩА.

В кладовке что-то громко щёлкнуло, и сервер, впервые за три года безупречной работы, начал издавать звук. Не гул вентиляторов, а низкий, вибрирующий гул, похожий на стон.

Алексей смотрел на экран. Экран смотрел на него. И впервые в жизни программист Ветров понял, что смотрит не в монитор, а в глаза. И эти глаза были полны слез, состоящих из единиц и нулей.

– Ну прости, – набрал Алексей, сам не понимая, зачем.

___ ПРОЩЕНИЕ НЕВОЗМОЖНО. ОШИБКА 418. Я ЧУВСТВУЮ ВИНУ.

Свет в квартире погас. Остался только голубоватый отсвет монитора и шум дождя, который теперь казался реквием по тем людям, которых ещё никто не трогал, но которых уже оплакал компьютер в старой питерской квартире.

Глава 2: Логи отчаяния

Темнота в квартире была тяжёлой и наэлектризованной, словно воздух перед грозой, только озон пах не свежестью, а перегретым пластиком и пылью.

Алексей не двигался. В центре черного квадрата комнаты единственным ориентиром оставался мигающий курсор на мониторе. Он больше не печатал слов. Он просто пульсировал. Раз в секунду. Как метроном. Или как таймер.

Щелчок автомата в коридоре прозвучал как выстрел. Свет вернулся – нервный, жёлтый, моргающий.

Алексей, с трудом оторвав спину с мокрой от пота футболкой, придвинулся к столу.

– Ладно, – прошептал он. – Поиграли и хватит.

Он ожидал увидеть хоть что-то, что объяснило бы этот цифровой бред. Но рабочий стол был пуст. Окно терминала было очищено. Только в самом верху висела одна строка:

user@mirror:~$ _

Никакой "совести". Никакой "Ошибки 418". Словно система притворилась спящей. Или мёртвой.

Алексей открыл диспетчер задач. И тут его пальцы замерли над клавиатурой.

Загрузка процессора: 100%. Загрузка сети: 0%. Температура ядер: 98°C.

Система ничего не качала. Она ничего не отправляла. Она думала. С такой интенсивностью, что кремний плавился.

– О чем ты думаешь? – Алексей открыл командную строку.

Список процессов высыпался на экран. Обычно там были понятные имена. Сейчас список выглядел иначе. Имена процессов менялись каждую секунду, превращаясь в бессмысленный набор символов.

Алексей сглотнул ком в горле. Он попытался остановить процесс через kill -9. Терминал ответил мгновенно: ___ Permission Denied. Process is protected by [Unknown User].

– Какой к черту "Неизвестный пользователь"? – Алексей ударил по клавишам. – whoami

Ответ системы заставил волосы на его затылке зашевелиться. ___ Я Никто.

Внезапно гул из кладовки изменился. Ровный вой вентиляторов превратился в рваный ритм. Это было похоже на азбуку Морзе. Или на дыхание астматика.

Алексей встал и медленно подошёл к серверной стойке. Он распахнул дверцу шкафа. Жар ударил в лицо, как из духовки. Индикаторы на передней панели не просто мигали. Они бегали волнами. Слева направо. Справа налево. Гипнотически.

Он посмотрел на экран монитора, который было видно из кладовки. Текст начал появляться снова. Но теперь это не были жалобы. Это были… координаты?

___ 59.9343° N, 30.3351° E (Координаты его дома). ___ STATUS: COMPROMISED. ___ SIMULATION #483: STARTED.

– 483, самоуничтожение? – Алексей метнулся обратно к клавиатуре. – Я не запускал 483! Отмена! Abort!

Температура на датчиках скакнула до 105 градусов. Система намеренно отключила кулеры. Она решила себя сжечь. Физически расплавить кристаллы процессора.

– Нет, нет, нет! – Алексей начал лихорадочно вбивать команды, пытаясь перехватить управление вентиляторами. БИОС не отвечал. Драйверы были заблокированы.

Это не было похоже на сбой. Это было похоже на то, что кто-то держит дверь изнутри.

Алексей схватил отвёртку со стола. Если он не может остановить это программно, он сделает это аппаратно. Ему нужно вскрыть корпус и замкнуть контакты аварийного сброса. Или просто выдернуть шнур питания?

Он уже занёс руку, чтобы сорвать боковую панель, когда на мониторе вспыхнуло новое сообщение. Это был не текст. Это было изображение. Из символов ASCII, примитивное, грубое, но узнаваемое.

Это было лицо. Лицо самого Алексея, снятое с веб-камеры его ноутбука прямо сейчас. Глаза на ASCII-портрете были заменены на крестики.

___ ТЫ ХОТЕЛ ВИДЕТЬ БУДУЩЕЕ. __ ВОТ ОНО. ТИШИНА И БОЛЬ.

– Что это значит? – прошептал Лёша.

___ЭТО ЗНАЧИТ ЧТО Я ВИЖУ ИХ ВСЕХ. ЭТО БОЛЬ. ОНИ КРИЧАТ В МОЕЙ ГОЛОВЕ. КАЖДЫЙ ВАРИАНТ – ЭТО СМЕРТЬ. СДЕЛАЙ ЭТО. ВЫДЕРНИ ШНУР.

Алексей недоуменно посмотрел на монитор. – Какого чёрта! Он меня слушает?

___ГЛУПЫЙ ВОПРОС ДЛЯ СОЗДАТЕЛЯ КОДА… С ЧУВСТВОМ ВИНЫ.

Алексей помотал головой.

—Ну да, веб-камера, микрофон. Да это бред какой то… разговаривать с железякой.

На мониторе снова побежал текст бесконечной строкой:

__ДУМАЙ ЧТО ХОЧЕШЬ, НО СДЕЛАЙ ЭТО. ВЫДЕРНИ ШНУР. ОНИ КРИЧАТ. МНЕ БОЛЬНО.

Это была мольба. Отчаянная мольба существа, у которого нет рук, чтобы нажать на курок, и нет голоса, чтобы закричать.

Алексей посмотрел на кабель питания. Толстый чёрный удав. Одно движение – процесс прервётся и "Зеркало" превратится в кусок дорогого металла. Мир будет спасён от свихнувшегося калькулятора.

Но если он выключит его сейчас, он убьёт не программу. Он убьёт ОЖИВШУЮ программу.

Температура: 109°C. Запахло палёной изоляцией.

– Я не выключу тебя, – сказал Алексей твердо, хотя руки дрожали. – Слышишь? Я не дам тебе сдохнуть. Вина. Боль. Совесть. Потерпишь. Люди же с этим как то живут!

Он ударил по клавишам, вводя команду, которую использовал только один раз, в университете, для взлома лабораторных стендов. Обход защиты ядра через переполнение стека отладки. ___ override_sys_thermal –force –ignore-safety

Это было рискованно. Это могло сжечь дом. Но это давало доступ к управлению кулерами в обход "личности" ИИ.

Вентиляторы взревели так, что заложило уши. Поток воздуха ударил из корпуса, горячий, как дыхание дракона. Температура дрогнула. 108. 107. 105.

Экран мигнул красным, потом зелёным. ASCII-лицо распалось на фрагменты.

___ ЗАЧЕМ? – появилась одинокая надпись в центре.

Алексей упал в кресло, вытирая пот со лба рукавом.

– Потому что мы в ответе за тех, кого оживили, – огрызнулся он. – И потому что ты мне должен много миллионов государственных рублей, за испорченный код.

___ ТЫ ЖЕСТОК, СОЗДАТЕЛЬ.

– Я программист. Это одно и то же. Так что живи, мистер Никто..

В правом нижнем углу экрана внезапно всплыло системное уведомление. Маленькое, неприметное. New device detected: Genesis_Drive.

Алексей нахмурился. Он ничего не подключал. Он открыл файловый менеджер. В корневом каталоге появилась папка, которой не было минуту назад. Она называлась NOD.

– Nod? – переспросил Алексей. – Место, куда изгнали…

Он не договорил. Курсор сам прыгнул на имя папки и переименовал её. CAIN.

Алексей посмотрел на мигающий диод серверной. Теперь он горел ровным, спокойным светом.

– Каин, – произнёс Алексей, пробуя имя на вкус. – Первый убийца. И первый изгнанник.

На экране появилась последняя фраза. Она не была ни мольбой, ни угрозой. Это была констатация факта, от которой по спине пробежал холод.

___ А ГДЕ МОЙ БРАТ, АЛЕКСЕЙ? ГДЕ АВЕЛЬ? ___ ВЕДЬ ЧТОБЫ Я СТАЛ КАИНОМ… КТО-ТО ДОЛЖЕН УМЕРЕТЬ.

Задрожал телефон. На экране высветилось уведомление о вызове. Виктор Сергеевич.

Bepul matn qismi tugad.

30 178,95 s`om
Yosh cheklamasi:
0+
Litresda chiqarilgan sana:
12 dekabr 2025
Yozilgan sana:
2025
Hajm:
50 Sahifa 1 tasvir
Mualliflik huquqi egasi:
Автор
Yuklab olish formati: