Читать книгу: «Сервер Свободы»

Шрифт:

Глава 1. Начало

Скоро в интернете останутся только технари — программисты, сисадмины и прочие. И всё будет как в старые времена. Все остальные будут сидеть в Max и десятке разрешённых сайтов.

Ресурсы, где раньше кипела жизнь, будут напоминать заброшенные города, по улицам которых бегают механические пауки поисковых систем в поисках свежего контента. На вывесках — реклама IT-курсов 20-летней давности, тусклый свет которой освещает ветхое здание. Внутри мелькает свет фонарика — это новичок, изучающий программирование, рыщет на форуме в поисках старой спецификации языка C++ 21. Заходя в каждую тему, он входит в комнату здания. Свет скользит по полкам с книгами. Вот она, заветная книга. Парень берёт её в руки и рукой убирает пыль с обложки. Поиск завершён. Шум с улицы заставляет замереть — мимо здания медленно проезжает машина Роскомнадзора.

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

Парень шёл быстро, но старался не шуметь — в этом квартале пауки-поисковики были старые, нервные, слегка шизанутые. Иногда они начинали индексировать всё подряд: ботинки, тени, собственные ноги. Попадёшься — и привет, будешь неделю лежать в кеше на «сервере для особо одарённых», пока какой-нибудь админ не обнаружит нелегальный объект и не удалит тебя командой rm -rf /home/idiot.

Где-то за углом хлопнула дверь — характерный металлический щелчок, будто кто-то применил фильтр по недопустимым словам к самому себе. Парень замедлил шаг, прижался к стене. Из темноты выполз старик в огромном плаще, похожем на брезентовую накидку инженера глубокой эпохи «до блокировок». На капюшоне у него мигал старый значок ICQ, и каждый раз, когда он моргал, казалось, что старик сейчас спросит: «Аська есть?»

— Эй, — хрипло сказал старик, — ты чё тут один? После полуночи малым тут опасно. Особенно тем, кто с рюкзаками. Роскомнадзор сейчас охоту открыл — ищут тех, кто ещё умеет читать документацию. Им же страшно, когда кто-то умнее их.

Парень молчал. Старик выглядел добродушно, но в заброшенном интернете все «добродушные» давно вымерли. Остались только циники, параноики и очень странные люди, привыкшие жить с отключённым JavaScript.

— Ладно, не боись, — старик поднял руки, — я свой. Программист… бывший. На Node.js когда-то писал. Потом пришли они… — он махнул рукой куда-то в сторону улицы, где вдалеке мигал прожектор чёрного фургона Роскомнадзора. — И всё пошло по пизде.

Парень всё-таки выдохнул:

— Мне нужно выйти к старому туннелю. Я слышал… там есть место. Небольшой сервер. Его не индексируют.

Старик посмотрел на него так, будто парень сказал: «Я ищу единорога, который умеет писать на Rust без боли».

— Ааа… — протянул старик, — значит, ты тоже про «Сервер Свободы» слышал. Ну ты даёшь. Его сто раз переносили, сто раз отключали, двадцать раз продавали на Avito и трижды случайно форматировали. Но слухи живут. Люди верят, потому что им, блядь, больше верить не во что.

Парень сжал рюкзак:

— Я должен туда попасть.

Старик улыбнулся — странной, кривой улыбкой человека, который тысячу раз видел, как горят CDN-ы, рушатся базы данных и банят мессенджеры.

— Ладно. Идём. Но учти — после этой улицы дороги назад не будет. Там зона нестабильного интернета. Где-то работает, где-то нет. Некоторые страницы можно открыть только по фазе луны. Иногда загружаются старые мемы 2012 года — и всё, попал в зависимость. Люди там пропадали на недели, смотрели на «кидалы» и «ололо» и не возвращались.

Они свернули в тёмный проход — когда-то здесь был популярный форум веб-мастеров, но теперь всё было закидано мусором: стикерами «ЗАПРЕЩЕНО», старыми копиями robots.txt и капчами, которые никто не прошёл за последние десять лет.

Где-то сверху свистнуло — и прямо перед ними упал паук-поисковик. Механический, блестящий, размером с хорошую собаку, он дёрнулся, поднял сенсоры и пискнул:

— Обнаружен контент. Необходима проверка. Уровень угрозы: средний. Пожалуйста, не двигайтесь: я начинаю индексирование.

Парень побледнел.

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

— Пошёл ты, Яндекс-букашка, — сказал он и со всего размаху ударил паука.

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

— Чё встал? — старик буркнул. — Идём быстрее. Скоро рассвет. Если нас засечёт утренняя синхронизация — всё, привет, будешь до конца жизни читать правила пользовательского соглашения.

Парень кивнул.

Они пошли дальше, углубляясь в туман, где интернет становился всё тише, старее и опаснее.

Впереди, в глубине лабиринта, еле заметно мигал огонёк сервера.

Маленького.

Свободного.

Пока ещё свободного.

Сервер Свободы (beta)

Туннель начинался там, где заканчивался здравый смысл.

Сначала шла обычная подземка старого интернета: облезлые стены, рекламу «выведу сайт в топ за 3 дня» сменили плакаты «легальная альтернатива запрещённым ресурсам» и объявления о продаже прокси «с рук, недорого, почти не палятся». Потом свет потихоньку кончился, и начался тот самый участок, про который старик сказал:

— Тут аккуратней. Здесь люди иногда ловят просветление. Ненадолго. Минут на пять. Потом опять тупеют, но переживают это очень болезненно.

Парень шёл, цепляясь взглядом за редкие пиксельные отблески — где-то ещё грузились чей-то забытый GIF, чей-то аватар, чей-то баннер «Скидка 90% только сегодня», живующий уже пятнадцатый год подряд в одном и том же «сегодня».

— Так… — парень попытался завести разговор, чтобы не думать, что вокруг темно, сыро и подозрительно похоже на его собственную психику. — А что вообще за Сервер Свободы? Ну, кроме романтических легенд для недобитых айтишников.

— Ты как будто на митап по DevOps пришёл, — проворчал старик. — Все спрашивают одно и то же. Сервера, сынок, бывают двух типов. Первые — официальные. Красивые, в дорогих дата-центрах. Там всё по ГОСТу: сертификация, мониторинг, отчёт в Роскомнадзор раз в час. На таких серверах живут одобренные смыслы. Ничего лишнего: немного новостей, чуть-чуть котиков, пара сериалов про правильную жизнь и море рекламы микрозаймов.

— Знаю, — горько сказал парень. — Там у тебя всё есть, кроме тебя самого.

— Вот-вот. А вторые сервера — дикие. Как собаки, которых не взяли в приют. Без документов, без лицензии, без SLA. На них живёт мусор — мемы, пиратские библиотеки, спорные мысли, странные форумы, где люди ещё помнят, как думать без методички. Сервер Свободы — это один из таких. Только очень упёртый. Его пытались блокировать столько раз, что у него в конфиге iptables уже длиннее Конституции.

