Эмоциональные качели
Автор; Izuchi
Всем доброго времени суток.
На днях посмотрел фильм <Железное лёгкое> и мне оно очень сильно понравилось, так как это фильм из категории где его надо не только смотреть, но и читать, ведь этот фильм не про стандартные страшилки, в нём заложен очень глубокий смысл на мой взгляд.
Я хочу поделиться тем, что я лично понял и увидел из показанного. За банальным выживанием скрывается масштабная космическая притча о том, как законы биологии нашей Вселенной уделали чужого Бога-тирана.
Суть конфликта: Наша Вселенная против «Бога-Вертухая»
В нашей реальности до катастрофы («Тихого Восхищения») Бога не было. Его роль выполняла сама Природа и строгие, холодные законы физики. Люди понимали этот мир, строили корабли и подчиняли себе пространство.
Но всё изменилось, когда открылся разлом между измерениями (или вселенными) - Ангельский Свет(я бы назвал его <Окном Тирана>). Из него на нашу Вселенную заглянуло существо именуемое Оком(скорее демон пытался узреть на богохульников, которые прекрасно сами справляются без всяких надзирателей).
И когда Оку удалось проникнуть в наше измерение, тогда оно решило всё подчинить своим законам, а точнее своей абсолютной воле. Одним своим взглядом Оно мгновенно уничтожило все звёзды и обитаемые планеты, включая Землю. Выжить удалось лишь тем, кто находился на космических станциях и кораблях. В один миг люди лишились дома, тепла и источников снабжения, вследствие чего всё человечество оказалось на грани вымирания.
Оставшись наедине с ситуацией, люди, в количестве не более тысячи душ, начали в экстренном порядке цепляться за все возможные способы выживание и сохранения себя как единственной жизни в видимой Вселенной. Именно это положение вынудило их исследовать оставшиеся спутники и астероиды, вследствие чего ими был обнаружен Океан Крови.
Они начали его экстренное исследование, потому что эта аномалия была их единственным шансом найти ответы и понять, что случилось с миром. Но была и куда более приземленная, жестокая причина: у выживших на станциях заканчивалось продовольствие. Обнаружив, что океан состоит из настоящей крови, люди отчаянно пытались найти способ синтезировать эту багровую жидкость в пищу и пригодную для питья воду, чтобы банально не умереть от голода в пустом космосе.
Ради этого люди начали запускать одну за другой опасные подводные экспедиции вглубь багровой пучины. Пилотов отправляли вглубь в один конец, и главным героем одной из таких миссий становится Саймон. И именно на этом этапе чужеродное Око совершило свою главную ошибку.
В ходе очередного исследования тринадцатому пилоту Саймону удалось найти внутри корабля настоящее послание от самой природы старого мира — запрятанное земное семя Древа. Подпустив к себе этот крошечный артефакт, Око, само того не ведая, впустило в свое измерение фундаментальные правила нашей биологии.
При этом экипаж прошлых экспедиций, мутировавший в крови и сросшийся в единого глубинного Монстра, принял тотальный контроль Ока за «любовь». Они считали себя единственными избранными стражами этого Света. И когда Око переключило всё своё внимание на Саймона с его семечком, Монстра охватила дикая, слепая ревности.





