Сообщество - IT минувших дней

IT минувших дней

1 276 постов 7 515 подписчиков

Популярные теги в сообществе:

16

Теряем невинность с Таненбаумом: Amsterdam Compiler Kit

Серия Жестокие эксперименты

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

Именно о нем пойдет сегодняшний рассказ.

Amsterdam Compiler Kit

Врядли среди читателей обнаружится аксакал живой пользователь этого удивительного проекта:

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х, для примерно таких компьютеров:

<a href="https://pikabu.ru/story/teryaem_nevinnost_s_tanenbaumom_amsterdam_compiler_kit_14206476?u=https%3A%2F%2Fru.m.wikipedia.org%2Fwiki%2F%25D0%25A4%25D0%25B0%25D0%25B9%25D0%25BB%3ASanco_8001.jpg&t=Sanco%208001&h=57e15a4bd07b56c0cec232e153f48e78deddba00" title="https://ru.m.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Sanco_8001.jpg" target="_blank" rel="nofollow noopener">Sanco 8001</a>. Обратите внимание на ширину дисковода

Sanco 8001. Обратите внимание на ширину дисковода

Как выглядит PDP-7 уже показывал в предыдущей статье, но на всякий случай напомню:

Когда-то это называли "мини-компьютером"

Когда-то это называли "мини-компьютером"

И ACK дает вам возможность скомпилировать приложение в современном окружении в 2025м году, которое будет работать на этом.

Чтобы у вас не сложилось впечатление, будто ACK это только лишь про плешивых дедов пожилых программистов и их древние игрушки, покажу как выглядит заявленный выше VideoCore IV:

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

Minix

Отдельно стоит упомянуть историю с 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;
}

И собственно ниже покажу сборку и запуск этой нестареющей классики под крайне экзотические (по современным меркам) архитектуры.

Компиляция FreeBSD->MS-DOS

Компиляцию в 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

Продолжая исторический угар, показываю сборку и запуск под CP/M, напоминаю что это операционная система из 1970х (старше автора) а компьютеры, на которых она работала выглядели так:

Kaypro II

Kaypro II

Тут надо сделать небольшое отступление и рассказать про эмулятор CP/M, поскольку его в пакетах FreeBSD не нашлось — пришлось собирать руками.

RunCPM - Z80 CP/M emulator

Разработка ведется на Github, забираем исходники:

git clone https://github.com/MockbaTheBorg/RunCPM.git

При сборке будет описанная выше проблема с номером версии в названии исполняемых файлов компилятора 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

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

cp ~/hello.com ./A/0/HELLO.COM

Запускаем эмулятор и вводим команду hello:

Круто?

Круто, но недостаточно, поскольку среди поддерживаемых ACK систем есть:

pdpv7 produces PDP/11 V7 Unix binaries

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

Компиляция для Unix v7 и PDP-11 в 2025м году (!)

Чтение этого абзаца прибавляет 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 на борту, что я и сделал.

SIMH

Эмуляцию 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 — ваш ник.

Показать полностью 30
152

Советский МК88 — шарим по BBS консольного интернета

МК88 — компьютер, разработанный и воплощённый в СССР, наша XT-шка.

Дата производства компьютера — 29.04.1992. Таким образом, компьютеру 34 года. На мой взгляд, то, что древний компьютер вообще включается, уже заслуживает уважения — за это время перегорают даже простые лампы накаливания. Мы пойдём дальше: обвесим его новодельной периферией, «проапгрейдим» и выглянем в цифровой окружающий мир. Сегодняшний эксперимент будет посвящён посещению BBS, увидим текстовый интернет, начало телнет-мультика и загрузку Linux для древних машин под названием ELKS.
Приглашаю к прочтению.

Автор текста: MechNIX. Написано специально для ▶️Timeweb Cloud и читателей Pikabu.

