2025-10-19

vak: (Бодхидхарма)
Как запустить последнюю версию Линукса (конкретно Debian) на платке VisionFive2? Я убил полдня сегодня, а всё оказалось просто.

1. Переключаем хардвер в режим загрузки с SD-карточки. Верхний переключатель вправо, нижний влево. Смотрите страницу 41 документа VisionFive2_QSG.pdf.



2. Образ карточки с установленным Debian качаем отсюда: visionfive2_trixie-v13-6.11.img.xz.
vak: (Default)
Законспектирую историю о компиляторе Би для PDP-7 Unix, восстановленном Робертом Свирчеком в 2016 году. Эта реставрация — ценный фрагмент археологии Unix. Вот краткое описание того, что сделал Роберт Свирчек и почему это важно.

Что произошло

В 2016 году Роберт Свирчек реконструировал работающий компилятор Би для оригинальной PDP-7 Unix (самой ранней версии Unix, авторства Кена Томпсона). Исходный код оригинального компилятора Би был утерян; сохранился только интерпретатор байт-кода Би.

Свирчек реализовал компилятор, способный генерировать байт-код, используемый сохранившимся интерпретатором Би, и разработал путь загрузки, чтобы компилятор можно было собрать и фактически самостоятельно скомпилировать на восстановленном образе PDP-7 Unix. Проект pdp7-unix включил его работу, поэтому компилятор Би и примеры программ на Би присутствуют в образе файловой системы.

Как он это сделал

Поскольку оригинальный набор инструментов PDP-7 отсутствовал, Свирчек применил хитроумный подход обратной разработки: он взял сохранившиеся артефакты (интерпретатор Би и самые ранние исходные коды компилятора Си), удалил или обошёл механизм типов Си там, где это было необходимо, и создал реализацию компилятора, которая одновременно является корректной для Си и корректной для Би (чтобы её можно было скомпилировать современным хостовым компилятором Си для получения промежуточной формы). Эта промежуточная форма затем может быть запущена под интерпретатором Би на PDP-7 Unix, что позволяет компилятору Би перекомпилировать себя на PDP-7. Это описано в описании восстановления.

Репозиторий pdp7-unix и заметки о сборке включают b.c Свирчека и пример использования (например, gcc -Wno-multichar b.c -o b ./b hello.b hello.s.S в дереве проекта).

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

Почему это важно

Би — непосредственный предок Си; восстановление работающего компилятора Би позволяет историкам и инженерам запускать и изучать оригинальные программы на Би, а также понимать ранний набор инструментов и модель разработки Unix. Восстановление делает среду Unix PDP-7 значительно более полной и работоспособной на эмуляторах (и на музейном оборудовании).

Где поэкспериментировать с компилятором Би для PDP-7

Проект pdp7-unix (основная реставрация) — включает собранные инструменты, образы файловой системы и исходные коды компилятора Би Свирчека.

Файлы b.c и b.b (с указанием авторских прав, ссылающихся на Роберта Свирчека, 2016) можно напрямую просмотреть в дереве проекта.

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

Ссылки:

  1. Статья 'Unix: Building A Development Environment From Scratch' авторства Warren Toomey
  2. О проекте PDP-7 Unix
  3. b.c - Исходные текста компилятора Би на языке Си
  4. b.b - Исходные текста компилятора Би на языке Би
  5. Технические подробности реализации Би для PDP-7 и PDP-11
  6. Сохранившиеся артефакты на языке Би из первого Юникса