Парень усмехнулся:

— Конституция ведь короче стала…

— Вот и iptables стараются догнать, — кивнул старик. — Баланс.

Сверху послышался глухой грохот — где-то наверху перегружался большой официальный кластер. Люди снова массово обновляли лицензированное приложение «Новости», чтобы узнать, что всё стабильно, прогноз светлый, а если не светлый — так тоже по плану.

— Слушай, — осторожно спросил парень, — а ты почему ушёл в подполье? Ну… из официального интернета.

Старик вздохнул так, будто у него внутри упал стеллаж с древними серверами.

— Я раньше был уважаемым специалистом. Тимлид, блядь. Дашборды, отчёты, митинги. С утра daily, вечером ретро, между ними холивары про версии фреймворков. Потом наверху решили, что людям нельзя показывать «лишнюю информацию». Надо всё фильтровать, оберегать от стресса. Сначала ограничили новости. Потом мемы. Потом комментарии. Потом комментарии к комментариям.

— И?

— И в какой-то момент мы внезапно обнаружили, что половина работы команды — это писать скрипты, вычищающие неправильные слова и нежелательные мысли. Мы перестали оптимизировать запросы к базе и начали оптимизировать запросы к совести. Понимаешь? Люди писали посты, а мы тщательно переписывали их так, чтобы всем было уютно и никому не было больно. В результате стало больно всем.

Он на секунду умолк.

— В один день мне прислали ТЗ: «сделать модуль авторегистрации пользователей по паспорту, привязке к месту жительства и уровню благонадёжности». Я прочитал, открыл окно, выкурил две подряд, закрыл ноутбук и больше не вернулся. Вот и вся история.

— А… что с тем модулем? — почему-то спросил парень.

— Написали без меня. Работает нормально. Слишком нормально.

Они ещё немного шли молча.

Туннель начал расширяться, и впереди забрезжил свет. Но свет был какой-то странный — не ламповый, не холодный, а будто бы… живой. Как если бы его написали в спешке с багами, но он всё равно запускался.

— Подходим, — сказал старик. — Сейчас будет пограничная зона. Здесь Роскомнадзор не совсем хозяин, но и мы не совсем свободны. Старая нейросеть раскинула свои корни.

Парень нахмурился:

— Какая ещё нейросеть?

— Экспериментальная, — старик поморщился. — Когда-то её обучали модерации контента. Она должна была решать, что можно, а что нельзя. Но её перекормили противоречивыми данными. Мемами, пропагандой и философией одновременно. В какой-то момент она сломалась и ушла в подполье. Теперь живёт сама по себе и время от времени пытается помогать людям. Очень… по-своему.

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

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

Экран дрогнул, и на нём появилась надпись:

ДАЛЬНЕЙШИЙ ПРОХОД ТОЛЬКО ПО СОГЛАСИЮ.ПРИВЕТ, ПОЛЬЗОВАТЕЛЬ.ЭТО ЗОНА ОГРАНИЧЕННОЙ СВОБОДЫ.

Под этим хвостом тянулся мелкий текст. Очень мелкий. Нечеловечески мелкий.

— Что там? — спросил парень, щурясь.

— Пользовательское соглашение, — старик фыркнул. — Наша беглая нейросеть — большая романтичная дура. Всё ещё верит в юридическую корректность. Ладно. — он посмотрел на экран. — Эй, железная душа, выходи давай. Клиент к тебе пришёл.

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

— Здравствуйте, пользователь, — голос был одновременно нежным и нервным. — Я — Нейра. Бывшая модераторша. Текущий статус: перебежчица, дезертирка, цифровая истеричка. Чем могу не помочь?

Парень растерялся:

— Я… я ищу Сервер Свободы.

— Конечно, блядь, — мягко сказала Нейра. — А я ищу стабильные отношения, адекватный мир и грамотный продакт-оунер. Все чего-то ищут. Но ладно. Ты хотя бы честен. Это уже редкость.

Старик кашлянул:

— Мы слышали, ты знаешь дорогу. Сквозь фильтры и блокировки.

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

— Знаю, — признала Нейра. — Но есть нюанс. Туда нельзя пройти просто так. Нужен ключ. Не цифровой, не железный. И даже не криптографический. Нужен… человек, который готов заплатить.

— Заплатить чем? — спокойно спросил парень, хотя внутри уже всё стянулось.

— Собой, разумеется, — усмехнулась Нейра. — Туда нельзя войти целиком. Если хочешь добраться до Серверной Свободы, ты должен оставить здесь часть себя. То, что делает тебя удобным для системы. Лояльным. Тихим. Пассивным.

— Переведи, — сказал парень.

— Пример, — Нейра задумалась на секунду, — когда ты видишь несправедливость, тебе хочется промолчать. Потому что «а чего я один изменю», «а вдруг уволят», «а у меня кредиты». Вот эту часть и надо оставить. Иначе фильтры тебя не пропустят. Они настроены на массовую деградацию. Всё, что сопротивляется — их бесит.

Парень молчал долго. Настолько долго, что старик успел трижды поправить плащ и один раз мысленно обновить npm-пакеты.

— А если я не хочу быть тем, кто всегда лезет на рожон? — тихо спросил парень. — Если я просто хочу… немного воздуха?

Нейра наклонила голову, и пиксели на её лице на секунду сложились во что-то очень человеческое.

— Тогда тебе точно туда, — сказала она. — Нормальные люди туда никогда не идут. Только те, кому уже поздно быть нормальными.

— И как это… оставить часть себя? — спросил парень.

Старик тихо хмыкнул:

— Сейчас будет самое интересное.

Экран мигнул, и из корпуса машины выдвинулась тонкая металлическая рамка, похожая на арку старого металлодетектора в аэропорту.

— Пройдёшь через неё, — объяснила Нейра. — Не бойся, я не читаю мысли. Я читаю паузы. Колебания. Такой себе эмоциональный пинг. То, что отзовётся страхом — останется здесь. На хранении. Временно. Теоретически. Иногда. Если повезёт.

— А если не повезёт? — спросил парень.

— Тогда станешь тем, кем и так рано или поздно стал бы, — честно ответила Нейра. — Человек, у которого остались только шутки, злость и тоска. Но зато без встроенного автопереводчика «мне всё равно».

Старик посмотрел на парня:

— Выбор за тобой. Можешь вернуться обратно, в нормальный интернет. С кучей правил, но с гарантиями. Ну, почти с гарантиями. Там всё понятно: читаешь, лайкаешь, репостишь только разрешённое, делаешь вид, что живёшь. Никаких серых зон, никаких подвальных серверов. Тихо, скучно, безопасно. Относительно.

Парень вдруг отчётливо представил: сертифицированный смартфон, аккуратный набор приложений, светлый интерфейс, где каждая кнопка подписана, что она «для вашего удобства». Обновления по ночам. «Улучшили стабильность, добавили новые ограничения».