Этот компьютер достался мне с 256 Кб оперативной памяти. Ребята, это мало — менее чем на 640 Кб я не согласен: «640K ought to be enough for anybody» (с). Существуют проекты, позволяющие расширить оперативную память посредством запайки микросхем памяти на плату, которая находится внутри корпуса. У меня была исходная позиция невмешательства в оригинальную конструкцию. Корпус на пломбах — пусть будет капсулой времени, работает, ну и не трогай, это не блок питания. Итак, компьютер был не мёртв, но и не жив; как его использовать с таким объёмом ОЗУ — вариантов было мало. На нём не запускался даже «Принц Персии», о чём дальше говорить.

Ранее аппаратная часть была уже рассмотрена здесь.

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

Коробочка представляет собой контроллер, совмещающий COM-порт и дополнительную оперативную память, а также он позволяет подключить CF-карту или DOM-модуль в качестве накопителя данных, ну или жесткий диск. Словом всё, чего мне так не хватало в МК88.

Оперативной памяти стало теперь вот столько:

А общая картина аппаратной конфигурации выглядит так:

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

COM-порт

COM-порт

Целиком, плата выглядит так. Синий разъем СНП-59 стыкуется непосредственно с ответным интерфейсным разъёмом МК88, без удлинителей и переходников. Просто вставляется как картридж.

Вид сверху. Справа, разъем интерфейса жесткого диска

Вид сверху. Справа, разъем интерфейса жесткого диска

Разъем со знаком качества СССР, подлинный

Разъем со знаком качества СССР, подлинный

Загрузка операционной системы производится с CF-карты. Целиком конструкция выглядит так.

Стандартный 40-жильный шлейф

Стандартный 40-жильный шлейф

Это всё, что касалось контроллера. Теперь попробую побалансировать в рамках понятий, кто же на самом деле выходит в интернет. Процедуру выхода в интернет подобных МК88 ретроустройств можно рассматривать с разных сторон.

В нашем случае, я использую модем следующего проекта.

<a href="https://raw.githubusercontent.com/ssshake/vintage-computer-wifi-modem/master/docs/modemv3.jpg" target="_blank" rel="nofollow noopener">Источник фото</a>

Источник фото

Сущность этого модема — это плата ESP8266mod, соединённая с адаптером «RS‑232 to TTL» и соответствующей прошивкой внутри ESP.

В нашем случае...

В нашем случае...

Есть мнение, что в интернет выходит ESP, а МК88 является всего лишь терминалом. Резонно. С другой стороны, МК88 может сказать: «Хм, мне всё равно, через что налаживать соединение, — будь то настоящий dial‑up модем, подключённый к аналоговой телефонной сети, либо новоявленная ESP, подключённая через WiFi». Главное — посылать AT-команды через COM-порт модему и получать результат. А какой именно подсоединён модем — уже частности. Так или иначе, мы подадим трафик в МК88.

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

Переходим непосредственно к «сёрфингу» по BBS. Посмотрим, как выглядят некоторые распространённые BBS, а также глянем потенциальную возможность посмотреть telnet-мультик «Звёздные войны» в ASCII Art. Оно запускается и идёт, но меня хватило только на начало заставки…

Для «сёрфинга» используем терминальную программу для MS-DOS — term90. Запуск и её настройка есть в ролике, хотя какая там настройка? Это всего лишь указание скорости работы COM-порта, остальное — по умолчанию: восьмибитная передача, без контроля чётности (служебный бит для контроля чётности не используется) и с одним стоп-битом (8‑N‑1).

Роликов два, на разных платформах — кому где нравится. Второй ролик был черновой, но я решил его оставить, так как там видны «грабли», на которые приходилось наступать; в частности, разобрался, как отключить локальное эхо (прочитал инструкцию). Итак, ролики дублируются 2×2, выбирайте…