Остатки от прошлой экспедиции и что стало со членами экипажа той же экспедиции
Финал: Как обычное семечко сломало чужую систему
Чужой бог думал, что полностью подчинил себе этот мир. Но он совершил роковую ошибку: впустил в свое пространство частицу . А у Саймона на запястье висел крошечный, почти незаметный осколок нашей старой реальности — земное семечко.
Это семя подчинялось «нашим» законам природы: эволюции, росту и борьбе за жизнь. Попав в питательную среду из человеческой крови, семя не погибло. Оно начало агрессивно адаптироваться, пускать мощные корни прямо сквозь металл лодки, тело Саймона и высасывать энергию из самого Ангельского Света — сердцевины чужого мира!
Для чужого измерения это земное растение оказалось смертоносным космическим сорняком. «Вертухай», привыкший тотально контролировать всё вокруг, впервые столкнулся с силой, которую он не может «выключить» своим взглядом. Законы природы нашей Вселенной начали разрастаться внутри его собственного измерения, пожирая чужой божественный свет изнутри.
Древо поглащает монстра, тем самым, демонстрируя нам, что конец Человечества перенесён на неопределённый срок
Итог, к которому я пришёл
Око пришло в ярость, а Монстр из прошлых экспедиций впал в дикую ревность, понимая, что Бог теряет к нему интерес и переключается на Саймона. Чудовище в истерике разрывает субмарину. Саймон погибает, но запущенный им процесс уже невозможно остановить.
В концепт-артах создателей эта концовка метафорично называется «Кровавое Древо» (The Blood Tree). Мой вывод прост: уничтожив планеты людей, чужой тиранический бог случайно занёс в свой дом семя старого мира, которое теперь поглотит его изнутри. Жизнь нашла лазейку и проросла даже на дне ада, вернув миру привычный баланс природы.
Что думаете по поводу такой теории? Делитесь в комментариях, кто что ещё увидел в фильме!
В сети появился новый массив интригующих слухов и утечек о разработке долгожданного ремейка Resident Evil: Veronica. Судя по слитой информации, фанатов классического survival horror ждёт не просто подтяжка графики, а масштабное переосмысление структуры оригинала с уклоном в мрачную атмосферу и хардкор.
Главным изменением ремейка может стать уход от классической линейной структуры оригинальной игры 2000 года:
Взаимосвязанный мир: Остров Рокфорт полностью переработали. Теперь это полуоткрытая локация с единой базой, предлагающая игрокам большую свободу исследований и возможность свободно возвращаться в ранее пройденные области (бэкпекинг).
Новые секреты: На острове появятся альтернативные обходные маршруты и скрытые зоны, которых не было в оригинале на Dreamcast. Это придаст исследованию дополнительную глубину и заставит игроков внимательнее изучать каждый угол.
Разработчики делают особый акцент на аудиодизайне и выживании на грани возможностей:
Акустический хоррор: Игра будет по максимуму использовать технологии 3D-аудио на современных платформах. Игроки смогут с точностью до сантиметра слышать шаги приближающихся монстров, эхо падающих капель воды и завывания ледяного ветра, что поднимет уровень напряжения до предела.
Менеджмент ресурсов: Управление инвентарём и предметами станет значительно строже. Патронов и лечебных трав будет катастрофически не хватать, а пространство в сумке ограничат. Источники утверждают, что по уровню сложности и требовательности к игроку ремейк Code Veronica вполне может превзойти суровый Resident Evil 2 Remake.
После Resident Evil 4 Remake, который ушел в сторону динамичного экшена, фанаты соскучились по настоящему страху и дефициту ресурсов. Veronica всегда была одной из самых сложных игр франшизы (там вполне реально было случайно потратить все патроны и «застрять» на боссах). Если разработчики сделают менеджмент ресурсов еще строже, чем в RE2 Remake, это вернет то самое чувство уязвимости, за которое мы и любим классический RE.
Пока вы рождались, ходили в школу, заканчивали учебу и выходили на свою первую работу, на свете существовал совершенно особенный набор компиляторов, о котором крайне мало известно на просторах РФ.
Именно о нем пойдет сегодняшний рассказ.
Врядли среди читателей обнаружится аксакал живой пользователь этого удивительного проекта:
The Amsterdam Compiler Kit is a venerable piece of software that dates back to the early 1980s. It was originally written by Andrew Tanenbaum and Ceriel Jacobs as a commercial product; for many years it was also used as Minix’ native toolchain. After eventually failing as a commercial project, it was made open source under a BSD license in 2003 when it looked like it was going to be abandoned and the code lost.
Сочетание «начало 80х» и «коммерческий продукт» оставляет мало шансов на появление пользователей ACK в родных краях, поскольку в 80е еще вовсю жил СССР и вопрос покупки иностранного программного обеспечения был мягко говоря неактуальным.
Теперь подробнее, что там внутри и почему оно до сих пор шевелится представляет интерес:
The ACK contains compilers for ANSI C, K&R C, Pascal, Modula-2, Occam 1, and a primitive Basic. It contains code generators for a large number of architectures, mostly 8 and 16 bit machines; there are also a set of generic optimisation, linker and librarian tools.
В принципе стандартный набор языков для тех лет, но есть нюанс:
It contains assembler and linker support for: 6500, 6800, 6805, 6809, ARM, i80, Z80, Z8000, i86, i386, 68000, 68020, NS32016, S2650, SPARC, VAX, PDP11 and VideoCore IV.
Это уже несет определенный «вау-эффект», причем как для тех, так и для этих лет, поскольку даже для популярных clang и gcc столь широкая поддержка различных архитектур решается весьма нетривиально - путем форков и неофициальных патчей.
В мейнстриме и готовых пакетах столь дикого набора архитектур разумеется нет, при этом поддержку устаревших архитектур еще и регулярно ломают, а некоторые вообще удаляют.
Современная версия ACK, разрабатываемая с 2003 года как открытый проект, поддерживает следующие платформы:
pc86, linux386, linux68k, linuxppc, linuxmips, cpm, rpi (VideoCore IV), pdpv7, msdos86 and msdos386.
Лично у меня глаз начал дергаться после cpm и pdpv7, msdos86 по сравнению с этим уже творческие мелочи.
Для юных читателей, не заставших даже дискет стоит пояснить, что CP/M это операционная система из 1970х, для примерно таких компьютеров:
Sanco 8001. Обратите внимание на ширину дисковода
Как выглядит PDP-7 уже показывал в предыдущей статье, но на всякий случай напомню:
И ACK дает вам возможность скомпилировать приложение в современном окружении в 2025м году, которое будет работать на этом.
Чтобы у вас не сложилось впечатление, будто ACK это только лишь про плешивых дедов пожилых программистов и их древние игрушки, покажу как выглядит заявленный выше VideoCore IV:
Как видите это уже вполне себе современная плата, используемая в различных устройствах.
Отдельно стоит упомянуть историю с Minix — той самой операционной системой, созданной тем самым Таненбаумом для обучения нерадивых студентов сложной теме разработки операционных систем.
В почтовой рассылке, посвященной этой ОС когда-то давно некий Линус Торвальдс впервые представил свой известный проект, вызвавший эпический архитектурный
срачдискурс, ныне являющийся историческим событием.
Дело в том, что ACK когда-то был основным системным компилятором в Minix, при этом являясь коммерческим продуктом — поставлялся в виде готовых бинарников:
The ACK has been used as the standard Minix compiler for years. While the ACK was still commercial, this was done by distributing binaries; when it get opened, a version was forked off and is now used as part of the Minix base build.
Форк с поддержкой Minix мне был не особо интересен, поэтому искать не стал, тем более что в современной Minix 3 используется вполне стандартный clang.
Однако на поддержке столь широкого набора архитектур возможности ACK не заканчиваются и чтобы добить окончательно нежную психику современных разработчиков, процитирую следующий абзац:
Each language comes with its own runtime, so if you’re a C programmer you also get a libc. Compared to gcc, it is far smaller, faster and easier to port.
Стоило догадаться об этом, прочитав список поддерживаемых архитектур и прикинув как оно вообще может работать, но тем не менее.
Так что ACK это уникальный, редкий и необычный проект, позволяющий творить запредельную дичь вроде кросс-компиляции из FreeBSD в MS-DOS подручными средствами, которую вы могли видеть в шапке статьи.
Ниже я опишу процесс сборки и использования этого необычного проекта.
Собирать буду по традиции на FreeBSD 14, поэтому часть требуемых шагов несколько отличается от стандартных.
Проект старый, разработка в git ведется давно, поэтому внутри репозитория присутствует множество разных веток, не актуальных для обывателя.
Чтобы не выкачивать всю эту дичь, я использовал ключ --depth -1, с которым будет выгружена только ветка по-умолчанию:
git clone --depth 1 https://github.com/davidgiven/ack.git
Таким образом собирать мы будем текущую на момент написания статьи версию:
ACK 6.0 is a ground-up reworking of the whole compiler suite, with a lot of the more archaic features removed.
Сборка проекта.. весьма своеобразна, поскольку основана на скриптах Python и немного Lua. Как гласит описание:
The version 5.0 build mechanism has been completely rewritten (twice).
И видимо это еще не конец.
Для сборки нужен достаточно банальный набор инструментов:
любой ANSI C компилятор (автор использовал GCC)
flex и yacc
GNU make (gmake)
Lua с библиотекой lua-posix
Python 3.4 и выше
~2Гб свободного места
В трекере проекта и пул-реквестах есть сообщения от камрадов, использующих ACK на OpenBSD, так что врядли будут проблемы в куда более популярных Linux, Windows и MacOS.
Запускается сборка стандартным образом — вызовом GNU Make в корне проекта:
gmake
Поскольку автор собирал на FreeBSD, которая имеет определенную специфику в именовании инструментов, появится такая ошибка:
Происходит это из-за того, что lua во FreeBSD имеет постфикс версии:
Так что надо отредактировать Makefile в корне проекта и поменять значение переменной LUA=, добавив версию:
Следующая ошибка также специфична для FreeBSD, поскольку gcc у нас тоже с постфиксом версии:
Несмотря на документацию, которая утверждает что актуальный компилятор должен подхватываться через стандартную переменную окружения CC=, нашлось место в скриптах сборки, где были прямо забиты названия используемых бинарников:
Нужный файл называется ack/build/ab.mk и почему-то несмотря на название и расположение — не является генерируемым.
По аналогии с lua, добавляем постфикс версии и сохраняем:
После этого заново запускаем сборку и ждем, никаких других ошибок при сборке замечено не было.
Итоговый размер после завершения сборки, со всеми временными файлами получился размером в 1.7Гб, что несколько больше заявленного в требованиях:
По-умолчанию ACK устанавливается в каталог /opt/pkg/ack, поэтому запускаем из корня проекта:
mkdir -p /opt/pkg/ack
gmake install
Перед установкой будут запущены тесты, но далеко не все:
Итоговый каталог bin выглядит следующим образом:
Хотя основные бинарники находятся в ack/lib/ack:
Теперь переходим к самому интересному — к запуску и работе с ACK, это будет действительно весело.
В репозитории проекта находится каталог examples, где лежат примеры более-менее сложной логики на Си, Паскале и Бейсике, которые точно собираются и работают с помощью ACK.
Один из таких примеров под названием mandelbrot.c , выводящий в консоль с помощью символа * фрактал Мандельброта вы можете лицезреть в работе на заглавной картинке к статье.
Но поскольку мне был интереснее сам процесс компиляции и запуска приложений на разных экзотических архитектурах из древних времен нежели специфика каждой конкретной платформы, не стал заморачиваться сложной логикой, взяв в качестве эталона классический «Hello world!» на Си:
#include <stdio.h>
int main(void)
{
printf("Hello, alex0x08 \n");
return 0;
}
И собственно ниже покажу сборку и запуск этой нестареющей классики под крайне экзотические (по современным меркам) архитектуры.
Компиляцию в COM-файл с последующим запуском можно увидеть на заглавной картинке, поэтому ниже покажу компиляцию в EXE под DOS:
/opt/pkg/ack/bin/ack -mmsdos386 -O hello.c -o hello.exe
Цитируя документацию:
msdos386 produces i386 MS-DOS 32-bit DPMI .EXE files
Поэтому для работы нужен запущенный DPMI-резидент — т. н. «расширитель памяти», который можно взять например тут.
Так это выглядит в записи:
Как видите запуск осуществлялся в известном эмуляторе DOS под названием Dosbox, установленном из пакетов FreeBSD.
Продолжая исторический угар, показываю сборку и запуск под CP/M, напоминаю что это операционная система из 1970х (старше автора) а компьютеры, на которых она работала выглядели так:
Тут надо сделать небольшое отступление и рассказать про эмулятор CP/M, поскольку его в пакетах FreeBSD не нашлось — пришлось собирать руками.
RunCPM - Z80 CP/M emulator
Разработка ведется на Github, забираем исходники:
При сборке будет описанная выше проблема с номером версии в названии исполняемых файлов компилятора GCC — стандартная для FreeBSD, поэтому необходимо в файле RunCPM/Makefile.posix в переменную СС= добавить номер версии:
Сама сборка запускается командой:
gmake posix build
Но это еще не все приключения, после сборки необходимо подготовить рабочее пространство — специальный каталог из которого будет запускаться эмулятор:
mkdir disk
unzip ../../DISK/A0.ZIP
cp ../RunCPM .
В результате появится каталог A/0, внутри которого будут все управляющие команды CP/M, в корне будет запускаемый бинарник самого эмулятора.
Все готово к использованию, для проверки можно запустить эмулятор:
Должна быть отображена шапка с версией и работать команда DIR. Для завершения работы эмулятора введите EXIT.
Теперь можно переходить к сборке тестового приложения.
«Hello world» для CP/M
Для компиляции под эту систему достаточно указать ключ -mcpm:
/opt/pkg/ack/bin/ack -mcpm -O hello.c -o hello.com
Следующим шагом копируем полученный бинарник, обязательно с именем в верхнем регистре:
Запускаем эмулятор и вводим команду hello:
Круто?
Круто, но недостаточно, поскольку среди поддерживаемых ACK систем есть:
pdpv7 produces PDP/11 V7 Unix binaries
Думаю вы догадываетесь, что пройти мимо такого было невозможно, поэтому автор убил еще неделю показываю нечто действительно удивительное.
Чтение этого абзаца прибавляет 100 баллов к инженерным навыкам.
Напоминаю как выглядел PDP-11:
Вот так выполняется компиляция из ACK для этого древнего монстра:
/opt/pkg/ack/bin/ack -mpdpv7 -O hello.c -o hello
Как ни странно и неожиданно, но стандартная утилита file, присутствующая во всех UNIX-системах с незапамятных времен честно показывает тип:
Apout — Simulate PDP-11 Unix a.out binaries
Для проверки я сначала запустил полученный бинарник на этом:
This program is a user-level simulator for UNIX a.out binaries. Binaries for V1, V2, V5, V6, V7, 2.9BSD and 2.11BSD can be run with this simulator. The user-mode PDP-11 instructions are simulated, and TRAP instructions are emulated by calling equivalent native-mode system calls.
Собирается оно под FreeBSD одной командой, поскольку внешних зависимостей нет:
export CC=gcc13
gmake
После сборки в корне проекта появится бинарник apout, так выглядит в работе запуск нашего «Hello world»:
Но разумеется сильно круче было бы попробовать запустить в реальном симуляторе PDP с Unix v7 на борту, что я и сделал.
Эмуляцию PDP как впрочем и множества других исторических систем обеспечивает известный проект Open SIMH. Нужный нам Unix v7 заявлен на главной странице проекта в качестве ключевого примера:
For example Version 7 Unix, released in 1979, runs unchanged today on SimH.
В этот раз эмулятор присутствовал в готовом виде среди пакетов FreeBSD, так что хотя-бы его не пришлось собирать из исходников.
На этот раз.
Забираем готовый образ диска с Unix v7 для PDP-11 отсюда, существует известная инструкция по полной установке с использованием образов установочной ленты:
Но автор решил
не убивать еще неделючто это уже перебор, поэтому использовал готовый образ диска с Unix v7.
В архиве по ссылке будет файл unix_v7_rl.dsk , который необходимо распаковать:
mkdir v7
cd v7
unzip ~/uv7swre.zip
Дальше необходимо создать конфигурационный файл эмулятора:
set cpu u18 set cpu idle attach rl0 unix_v7_rl.dsk attach rl1 hello.tar boot rl0
Сохраните файл как simh-pdp11.ini, в том же самом каталоге v7 , куда был распакован образ диска.
Теперь надо создать tar-файл с собранным бинарником "Hello world" приложения:
cd ~
tar cvf hello.tar hello
cp hello.tar ~/v7/
Итоговый набор файлов должен выглядеть как-то так:
Запускаем эмулятор:
pdp11 simh-pdp11.ini
После появления приглашения в виде символа @ вводим:
boot
Появится древний предок современного Grub, загрузчик:
Вводим:
rl(0,0)rl2unix
Появится приглашение в виде символа # , что означает запуск Unix v7 в однопользовательском режиме:
Нажмите Ctrl - D для начала работы в многопользовательском режиме:
Появится хорошо знакомое любому юниксоиду приглашение авторизации. Введите root в качестве логина и пароля:
При первом запуске будет необходимо выполнить ряд дополнительных шагов. Создаем каталог для временных файлов:
mkdir /tmp
Создаем ссылки на устройства:
cd /dev
make rl
Таким образом со стороны запущенной в эмуляторе Unix v7 будет доступно устройство, эмулирующее ленту и можно будет добраться наконец до собранного на хосте бинарника:
cd /tmp
tar xvf /dev/rrl1
В результате в файловой системе появится тот самый файл hello, собранный на FreeBSD с помощью ACK:
Наконец сам запуск:
Ну кто еще вам спрашивается покажет такую красоту?
ACK имеет отличную портируемость и расширяемость, поэтому существует столь интересный форк этого проекта:
This fork of the Amsterdam Compiler Kit supports the Cray X-MP supercomputer and the COS operating system platform.
Его тоже удалось собрать и запустить, но ввиду невероятной сложности самобытности COS, история будет уже в отдельной статье. Следите за анонсами, как говорится.
Статья была опубликована на Хабре, оригинал как обычно в нашем блоге, все желающие получить обои с автографом (и не умеющие пользоваться нейросетями) должны будут повторить все описанные в статье шаги и прислать скриншот с работающим «Hello <username>» под Unix v7 на PDP, где username — ваш ник.
Небезопасный контент (18+)
Авторизуйтесь или зарегистрируйтесь для просмотра
Сравнительно недавно зарегистрировался на сайте Shikimori. Просто мне стало любопытно, что там происходит во внутренней кухне, учитывая вечную войну с РКН. И, честно говоря, мне было крайне неприятно находиться на тамошнем форуме. Хоть политика запрещена, но там многие пользователи явно придерживаются прозападных взглядов. Даже успел поговорить с навальнёнком, поддерживающим Украину. Чел адекватный, конечно, но когда я пытался ему доказать, что в Украине реально есть проблема с нацистами, показав видеорепортажи официальных англоязычных СМИ, сделанные незадолго до СВО, он начал меня газлайтить. Говорить, что я неправильный, и что я не ответил на все вопросы (хотяюь я на них отвечал). Я не выдержал, и попросил его в вежливой форме уехать из России. И тут он закатил мне истерику. На этом моменте я понял, что лучше заблокировать его к чертям и не разговаривать.
Впрочем, я сидел на Шикимори чтобы обсудить проблему с цензурой в аниме. Я за лицензию, хоть рассматриваю пиратство как альтернативу. Считаю, что аниме и манга должны легально распространяться в России и странах СНГ. Я хотел культурного разговора. Я присоединился к теме обсуждения нового телеканала от студии Deep. Я попытался культурно рассказать о своих взглядах, что я не одобряю цензуру (хоть сам ЛГБТ осуждаю). А они начали меня поливать помоями, гордо крича что они "няшки-либерашки", а один из них даже похвастался релокацией в ЕС. Другой чел и вовсе оказался манкуртом, который хочет уехать в Японию и там полностью ассимилироваться. Только ему учить японский день, но он всё равно смотрит японский ютуб (хоть не понимает языка). Они даже в открытую мне говорили, что если я хочу стать Настоящим анимешником, то я должен поддерживать ЛГБТ! Пипец я приехали. Может мне ещё вступить в РДК потому что плохой Путин запрещает мне смотреть японские мультики? Офигеть, особенно если учесть, что я в России никогда не жил.
Конечно, я встретил одного нормального мужика, который редко бывает на Шикимори, но тут... Мда, тут клиника. Попробовал я, конечно, потроллить местную публику шуточными постами в стиле "А пусть аниме вообще полностью запретят, ведь быть панком-бунтарём-иноагентом это круто". В общем, меня забанили на год. Понимаю, что я это заслужил за нарушение правил, но я просто устал от засилья демшизы. Я вообще не хотел быть завсегдатаем этого сайта. Тем более, что для меня троллинг – это мой копинг механизм чтобы я не сошел с ума от нынешних событий.
Но так или иначе, у меня складывается ощущение, что мне лучше пока абстрагироваться от аниме комьюнити. Лучше уж расскажу о своём любимом тайтлк какому нибудь нормису. Он хотя бы адекватно это воспримет. А там уже много срачей в стиле "Это аниме переоценено!" Да и надоело смотреть на истерику малолетних анимешников, когда РКН блокирует очередной пиратский аниме сайт. Я, кончено, все понимаю, что РКН всех достал, но чтобы от подобных новостей кричать, что в России полностью запретили и заблокировали аниме – это нужно быть полным идиотом. Хоспаде... раздули из мухи слона... Они хотя бы понимают, что у нас аниме показывают на стриминговых сервисах? И что даже в Японии и в Европе блокируют пиратские сайты?