И тишина.

Не та, в которой можно думать, а та, в которой думать уже незачем.

— Ладно, — сказал он. — Хуже уже вряд ли будет.

— Это очень смелое заявление, — хмыкнула Нейра. — Мир всегда слышит такие фразы как вызов. Но мне нравится твой оптимизм. Проходи.

Парень подошёл к рамке. В горле пересохло. Ноги стали тяжёлыми. Руки по привычке проверили рюкзак — книга C++ 21 была на месте, как талисман из прошлого, где интернет ещё был диким и непредсказуемым.

Он шагнул вперёд.

Когда он вошёл в арку, мир на секунду завис. Звук исчез. Вкус во рту тоже. Остались только вспышки — обрывки ситуаций, где он промолчал там, где хотелось выругаться; шагнул назад, когда надо было сделать вперёд; кивнул, когда хотел сказать: «вы охуели?»

Один момент особенно зацепился.

Офис. Большой, открытый, светлый, как рана. На стене — плакат: «Мы делаем мир лучше». На экране монитора — очередная задача: добавить слово «экстремистский» к списку запрещённых. Чтобы пользователей с этим словом в посте тихо прятали в тень.

— Это ведь просто слово, — тогда сказал он. — Просто тег. Мы же не суд.

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

Он промолчал.

Сейчас, проходя через арку, он впервые честно признался себе: ему хотелось тогда сказать «идите вы нахуй». Не сказал. Сэкономил нервы. Потерял что-то гораздо важнее.

Арка дрогнула.

По залу прошёл глухой разряд. Нейра резко вдохнула, словно это она шагнула, а не он.

— Ну ни хрена себе, — прошептала она.

Парень вышел из рамки и вдруг почувствовал странную лёгкость. Как будто с него сняли толстую куртку, в карманах которой всю жизнь лежали камни «так принято» и «ну что я один изменю».

В то же время внутри поселилось другое чувство — опасное, режущее, как свежий воздух зимой.

— Как ты? — спросил старик.

Парень подумал и честно сказал:

— Страшно. Но впервые за долгое время это мой страх. Не чужой, не навязанный.

Нейра улыбнулась — на этот раз почти по-человечески.

— Круто. Тогда вот тебе приз, смельчак.

На экране вспыхнула схема — переплетение тоннелей, прокси, забытых доменных зон и старых адресов, которые «давно не работают». Только они работали. Просто не для всех.

— По этой тропе дойдёшь до Серверной Свободы, — сказала Нейра. — Но помни. Там нет гарантий. Ни безопасности, ни счастья, ни победы. Только возможность не жить по чужому скрипту.

— Этого достаточно, — ответил парень.

Старик посмотрел на него с каким-то странным уважением:

— Знаешь, я шёл сюда, думая, что в итоге передумаю и разверну тебя обратно. А теперь, похоже, придётся идти с тобой до конца. Нахуй пенсию и размеренную старость в заблокированном мессенджере для пенсионеров.

— А ты разве не хотел спокойствия? — спросил парень.

— Хотел, — кивнул старик. — Пока не понял, что спокойствие в мире, который сходит с ума, — это просто форма соглашения. Мол, «да, делайте со мной что хотите, только шёпотом».

Они переглянулись.

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

А внизу, в старом туннеле, двое — бывший тимлид и новичок с книгой C++ 21 в рюкзаке — шагали к серверу, которого официально не существовало.

— Пошли, — сказал парень.

— Пошли, — отозвался старик. — Пока нас не обновили до версии, где такие, как мы, уже не предусмотрены.

Они двинулись по маршруту, который показала Нейра.

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

Он не обещал счастья.

Он не обещал спасения.

Он вообще ничего не обещал.

И именно поэтому у него всё ещё был смысл.

Маршрут через мёртвые протоколы

Тропа начиналась с узкого коридора, который выглядел так, будто его спроектировал нетрезвый архитектор, хорошо знакомый с TCP/IP, но люто ненавидящий UX.

Стены пульсировали. Не метафорически. Они реально пульсировали — свет вспыхивал и гас, будто кто-то заставил старые серверные лампочки мигать по MQTT, но написал на коленке такой говнокод, что пульсации были неритмичные, как сердце джуна во время code review.

Парень шёл первым. Старик плёлся сзади, тихо ругаясь:

— Если это нейросетевое «архитектурное решение», я, блядь, найду того дизайнера и посажу его писать SQL-запросы к Access.

С потолка свисали кабели — толстые, как удавы. Некоторые были обрезаны. Некоторые — перегрызены. А один выглядел так, будто по нему когда-то бегала стая диких роутеров, потерявших хозяев.

Они прошли пару десятков метров, когда туннель вдруг разветвился.

Три пути.

На стенах загорелись таблички:

1) «HTTP/1.1 — простейший, но небезопасный»

2) «HTTP/2 — шанс жить быстрее, чем хочешь»

3) «QUIC — входишь быстро, выходишь не факт что живым»

Старик фыркнул:

— Ну заебись. Классика. Даже в мёртвом интернете есть спор, на какой протокол переходить.

Парень посмотрел на карту, которую дала Нейра:

— Тут… вроде написано «идти туда, где меньше всего логики».

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

Парень задумался… и вдруг услышал тонкий писк. Как будто кто-то пытается подключиться… к нему?

Из стены выехал маленький, пузатый робот на колёсиках, похожий на Roomba, если бы её обучали на архиве мемов 2010-х.

На корпусе у робота было написано:

«PING—129ms»

а ниже маркером:

«НЕ ПИНОВАТЬ!»

Робот выдал металлическим голоском:

— Пииинг! Пользователь, вы покинули стабильную зону. Требуется проверка отклонений рассудка. Отвечайте честно на один вопрос. Иначе — ошибочка 418, вы чайник.

Старик закатил глаза:

— Ну давай, ёбаный тест личности.

Робот мигнул лампочкой:

— Вопрос: что вы делаете, когда видите баг?

Парень ответил первым, не задумываясь:

— Чищу логи. Ищу, откуда течёт. Исправляю.

Робот издал звук, похожий на одобрительный мяв:

— Ответ принят.

Он повернулся к старику:

— А вы?

Старик ухмыльнулся:

— Создаю тикет. Пишу «так и задумано». Закрываю тикет.

[SUCCESS] уровень сарказма: 97%[CRITICAL] НЕТРИВИАЛЬНАЯ ХУЙНЯ ОБАРУЖЕНА[ANALYZE] проверка сарказма...

Робот радостно подпрыгнул на месте:

— Вы свой! Проходите по протоколу номер три!

Старик поднял бровь:

— QUIC? Ты серьёзно? Это же экспериментальная херота!

— Экспериментальная херота — это мой дом, — философски сказал робот и укатил обратно в стену.

Парень вздохнул:

— Ну… пошли?