В конечном итоге мы увидели коммуникационные возможности компьютера МК88. Разумеется, это не всё, что можно продемонстрировать, ведь есть ещё возможность использовать SLIP-протокол, который работает на канальном уровне стека TCP/IP и позволяет передавать данные в виде IP-пакетов, используя последовательный порт. Это открывает «горизонты» в виде использования FTP и даже HTTP. SLIP — нетребовательный протокол, нагрузка на процессор минимальная, и ему, процессору, можно в полном объёме трудиться над работой с браузером для просмотра. Будет ли интересен такой ретроэксперимент — прошу написать в комментариях.

В принципе, на МК88 запускается Microsoft Windows 1.0, и там тоже есть терминальная программа, но ограничимся MS-DOS. МК88 — компьютер медленный, но интересный, и даже в современном мире худо-бедно может служить для коммуникации.

В дальнейших «изысканиях» удалось запустить современный ELKS. ELKS — это крошечный дистрибутив Linux для процессоров 8088, 8086. На этапе загрузки (видео ниже) можно посмотреть аппаратное обеспечение и другие характеристики машины. У ELKS есть образ, занимающий дискету 360 Кб. В образах побольше есть даже DOOM, Digger, Тетрис, а также графическая среда, основанная на оконной системе Nano-X (Microwindows). Кому интересно, описание можно глянуть здесь.

Всё это — перспектива дальнейших исследований, не всё гладко у меня прошло.

И поближе:

Версия далеко не последняя, но это были эксперименты

Версия далеко не последняя, но это были эксперименты

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

Спасибо за уделенное время! :)

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Реклама. ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525
Показать полностью 13 5
10

Узнали?

Все кто застал 90е или 2000е точно узнают знакомые зеленые очертания ;)

На самом деле это "форк форка" старого доброго XMMS, созданного когда-то давно по мотивам легендарного плеера Winamp, получается клон в четвертом поколении!
Переписан на Rust и запущен под FreeBSD, чтобы снова радовать меня треками начала 2000х😎

Исходники тут.

Показать полностью
12

Образцовый джун

Серия Дураки и работа

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

Без нейронок и римминга руководству.

Наш герой.

Наш герой.

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

Для примера самый частый отзыв на статью «Как на самом деле стать программистом» — «так не бывает», это какая-то фантастика и дурной прикол, а автор в лучшем случае сильно преувеличивает, в худшем — стебет и троллит почтенную публику.

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

Известный лозунг «Дорогу молодым» — тоже именно про них.

Знакомтесь:

Коннор Крукоски (Connor Krukosky), The "Mainframe Kid"

Тут находится его профиль на Github.

Коннор с раннего детства увлекался старыми компьютерами и успел собрать немалую коллекцию в подвале родительского дома. В 2016 году, когда ему было лишь 18 лет, он смог купить на интернет-аукционе списанный.. мейнфрейм IBM z890 за жалкие 200 баксов.

Настоящий "Big Iron", оригинальной ценой от $300 000

Настоящий "Big Iron", оригинальной ценой от $300 000

Так выглядел его первый пост на Reddit сразу после покупки:

So I saw someone post about this system for sale on the auction site 'GovDeals' on a mailing list I am a part of. They had no interest in the machine they just were wondering if anyone else had interest.

I was wondering what ridiculous price they were starting it at, 100 dollars, not the ridiculous I was thinking of...

Being that it was only about 2 hours from me I bid and ended up winning it at $237.

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

Процесс перемещения свежего лута в любимый подвал. Когда родители действительно тебя поддерживают.

Процесс перемещения свежего лута в любимый подвал. Когда родители действительно тебя поддерживают.

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

Комната жениха

Комната жениха

Коннор стал знаменитостью, сюжет о нем показывали по местному (американскому) телевидению и неоднократно брали интервью разные издания. Журналисты же придумали ему ник «Mainframe Kid», для примера одно из его более свежих интервью.

А затем его взяла на работу корпорация IBM, несмотря на учебу в колледже.

Причем и колледж и сам Коннор — из каких-то совсем далеких американских пердей в лесной глуши.

На момент написания статьи, Коннору 28 лет и он все также трудится в IBM, успев получить 10 лет непрерывного стажа в известной мировой корпорации.

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