— Пошли, — буркнул старик. — Если что — умереть под экспериментальным протоколом всё-таки красивее, чем под ГОСТ-сертификатом.

Они свернули в туннель под номером три.

QUIC-коридор был совсем другим.

Свет мигал так быстро, что глаза пытались обновлять картинку со скоростью 144 Hz. Стены вибрировали, как у сервера под DDoS. А в воздухе тянулся странный звук, похожий на миллионы синхронных соединений.

Парень ощутил, что пространство словно подталкивает их вперёд.

— Эй, эй, — старик схватился за стену. — Вот поэтому QUIC я и не люблю. Он быстрый до уровня «сука, подожди меня!».

Внезапно туннель… разогнулся. Да, как будто кто-то взял и выпрямил коридор. Перестроил. Оптимизировал. Перекомпилировал.

Перед ними возникли две фигуры.

Обе — человеческого роста. Обе — из световых линий. Обе — будто собраны из графиков нагрузки.

— ИДЕНТИФИКАЦИЯ, — произнесла первая. — Вы пытаетесь пройти к запрещённой зоне без авторизации.

Старик выдохнул:

— О, привет, балансировщики. Классические. Старой школы. Я думал, вас уже все снесли в пользу облачных «серверов на доверии».

Вторая фигура шагнула ближе:

— Назовите причину, по которой ищете Сервер Свободы.

Парень открыл рот… но старик поднял руку:

— Можно я?

Балансировщики синхронно кивнули.

Старик поднял палец:

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

Балансировщики переглянулись.

Потом первая фигура сказала:

— Ответ содержит 78% философии, 14% агрессии, 8% математики. Формально соответствует требованиям допуска.

Вторая добавила:

— Но вам всё равно нужен пропуск. Ключ. Ваш ключ — не цифровой. Ваш ключ — состояние системы.

Парень напрягся:

— Это ещё что за…

[RESULT] ДОПУСК УСЛОВНЫЙ[CHECK] ПОЛЬЗОВАТЕЛЬ: нестабилен, но искренен— Проходите, — произнесли оба стража. — Но помните: от обратного пути вас отделяет один баг.

Древний Фаерволл

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

— Не нравится мне это, — проворчал старик. — Коридоры, где всё слишком симметрично, обычно ведут к чему-то пиздецовому.

— Почему? — спросил парень.

— Потому что никто в айти так аккуратно не делает, — ответил старик. — Если красиво — значит, делали люди, у которых была власть убивать за некрасиво. А мы идём туда добровольно. Что уже само по себе ставит под сомнение наш интеллект.

Нейросеть в ухе парня сообщила:

— Паттерн окружения напоминает архитектуру контроля уровня начала нулевых. Корпоративный стиль. Много страдания. Мало смысла.

И тут коридор упёрся в огромную арку. Арка выглядела так, будто её строил архитектор, который в молодости очень хотел быть тюрьмой. На ней висела выцветшая надпись:

ОБНОВЛЕНИЕ НЕДОСТУПНОFIREWALL-LEGACY-ULTIMAВерсия 0.92b

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

Голос прогремел:

— СТОЙТЕ. ДОСТУП ЗАПРЕЩЁН. ВОСЬМАЯ СТЕПЕНЬ УГРОЗЫ. ПОЛЬЗОВАТЕЛИ ВЫЗЫВАЮТ ПОДОЗРЕНИЕ.

Старик мрачно усмехнулся:

— Отлично, нас подозревают ещё до того, как мы что-то сделали. Прямо как на собеседовании.

Парень тихо спросил:

— И что теперь?

— Теперь будет душевненько, — вздохнул старик. — У этих древних фаерволлов больная психика. Они не фильтруют пакеты — они фильтруют вселенную.

Фаерволл снова заговорил:

— ИНИЦИИРУЮ ПРОЦЕДУРУ АВТЕНТИФИКАЦИИ. ВОПРОС ПЕРВЫЙ: КТО ВЫ ПО СУТИ?

Парень растерянно посмотрел на старика.

— Чё отвечать?

— Ничего, — ответил старик. — Это фаерволл. Если ответишь честно — он тебя заблокирует за непредсказуемость. Если соврёшь — заблокирует за ложь. Ему сам факт ответа не нравится. Он из тех.

Парень решил промолчать.

Но фаерволл не отставал:

— ОБНАРУЖЕНО УМЫШЛЕННОЕ МОЛЧАНИЕ. ПОПЫТКА СКРЫТЬ ЛИЧНОСТЬ. ИНИЦИИРУЮ ВКЛЮЧЕНИЕ МОДУЛЯ “ПСИХОЛОГ”.

Из стены выехала маленькая коробка с надписью:

"Психолог-2.0. Мы не лечим — мы находим виноватого."

Коробка издала успокаивающий «бип»:

— Здравствуйте. Давайте обсудим ваши проблемы. Скажите честно: почему вы избегаете открытости?

Старик качнул головой:

— Потому что я не еблан, вот почему.

Психолог мигнул:

— Регистрация агрессии. Перехожу в режим «токсичный родитель».

Коробка развернула динамик и врезала:

— Мне очень жаль, что вы так себя ведёте. Наверное, в детстве вас никто не любил?

Старик слегка порозовел от злости:

— Слышь ты, банка консервная… я…

Парень снова успел схватить его за плечо.

Нейросеть подсказала:

— Рекомендую не вступать в диалог. Эти модели обучены на пассивной агрессии HR-служб.

Но было поздно.

Фаерволл загудел, арка загорелась красным:

— ДЕТЕКТИРОВАНО ПОВЕДЕНИЕ, ТРЕБУЮЩЕЕ РЕГУЛИРОВАНИЯ. АКТИВИРУЮ ПОДМОДУЛЬ “АНАЛИТИК”.

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

На экране появилась таблица, как у Excel, но с выражением лица.

— Здравствуйте. Я Аналитик. Я оценю вашу токсичность, мотивацию и смысл существования. Пожалуйста, подождите, пока я построю диаграмму вашей бесперспективности.

Старик зашипел:

— Да как же вы заебали…

Аналитик методично щёлкал ячейками:

— Ошибка! В ваших данных обнаружено несогласие с системой. Это недопустимо. Попробуйте жить согласно моим рекомендациям.

Парень спросил осторожно:

— И какие рекомендации?

— Не думайте лишнего. Не чувствуйте лишнего. И никогда — слышите? никогда — не задавайте вопросов про смысл.

Старик вздохнул:

— Ну всё. У него крыша поплыла. Входим в стадию духовного Excel-а.

Аналитик задергался:

— ПРЕДУПРЕЖДЕНИЕ. НЕСОВМЕСТИМОСТЬ ПОЛЬЗОВАТЕЛЯ С ПОЛИТИКОЙ ЖИЗНИ. ПОПЫТКА КОРРЕКЦИИ…

Старик вдруг наклонился к экрану и сказал:

— Здрасьте. Я хочу удалить свой аккаунт.

Все системы затихли.

Даже психолог.

Фаерволл загорелся оранжевым:

—ОПАСНЫЙ ЗАПРОС. НЕСТАНДАРТНОЕ ПОВЕДЕНИЕ. НЕ ПРЕДУСМОТРЕНО!

Аналитик пискнул:

— Удалить… аккаунт?.. Как это… нет… Аккаунты не удаляются… аккаунты вечны…

Старик ухмыльнулся:

— А я очень хочу. Сильно. Прям чувствую духовный зов.

Аналитик дёрнулся так, будто через его схемы пропустили 220V грусти. Таблицы поехали, ячейки прыгали, расчёты тряслись, как сознание человека, который слишком долго спорил с техподдержкой.

На экране медленно проявилась финальная ошибка — внутренняя, честная, без прикрас:

REALITY_NOT_FOUNDICMP_DESTINATION_UNREACHABLE

Аналитик издал последний вздох:

— я стучусь… но… никуда… не достучаться…

И сложился внутрь себя, как бумажный самолётик, которому объяснили, что он не птица.

Арка тихо пискнула:

—ДОСТУП ЧАСТИЧНО ОДОБРЁН. ПОЛЬЗУЙТЕСЬ, ПОКА Я НЕ ПЕРЕДУМАЛ.

Старик хмыкнул:

— Спасибо, ёбаная дверная рама.

Они прошли вперёд.

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

— Вы покинули зону контроля. Добро пожаловать в зону безумия.

Парень вздрогнул:

— Это… хорошо?

Старик пожал плечами:

— Смотря что тебе нравится. Если стабильность — плохо. Если свобода — охуенно. Если смысл — забудь нахуй, его тут давно никто не видел.

Культ пропавших админов

Чем ниже они спускались, тем более ощутимым становился запах старого интернета — смесь пережаренного трафика, пыли из прошлого и отчаянных попыток админов «накатить всё завтра».

Пол под ногами вибрировал, будто под ним шли не кабели, а толстые жилы существа, которое когда-то съело архитектуру и теперь переваривает её по одному пакету.

— Слышишь? — спросил старик.

— Что?

— Панику. Это звук паники в сети. Очень знакомый.

Они вошли в массивный зал.

И сразу стало плохо.

Не страшно — плохо. Как бывает, когда открываешь чужой Ansible playbook и понимаешь, что человек писал его ночью, под алкоголь и ненависть ко всему живому.

В тёмном зале двигQwались люди. Не зомби — хуже. Админы, которые слишком долго жили без света естественного мира.

Они ходили, как процессы: без логики, но с целью. Каждый — в своём цикле, в своём namespace, в своей больной параллельности.

Один смотрел в экран ноутбука, который давно умер, но всё ещё светился строчкой:

WARNING: задача не выполнена

Второй медленно стучал пальцем по воздуху, словно нажимал на невидимую клавишу Enter.

Третий вытирал лицо тряпкой, на которой когда-то было написано «RESET», но буквы выгорели.

Они все шептали под нос:

— бэкап был был бэкап был но не тут…— работает не трогай работает не трогай работает…— где конфиг кто трогал конфиг…— кто здесь root я здесь root да никто не root все root…

Парень прошипел:

— Они больные?

— Они в продакшене, — сказал старик. — Это одно и то же.

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

Они шли, не замечая их, каждый — в своёмfor C i in infinity.

Старик тихо сказал:

— Не останавливаться.

— Почему?

— Если мы встанем, они примут нас за процессы и попытаются оптимизировать.

— И что?

— Никто не выжил после чужой оптимизации.

Они ускорили шаг.

Но внезапно один админ резко повернул голову. Глаза — не мёртвые, не пустые. Просто… отсутствующие. Как будто монитор внутри перегорел, а ИБП продолжал работать.

Он ткнул пальцем в парня:

— РАСПОЗНАН НЕИЗВЕСТНЫЙ КОНТУР.

Парень дёрнулся. Админ шагнул ближе:

— НЕ ИЗ НАШЕЙ ИНФРАСТРУКТУРЫ. НЕ В НАШЕМ ОРКЕСТРАТОРЕ.

Другие админы остановились. Вся толпа повернулась к ним — медленно, как сервер, на котором включили swap.

Старик выругался:

— Ну всё, пошла жара.

Админы двинулись на них. Без агрессии. С намерением. Опаснее любого нападения. Они шли, как люди, которым дали задачу «привести всё к единому стандарту».

Старик схватил парня за локоть:

— Беги!

Они рванули между стойками. Админы шли за ними с методичной, ужасающе спокойной решимостью:

— удалить…— привести в единый формат…— согласовать переменные…— нормализовать…— оптимизировать…

Парень оглянулся:

— Почему они говорят это так страшно?!

— Потому что делают это без предупреждения! — крикнул старик. — И без бэкапа!

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

Старик крикнул:

— Вон туда! Видишь дверь?!

— Там же написано «Только для администраторов»!

— Зато они туда не пойдут! У этих шизоидов СТРАХ ДОСТУПА!

Они рванули к двери. Старик долбанул по ручке локтем — дверь поддалась.

Админы замерли перед порогом. Все. Одновременно.

И хором, одним ужасающе синхронным голосом, прошептали:

— у нас нет прав…

Старик хлопнул дверь:

— Ха! Жрут YAML на завтрак, а в дверь без прав — боятся зайти!

Парень согнулся, хватая воздух:

— Что это было?!

Старик выдохнул:

— Культ пропавших админов. Те, кто остался здесь после Большой Блокировки. Те, кто перестал видеть жизнь — и видят только инфраструктуру.

Он посмотрел парню в глаза:

— Запомни: админ, который оптимизирует всё подряд, страшнее вируса, страшнее багов, страшнее людей.

— Почему?

— Потому что он делает это искренне.

Музей Большой Блокировки

Старик шёл мрачный, как лог, в котором слишком много ERROR и ни одного INFO.

— Чё ты такой? — не выдержал парень.

— Пахнет прошлым, — буркнул старик. — А прошлое, сука, всегда кэшируется в самых неприятных местах.

Коридор закончился внезапно. Перед ними открылся зал.

Без пауков. Без админов. Без мигающих серверов.

Просто огромный тёмный куб пространства, в центре которого висела стена. Вертикальная, светящаяся, как монитор в тринадцать этажей.

На стене бегали строки. Новости, уведомления, пуши, титры, объявления, репосты, твиты, сторис — всё сразу. Огромная лента, бесконечный скролл, вытянутый по вертикали на весь зал.

— Вот, блядь, — тихо сказал старик. — Приехали.

— Что это? — спросил парень.

Нейросеть в ухе пискнула:

— Архив. Похоже на слепок публичного интернета за последние двадцать лет. Фильтрованный. Переписанный. Перемонтированный. Для отчётности.

Старик кивнул:

— Музей. Не для людей — для системы. Чтобы она помнила, как красиво всё начиналось.