Недостижимый идеал

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

Обратите внимание на полки на заднем плане.

Обратите внимание на полки на заднем плане.

Чтобы вы понимали, процесс даже пользовательского взаимодействия (не говоря о разработке) с винтажными компьютерами для ребенка 21 века очень непрост:

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

А еще постоянно общаться с не самыми приятными людьми, из тех кто либо сам застал «те времена» либо является фанатом винтажных железок.

Со всеми этими «избранными» от мира компьютерных задротов надо еще уметь договориться, поскольку помогать просто так эти товарищи обычно не очень любят — Коннор натурально пробивался чтобы вся эта история с мейнфреймом получилась.

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

А Коннор ковырялся с железками из 80х причем еще в 15-летнем возрасте.

Это вам не Майнкрафт с Роблоксами.

Даже по репозиторию заметно, что Коннор неплохо разбирается в матчасти компьютерного железа — эмуляторы, FPGA и комлекты «железячника», видно что человек учился с малых лет сложной работе инженера. Учился сам, по собственному желанию и следуя собственным интересам.

Теперь что касается всей истории с мейнфреймом.

Фактически будучи 18-летним студентом колледжа, Коннор повторил рабочие обязанности полевого инженера IBM:

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

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

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

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

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

А Коннор смог, причем в 18 лет.

Презентация

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

Посмотрите его эпическую презентацию и обратите внимание как он выглядит и что говорит:

В столь юные годы Коннор выглядит и говорит как настоящий высокооплачиваемый сотрудник IBM:

  • у него нет пирсинга и татуировок на лице, нет разноцветных волос или золотых насадок на зубах;

  • одет в рубашку классического покроя а не в разноцветный прикид с золотыми цепями или черный балахон с пауком на спине;

  • не хамит, не ржет в голос, не использует жаргон, не матерится и не размахивает руками;

  • во время презентации он с большим уважением рассказывает о своих родителях и благодарит их за помощь с проектом;

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

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

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

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

Что в итоге увидел работодатель:

  • увлеченный и мотивированный начинающий специалист, с уже сформированным багажем профильных знаний и компетенций;

  • с опытом решения сложных технических и производственных проблем — не социальный калека, который будет валить все на "беды с башкой" или «тревожность»;

  • достаточно умный и организованный, чтобы суметь во всем этом разобраться, причем с минимальным бюджетом;

  • без раздутого самомнения, позиции «мне все должны» и сказочных ожиданий от будущей работы;

  • смог повторить дорогостоящий рабочий процесс в домашних условиях и без специального начального обучения.

Собственно корпорации IBM оставалось только нанять его официально, чтобы «легализовать» деятельность и немедленно получать профит:

Коннор как сотрудник окупился сразу с первых дней своей работы в IBM, поскольку фактически еще до официального трудоустройства был полностью готов к будущей работе.

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

Эпилог

Пример Коннора — эталон того каким должен быть подающий надежды «джун» и как должен выглядеть правильный «вкат в ИТ».

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

Молодость спишет многое, это время экспериментов и первых побед — не надо тратить ее на алкогольные трипы и разрисовывание лица.

Если вы хотите попасть с порога в Газпром — сделайте (например) симулятор нефтедобывающей вышки, со сложными расчетами и оптимизацией процессов. Если хотите работать в Росатоме — создайте (навскидку) модель реактора из Чернобыля с расчетом причин аварии и симуляцией.

Даже если это окажется в итоге полной херней — вас запомнят и вполне возможно возьмут на хорошую работу.

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

PS

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

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

Статья была опубликована на Хабре, менее цензурный оригинал как обычно в нашем блоге. Добавлю что мы пытались связаться и с самим Коннором, но ответа не поступило.

Показать полностью 6
664

Ответ на пост «Задача»1