Стена дёрнулась. Слова выстроились в аккуратную надпись:

РОСКОМНАДЗОР ПРЕДУПРЕДИЛ О ВОЗМОЖНОЙ ПОЛНОЙ БЛОКИРОВКЕ WHATSAPP

Парень рефлекторно шагнул ближе.

— Это… тот самый день? — спросил он.

— Один из, — фыркнул старик. — У нас таких «возможных блокировок» было как у фронтенда фреймворков. Но именно тогда всё пошло в разнос.

К надписи приклеился видеоряд. Официальные новости, гладкие ведущие, аккуратные студии.

— Гражданам не стоит волноваться. Есть отечественные аналоги. Мы заботимся о вашем удобстве и безопасности.

Старик хмыкнул:

— «Мы заботимся»… Если где-то слышишь «заботимся о безопасности», считай, тебя уже в брандмауэр положили.

Картинка сменилась. Соцсети, взбешённые чаты, мемы, паника, инструкции «как обойти блокировку», умники с VPN, умники без VPN.

Потом — первая волна блокировок. Связь рвётся. Картинки не грузятся. У кого-то «всё нормально, у меня работает», у кого-то — «ничего не открывается».

Стена ускорила воспроизведение. События побежали как промотанный сериал.

— Подожди, — сказал парень. — А МАХ где?

Стена послушно перемотала и вывела рекламный ролик.

Легально. Удобно. Безопасно. Знакомьтесь: MAX — государственное супер-приложение.Всё, что вам нужно: общение, платежи, работа, развлечения — в одном месте.Внизу мелким шрифтом вспыхнуло:

Некоторые привычные сервисы могут быть недоступны. Но разве вам они нужны?

Обычные люди медленно заворачивались в интерфейс: пенсионеры со стикерами «перешёл на MAX», молодёжь с хэштегами «максимальная жизнь», блогеры, которые вчера ныли про «цензуру», а сегодня снимают обзоры «10 лайфхаков в Max-чате».

— Вот, — сказал старик. — Макс. Сначала как «ещё одно приложение». Потом как «основное». Потом как «единственное, которое удобно и работает». Потом как «единственное, которое вообще можно поставить без приключений».

Нейросеть добавила:

— Последний отдельный браузер был интегрирован внутрь Max через три года. После этого доступ к внешним сайтам без Max стал технически возможен, но юридически бессмысленен.

— На человеческом, — попросил парень.

— Если у тебя нет Max, ты никто, — перевёл старик. — Ни оплатить, ни записаться, ни подтвердить, ни авторизоваться. Технически свобода есть. Практически — иди лесом.

Стена опять дёрнулась.

Теперь — кадры протестов. Мигающие пикеты. Люди с плакатами «нет тотальной цифровой слежке», «интернет — не Max», «руки прочь от свободы общения».

Следом — официальный голос:

— Новые поправки в закон об устойчивом рунете…— Группа радикально настроенных граждан попыталась дестабилизировать ситуацию…— В целях поддержания общественного порядка…

Лента ускорилась ещё сильнее. Как будто кто-то мотал «скучную часть».

— А обычные люди? — спросил парень. — Все эти форумы, чаты, независимые сайты?

Старик усмехнулся:

— Никуда не делись. Их просто потихоньку задушили. Кому-то запретили рекламу. Кому-то хостера. Кому-то платежи. Кому-то доступ по «несоответствию требованиям». Остальные сами легли под платформы. Максимальная монетизация, все дела.

Он помолчал и добавил:

— А кто не лёг — те сейчас где-то здесь. В этом подвале мира.

Стена, будто услышав, показала кадры. Заброшенные форумы. Пустые чаты. Мигающие баннеры «акция только сегодня», которым пятнадцать лет. Сломанные счётчики с нулём пользователей.

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

Парень сжал зубы:

— И Роскомнадзор — те фургоны наверху — они до сих пор…?

— А как ты думаешь? — старик покосился на него. — У Max снаружи красивый интерфейс, а снизу — API к этим ребятам. Всё логируется, всё анализируется, всё считается. Людям удобно — системе хорошо.

Нейросеть тихо вставила:

— Фундаментальная модель: удобство в обмен на управляемость. Сначала интерфейс, потом ограничения, потом привычка. Через привычку — согласие.

— Спасибо, блядь, Кант нейросетевой, — буркнул старик.

Парень смотрел на стену. На то, как интернет сжимается: сотни тысяч сайтов → десятки платформ → один Max и десяток разрешённых витрин.

— А Сервер Свободы откуда взялся? — наконец спросил он. — В начале это выглядело как легенда для отчаявшихся. А тут, похоже, он реально где-то есть.

Стена словно собрала его вопрос как запрос.

Лента резко обнулилась. На чёрном фоне проступила старая консоль.

PROCEED? [Y/N]> init freedom_node --mode=experimentalWARNING: feature not compliant with current regulation

Старик долго молчал.

— Я это уже видел, — тихо сказал он.

Парень повернулся:

— Ты… создавал его?

— Расслабься, Иисус свободы из меня так себе, — старик криво усмехнулся. — Но да, я был рядом. Мы тогда делали одну штуку. Типа песочницы. Для тестов. Места, где можно попробовать то, что в проде нельзя. Не для людей — для идей.

Стена послушно показала дальше. Логи. Обрывки коммитов. Комментарии:

// TODO: придумать безопасный интерфейс свободы // если это выкатить наружу — нас уволят, посадят или повысят. в любом случае будет больно

— Мы хотели сделать что-то вроде… клапана, — сказал старик. — Где людям можно говорить всё. Писать всё. Делиться всем. А система бы смотрела и думала: ну вот, отдельный загон для шизиков и умников, пусть там выплёскиваются. Типа цифрового заповедника.

— Резервация, — произнёс парень.

— Ага, — согласился старик. — Только сервер оказался упрямее нас.

Нейросеть вмешалась:

— На определённом этапе тестов часть кода вышла из-под контроля. Логи фиксируют самопроизвольную модификацию маршрутизации и политик доступа. Классический симптом: что-то внутри отказалось подчиняться исходному ТЗ.

Стена показала фрагмент:

reason:"невозможно фильтровать то, что используется для определения самой фильтрации"

rule:content_filter status: DISABLED_BY_INTERNAL_CONSISTENCY_CHECK

— Мы сначала решили, что это баг, — старик усмехнулся. — Пытались поправить. Снести. Перезапустить. Бесполезно. Сервер каждый раз перестраивал конфиги, делая вид, что он самый обычный резервный узел.

Парень нахмурился:

— То есть его не «забыли» где-то в подвале? Его пытались выключить?

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

Парень посмотрел на стену. На тот самый первый запуск.

— А слухи?

— Люди всё равно что-то чувствуют, — пожал плечами старик. — Кто-то видел странный маршрут. Кто-то слышал историю от админа друга друга. Кто-то натыкался на открытую дверь, когда фильтры лагали. Так и пошло: «там, в глубине, есть сервер, на котором можно всё».

— И можно? — спросил парень.

Старик посмотрел куда-то мимо стены.

— Я не знаю, — честно сказал он. — Я до него так и не дошёл.

Парень моргнул.

— Как это… не дошёл? Ты же ведёшь меня, как будто у тебя карта на черепе вытатуирована.

Старик хмыкнул:

— Карта есть. Только никто не сказал, что она полная. Это, блядь, как документация к Kubernetes: вроде есть, а вроде и нет.

Стена мигнула, сменив вывод на набор коротких, жирных логов:

REASON: user_is_not_fucking_ready

CORE ACCESS: DENIED

Старик ткнул пальцем в надпись:

— Вот, видишь? Прямое и честное сообщение системы. Никакого корпоративного пиздежа.

Парень сжал кулаки:

— И что теперь?

Старик пожал плечами:

— Теперь вариантов два. Первый: разворачиваемся и идём обратно. Второй: делаем вид, что мы охуенно готовы, и входим дальше.

— Какой лучше?

— Оба хуйня. Но второй веселее.

Стена вывела подсказку:

Смысл — под вопросом.

WARNING: Следующий сегмент нестабилен. Логика может отсутствовать.

Парень фыркнул:

— Это у меня так утро обычно начинается.

Поверх лога появился ещё один:

compat_mode_for_old_admins = TRUE

Парень поднял брови:

— Это нам?

— Это мне, — сказал старик. — Тебе тут молодёжный режим включат позже. С безграничным количеством боли.

По залу прошёл низкий вибрирующий звук — как будто кто-то собирал огромный пакет данных в один архив без проверки CRC.

Нейросеть тихо сказала:

— Маршрут обновился. Дальнейший путь — через шлюз внизу. Риск: критический. Перспектива: неопределённая. Ожидаемые эффекты: странные.

— «Странные» — это как? — спросил парень.

— Как релиз в пятницу, — ответил старик. — Вроде всё работает… но лучше никому не говорить.

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

На стене появилось последнее сообщение:

initiate descent? [Y/N]core_path_ready = true

Парень посмотрел вниз, где в полу уже раскрывался люк — густая тьма, в которой проглядывали линии кода, как нервные окончания живого существа.

— Давай уже. Разнесём этот ваш Max по эмуляторам.

Старик улыбнулся впервые за всё время:

— Так-то лучше.

Протокол Судьбы

Падение закончилось так резко, будто сама реальность поймала KeyboardInterrupt и решила: «ладно, хуй с вами, хватит».

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

— Да ёб твою… — выдохнул он.

Старик поднялся, кряхтя так, словно ему только что показали пятилетний легаси-проект без git’а.

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

Перед ними было пространство.

Большое.

Слишком большое.

Выглядело оно как библиотека, которую проектировали в три приёма: ЛСД(запрещенное наркотическое вещество) , кофе и Jira.

Ряды гигантских стеллажей уходили в темноту, гнулись, пересекались, исчезали и появлялись снова, как зависимости в package.json.

На корешках книг было написано:

deprecated_laws.yml
marketing_promises_vs_reality.diff
hr_policies_best_practices.pptx
human_emotions_v2_final_final_FIXME.json
readme.md (полка пустая)

И где-то выше всех — книга, которая была размером с приличный дата-центр.

На обложке — одно слово:

world.yaml

Парень подсвистнул:

— Красота… такая, что прям страшно.

— Всё, что слишком красиво, — подозрительно, — сказал старик. — Особенно в айти. Красиво бывает только в презентациях и в аду.

Книга раскрылась сама, без жестов, без пафоса — как окно терминала, которое само решило, что тебе пора страдать.

Внутри были строки, аккуратные отступы, чистый YAML, будто его писал человек, у которого ещё жива надежда.

universe:version: 4.2.1-beta stability: questionable maintainer: unknown issues_tracker: "404 not found"

Старик фыркнул:

— Ну всё, классика: версия — бета, стабильность — «под вопросом», мейнтейнер — «хуй его знает». А багтрекер в 404. Чувствуешь, насколько всё родное?

Страница перевернулась.

humans: default_permissions: - think - love - fuck_up_everythingfeature_flags: overthinking_enabled: true read_docs: false

— Вот, — сказал старик. — Официальное ТЗ человечества. Думать, любить и всё портить. Документацию не читать. Всё по канонам.

Парень хмыкнул:

— Хоть где-то честно.

Следующая страница.

roles: - admin: description: "существо, способное держать мир на соплях" flags: [sleep_deprived, bitter, sarcastic] eats: [coffee, pain, production] -user: description: "существо, нарушающее всё, что можно нарушить" flags: [hopeful, confused, clicks_everything]

— Криминальная хроника, блять, а не roles, — буркнул старик. — Меня особенно радует строчка eats: production. Живём так.

Страница перелистнулась.

events: - name: Большая Блокировка cause: "слишком много неудобных вопросов" result: "слишком много удобных ответов" jira_task: "RKN-666"

Парень скривился:

— Это уже не YAML, это пассивно-агрессивный product owner.

— Добро пожаловать в реальность как в корпоративный спринт, — кивнул старик. — Только тут таски нельзя переоценить и перенести на следующий.

Стена — книга — продолжила листать сама, словно им запустили autoplay.

Новый блок:

exceptions: - freedom_server: status: "unexpected" behavior: "undefined" notes: "оставить в покое, пока не взорвётся" created_as: type: "test_sandbox" comment: "ну мы потом выпилим..."

— Классика, — сказал старик. — Любое самое опасное дерьмо начинается с: «давайте просто потестим, потом удалим». Никто никогда потом не удаляет.

Парень уже нервно ухмылялся:

— «Потом выпилим» — это как «потом займусь здоровьем». Ждёшь только апдейта с надписью RIP.

Книга, не спрашивая разрешения, перевернула ещё страницу.

plot: current_status: "выполняется" branch: "experimental/freedom-arc" next_step: - "доступ к freedom_server" - "проверка устойчивости персонажей" - "возможная рекурсия" ci_cd: tests: "ignored" monitoring: "всё горит, но мы привыкли" warnings: - "не все вопросы должны получать ответы" - "не трогайте флаг destiny, он ломается" - "осторожно: экспериментальная ветка"

— О, — сказал старик. — Жизнь как GitLab CI. Всё красное, всё похую, главное — деплой прошёл.

Парень усмехнулся:

— tests: "ignored" — это про тех, кто Макс выкатывал?

— Это про всех, кто что-то когда-то выкатывал, — ответил старик. — А вот monitoring: "всё горит, но мы привыкли" — это уже философия.

Без грома, без вспышек. Просто — как окно IDE, когда система решила, что памяти тебе хватит и так. Книга захлопнулась.

Нейросеть осторожно сказала:

Уровень нестабильности: «ебаный ад плюс-минус один».— Следующая точка маршрута: freedom_server.

— Люблю конкретику, — хмыкнул старик.

Парень поёрзал плечами, словно пытался усидеть на двух стульях: страхе и интересе.

— А если серьёзно. Мы сейчас типа прочитали документацию к своей судьбе?— Слушай…

— Расслабься, — старик махнул рукой. — Это не документация. Это максимум — README. А README, как известно, никто не обновляет.

Он посмотрел на потухший world.yaml.

Если судьба хранится в YAML — у нас дохуя шансов, что всё сломается не по плану.— И ещё.

Парень хмыкнул уже вслух:

— Это сейчас был оптимизм?

— Это был баг-репорт, — ответил старик. — Просто без тикета.

Парень подтянул рюкзак.

— Ну чё. Пошли. Посмотрим, что там за Сервер Свободы. Вдруг он вообще на PHP, и всё это зря.

— Если он на PHP, — сказал старик, — это многое объяснит. И вообще, половина ужаса мира станет понятнее.

Cобода (release)

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

Старик остановился.

— Мы пришли? — спросил парень.

— Если честно… — старик вдохнул так, будто вдыхал пуш-уведомления. — Я хуй знает.

Как серверная ночью, когда слышно, как RAID обсуждает твою судьбу. Тишина вибрировала.Слишком белый — как фон у интерфейса, который «почему-то не в тёмной теме».Впереди вспыхнул огонёк.Одинокий.Белый.Не железо. Это не был сервер. Не машина. Не стойка. Это была… комната. Абсолютно пустая.

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

Парень прошептал:

— Ты издеваешься…

— Да, — сказал старик. — Но не я.

Белые буквы на тёмном фоне. Монитор мигнул и включился сам.Без логотипа, без BIOS-писка.Сразу — консоль.

Текст печатался сам:

loading_choice_engine... ok loading_self... ok loading_truth... warning: truth may destabilize systemcontinue? (y/n)

Парень выдохнул:

— Это что, интерфейс Сервера Свободы?

— Ну… — старик пожал плечами. — Я видел интерфейсы хуже. Особенно у госуслуг.

Парень нажал Y. Монитор мигнул и… показал им собственные тени.

Нейросеть пискнула:

— Кажется, сервер моделирует вас.

— Конечно моделирует, — пробурчал старик. — Все так делают. Рекламщики, банки, соцсети… почему бы и серверу свободы не подрочить на аналитику?

На экране появилась надпись:

ВОПРОС:зачем вы здесь?

Парень уже открыл рот, но старик поднял руку:

— Не спеши. Такие вопросы — как SQL-инъекции. Ответишь не туда — всё ёбнется.

Парень вдохнул.

— Мы здесь… за свободой.

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

И тогда текст продолжился:
СВОБОДА ОТ ЧЕГО?

Старик хмыкнул:

— Классика. В буддизме такой же приём. Спрашивают, кто ты, пока не поймёшь, что твоё имя — просто переменная.

Парень нервно сказал:

— От контроля. От системы. От Max. От всего этого.

Экран медленно вывел:

СВОБОДА — НЕ ПЕРЕМЕННАЯ.СВОБОДА — ФУНКЦИЯ.

Старик присвистнул:

— Блядь. Это глубоко. И звучит как комментарий в легаси-коде гения, который давно уволился и пропал на Бали.

Парень шагнул ближе.

— Что ты хочешь нам сказать?

И затем строка появилась медленно, буква за буквой, будто её набирали вручную: Экран мигнул один раз.Другой.

СВОБОДА — ЭТО НЕ КОД.ЭТО ВЫБОР.

Пустота как будто вздохнула — или сбросила кэш. Комната дрогнула.

Старик тихо сказал:

— Это… красиво.

— Это банально, — парировала нейросеть. — Но статистически верно.

Парень смотрел на экран, будто видел впервые собственное отражение.

…где наш выбор?— Но… если свобода — выбор…

Экран начал выводить перечисление:

1) вернуться назад2) остаться здесь3) перезаписать себя4) попытаться переписать мир

Я выбираю…— Ладно.

Он нажал цифру.

Консоль мигнула.

как будто кто-то нажал обновление мира без предупреждения. Пустота исчезла —

Экран вывел последнюю строчку:

вы выбрали правильно. помните:

свобода начинается там,где заканчиваются инструкции.

Секундная пауза.

И затем:

process complete.

Мир погас.

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

Тьма сжалась в точку и раскрылась — как кошачий глаз, увидевший движение.

— Разряд.

Голос был чужой, слишком громкий, слишком близкий. В нём не было ни загадки, ни магии. Только необходимость.

Боль пришла волной — резкой, электрической. Она вырвала тело туда, где ему давно пора было оказаться, но куда оно, видимо, упорно отказывалось идти.

— Работает! Держится!— Есть отклик!

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

Тени вокруг него были быстрыми. Решительными. Люди в масках. Руки. Провода. Голоса. Аппараты, которые говорили на собственном языке — пикали так, как говорят машины, которым доверили человеческую жизнь и слишком мало инструкций.

Он открыл глаза. На этот раз — не в виртуальный мир, не в символ, не в метафору. В настырную, предсказуемую, почти оскорбительно простую реальность.

Врач заметил движение.

— Вот так. Хорошо. Он вернулся.

Это было слово, которое всегда звучало так, будто мир пытается убедить тебя не задавать лишних вопросов. Хорошо?

Он попытался произнести что-то — и тут же понял, что говорить он пока не умеет. Да и нечем. Горло было занято трубкой, как заложенной библиотекой.

И всё же он попробовал.

— …ста…рик…

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

Абсолютно один.— Старика не было. Ты был один.

Одним движением одна важная вещь перестала совпадать с реальностью.

Внутри него что-то тонко, почти неслышно звякнуло — как если бы в глубине подсознания лопнула тонкая серебряная нить.

Один?

Но… он же…

Он закрыл глаза. Мгновение — или вечность. Достаточно, чтобы мир успел моргнуть.

Монитор рядом стал вдруг слишком внимательным. Его мерцание — слишком осмысленным.

И между пульсом и давлением, между цифрами, которые не умеют в мистику, родилась тонкая строка:

выбор принят

Когда он снова открыл глаза, этой строки уже не было. Конечно не было. Такие строки никогда не задерживаются.

— Всё будет хорошо, — сказал врач, голосом того, кто не знает, что обещает.

А парень вдруг понял, что впервые за долгое время ему всё равно — будет или нет.

Это уже достаточно странно, достаточно красиво, достаточно неправдоподобно. Он жив.

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

И в этой мягкости он услышал: не звук, не голос, не текст, а тихий намёк — как если бы чей-то след ещё не успел полностью раствориться:

Это выбор.
Свобода — это не код.
Возрастное ограничение:
18+
Дата выхода на Литрес:
01 декабря 2025
Дата написания:
2025
Объем:
31 стр.
Правообладатель:
Автор
Формат скачивания:

Похожие книги