Катя: привет,я с уга вернулась!
Ромка: прив!как оно там?
Катя: да замечательно!прикинь,я на нудистском пляже загорала!!!У меня даже фотка одна есть...
Ромка: вах)))Фстудию!
Катя: АГА!Хитрец!Ну ладно,я щас только все прикрой черными квадратиками!!!
Ромка: Ну давай...
Катя: Слуш,я тут не до конца с фотошопом разобралась...В какой формат лучше сохранить?
Ромка: Ну...Конечно же в PSD
Катя: А,хорошо,щас кину!!!
Ромка: Давай,жду с нетерпением!!!!!

Баш.орг 2008

68

Ответ на пост «PRINCE OF PERSIA: ПЕРВАЯ ИГРА С НАСТОЯЩЕЙ СМЕРТЬЮ»1

Серия Ностальгикнуло

О, эта игра меня тоже захватила в своё время, но чуть иначе...

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

Это был древний теперь IBM XT 8088 с монохромным адаптером Hercules и удивительным желто-черным монохромным же монитором. Вот он:

Страшный зверь!
- Целых 640 Кб оперативной памяти! А кому нужно больше-то?
- Жесткий диск на 20 Мб. Нет, не гигабайт, а именно МЕГАБАЙТ!
- Дисковод 5.25``, который был способен записать на дискету всего лишь 360 кб. Не 1.22 Мб, как более свежие аналоги, а всего лишь 360 Кб.

Принц персии на нём выглядел как-то вот так:

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

А вот нашел ролик, который иллюстрирует в точности звук, с которым запускался XT:

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

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

Особенность Принца Персии на этом компе было в том, что как-то неправильно учитывалась частота процессора, к которой был привязан фрейм-рейт, и игровой процесс был замедлен раза в четыре. То есть на игру отводилось, получается, часа 4, но всё было в слоу мо. все движения тоже в 4 раза замедлены.

И это ничуть не упрощало игровой процесс для меня. Да, можно было насобачиться и филигранно двигаться вовремя нажимая клавиши, благодаря замедлению времени, однако игра без возможности сохранения, даётся лишь 4 часа и пауза, кажется, не останавливала таймер, ошибки всё равно происходили, а сидеть так долго за монитором было немыслимо, ведь "глаза же портятся!".

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

В общем, играть доводилось лишь украдкой от бабушки когда родителей не было дома.

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

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

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

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

В общем, на том компе я принца ни разу не прошел дальше 7 или 8 уровня. Потом я эту игру уже запустил на школьных 80386-х в цвете и с более изысканными звуками из PC-спикера. Ну... так казалось.

Однако комп этот послужил мне верой и правдой, и не только мне. Наверно благодаря ему и благодаря такому негативному отношению отца к компьютерным играм я и стал в итоге программистом. Я быстро освоил текстовый редактор "Лексикон", присоединил по распиновке из какой-то библиотечной книжки 9-пиновую мышку к 25-пиновому разъёму проводками. Просто соединил совпадающие одноименные выводы разъёмов. Там, где штырьки, я надевал на них ПВХ-изоляцию проводков обеспечивая контакт с жилками, а там где дырочки - скручивл жилы и долго добивался стабильного контакта.

В итоге шариковая мышка возила курсор в одном из доступных убогих монохросных графических режимов "геркулеса". Я раздобыл на школьных компах и запустил какой-то графический редактор и редактор баннеров с огромными красивыми буквами и кое-каким клипартом. Да, цвета иммитировались густотой черных и желтых точек, но понять где что можно было, а матричный принтер печатал получившееся тоже монохромно. Но можно было же и раскрасить поитом!

Второй брат близнец этого компьютера не без моей подачи уже далось приспособить в конторе у отца. Папа тоже освоил Лексикон и тоже разобрался с принтером, зато мне не было равных в освоении СУБД SyBase. Это что-то вроде позднего MS Access в текстовом режиме, где через сотни менюшек можно было нагородить какие-то формы, интерфейсы, ER-модел, кнопки, поля ввода с надписями и таблицы.

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

Занятно. Недавно с ним разговаривал по телефону. Ну как недавно... в прошлом году.

Ох, что-то заностальгировался я.

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

Второй комп брат этого долгое время ещё использовался как печатная машинка в местном сельсовете, а работала на нём секретарша главы нашей администрации, по совместительству моя тётя. Деревня небольшая у нас. Я сам, кстати, подал идею вытащить из конторского подвала пылящийся без дела агрегат, сам настраивал ей окружение, лексикон, каталоги документов. показывал как пользоваться техникой. Старенький матричный эпсон (черт его дери, я до сих пор помню его запах!) исправно трудился печатая письма и прочие документы, которые раньше набивали через копирку на печатной машинке.

Вот кажется такой

Вот кажется такой

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

Очень много воспоминаний.

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

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

Я помню, как писал первую игру. Это был какой-то платформер в текстовом режиме, где по уровню из символов псевдографики бегала рожица chr(1), поднималась по лесенкам "H", падала и напарывалась на шипы "^^^" или стрелочки, тонула в воде "~~~" или подвергалась жестокому нападению собак "@" из-за поднятой решетки "#".

Потом я делал свой аналог оконных интерфейсов в текстовом режиме с диалогами, кнопками, полями ввода, выпадающими списками, текстовыми полями, скроллящимися быстро благодаря прерываню BIOS INT 10h, а не мучительно перерисовывающимися посимвольно принтами.

Удавалось даже сделать попиксельное движение мыши в текстовом режиме! Нужно было лишь подменять специальным образом изображение четырёх самых ненужных символов в расширенной таблице ASCII. И надо же, сейчас TUI возвращаются и снова входят в моду!

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

Представляю, если бы меня тогдашнего телепортировать в нынешнее время, или даже наоборот: меня сегодняшнего со знаниями и опытом в те мои 90-е... Ух, аж мурашки...

В таких размышлениях особенно остро ощущаешь насколько удивительное время мы сейчас переживаем. Я такого за свои четыре десятка с плюсами лет никогда не помню, чтобы были такие возможности учиться, что-то делать, творить... я имею в виду в технологическом плане. Любая информация, генеративные модели, интернет, обучающие курсы на любой вкус, архив-орг с научными статьями на халяву, мощные компы о которых в те годы даже не помышлялось! А технологии?! Эх!

Да, я понимаю, что впал в детство=) Я это нарочно. Да, понимаю, что однобоко рассуждаю, понимаю, что не все в одинаковых условиях, что не все имеют мотивацию, не все имеют технический склад ума, не всем в детстве папка приволок комп и вовремя познакомил с очень крутым дядькой - выпускником ХАИ, радиоинженером, который разрабатывал орбитальные антенны. Вообще удивительно, что такого человека занесло к нам в село. Очень многое совпало, да... Но сейчас то возможностей на много порядков больше! Учись, разбирайся - не хочу!

Хочешь - детальки дешевые с алиэкспресс любые. Хочешь - микроволновку с помойки притащи, там магнетрон! Хочешь - достань компрессор из холодильника с той же помойки. Надо лишь подкараулить и снять раньше бомжей, которые его пустят на цветмет. Хочешь - ардуины с ESP32 или RPi не такие уж и дорогие, камеры, карты памяти, модули, сенсоры... КУЧА статей и мануалов, куча лекций в доступности, куча видосов про коллайдер или синхрофазотрон для чайников. А его величество агентный Claude всего лишь за 20 баксов? А ЧатЖПТ - по сути бесконечно терпеливый и, в общем, бесплатный ментор, которому можно задвать любые даже самые глупые вопросы. Он ответит серьёзно, полезно, широко и понятно. Такого не было НИ-КОГ-ДА!

Ух. Че-то я раздухарился. Надо померять температуру моей биологической нейронки, которая накатала весь этот ностальгический опус.

За возможные опечатки, анахронизмы и орфографические ошибки не обессудьте. Думаю смысл я донёс, а что ещё надо? Это ж не мемуары...

Показать полностью 2 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества