Программирование для «голого железа» (bare metal) означает написание ПО, которое работает непосредственно на аппаратной платформе, без операционной системы и промежуточных слоёв абстракции. Программа получает максимально прямой доступ к периферии и памяти, но взамен лишается защиты и вспомогательных механизмов, которые обычно берёт на себя ОС: управления процессами, драйверов, файловых систем и сетевого стека.

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

На конференции Hackaday Europe 2026 французский разработчик Сильвен Юэ (Sylvain Huet) выступил с докладом о том, как сделать такую разработку проще. Речь шла не только об отказе от операционных систем и постоянно разрастающихся зависимостей, но и о пересмотре самого подхода к созданию программ, а также о построении прозрачной платформы с нуля.

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

От Thomson TO7 до кролика Nabaztag

Доклад начинается с личной истории. В 1982 году Юэ получил в распоряжение французский домашний компьютер Thomson TO7 с процессором Motorola 6809 и всего 8 КБ пользовательской оперативной памяти. Лучше всего возможности машины раскрывались при программировании напрямую на ассемблере. По словам докладчика, в то время было легко понять устройство компьютера целиком: у него почти не оставалось скрытых сторон.

реклама кормит Уточку 🦆

Компьютеры Thomson в 1980-х были широко распространены во Франции, в том числе в школах по государственной программе «Информатика для всех». Для многих французских программистов того поколения они стали первым знакомством с вычислительной техникой — примерно как «Спектрумы» и БК для пользователей в СССР.

Технологии менялись быстро. Чуть больше десяти лет спустя Юэ работал над Second World — сетевым трёхмерным виртуальным миром, во многом предвосхитившим современные метавселенные. Затем последовал Nabaztag — обаятельный «умный» кролик с подключением к Wi-Fi, который появился как раз тогда, когда беспроводные сети становились массовыми. Кролик умел двигать ушами, мигать светодиодами, зачитывать новости и прогноз погоды.

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

Цена сложности: пример со сбоем CrowdStrike

Современные практики Юэ проиллюстрировал фотографиями из аэропорта во время глобального сбоя CrowdStrike 19 июля 2024 года, когда ошибочное обновление защитного ПО вывело из строя, по оценке Microsoft, около 8,5 млн компьютеров под управлением Windows. Раньше табло с расписанием рейсов могло быть специализированным устройством на очень простой электронике. Теперь же за плоским монитором нередко стоит полноценный компьютер с Windows. Собирать такие системы удобно, но, как подчёркивает докладчик, за эту сложность иногда приходится дорого платить.

реклама кормит Уточку 🦆

Затем Юэ показал, что подобное табло легко реализовать на Raspberry Pi с bare-metal-программой вообще без операционной системы. В таком случае не нужны ни принудительные автоматические обновления безопасности от стороннего поставщика ОС, ни громоздкие средства централизованного управления. Поскольку программа с нуля написана под одну задачу, вероятность её поломки из-за внешнего обновления или исчезновения малоизвестной зависимости, о которой команда разработчиков даже не подозревала, заметно ниже.

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

Новый минимализм и «парадокс низкого уровня»

Юэ говорит о «новом минимализме»: всё, что нужно понимать, должно умещаться в голове одного человека. Суть не только в работе на уровне «голого железа», но и в создании систем, которые отдельный разработчик способен понять сверху донизу. У такого подхода, конечно, есть пределы — крупный проект одному человеку целиком не охватить. Однако для многих задач это полезный ориентир.

Отдельно в докладе разбирается использование сторонних библиотек. Юэ называет это «парадоксом низкого уровня»: чем сложнее задача, тем сильнее разработчики полагаются на чёрные ящики, которые выполняют часть работы за них. Разработка ускоряется, но в проект быстро попадают тысячи строк чужого кода, а программист получает возможность не разбираться в том, что на самом деле происходит внутри.

Язык и виртуальная машина Minimacy

В качестве ответа Юэ создал язык Minimacy. Он задуман для разработки с минимумом зависимостей, чёрных ящиков и операционных систем при максимальной понятности кода. Язык лаконичный, линейный и безопасный, с строгой статической типизацией и выводом типов.

реклама кормит Уточку 🦆

Код выполняется в виртуальной машине Minimacy, которая объединяет мгновенный компилятор и виртуальный процессор. Проект полностью открытый, а его исходный код на C занимает менее 900 КБ. Оба свойства отвечают главной идее: разработчик должен быть в состоянии понять весь программный стек. Насколько лёгкой получилась система, Юэ продемонстрировал, запустив игру на Minimacy с дискеты на современном ноутбуке с UEFI.

Предполагается, что виртуальная машина Minimacy сможет работать на самом разном оборудовании. Это даёт коду почти прямой доступ к аппаратуре и одновременно сохраняет определённую переносимость между платформами — компромисс между bare metal и привычной кроссплатформенностью.

Плата Minimacy Machine на микроконтроллере RP2350Minimacy Machine — платформа, ориентированная на прозрачность: разработчик знает, что происходит на каждом уровне. В её основе микроконтроллер Raspberry Pi RP2350

Плата Minimacy Machine

Также Юэ показал аппаратную платформу Minimacy Machine. Она построена на микроконтроллере Raspberry Pi RP2350, работающем на частоте 150 МГц. RP2350 — второе поколение собственных чипов Raspberry Pi: в нём два ядра Arm Cortex-M33 и два альтернативных ядра RISC-V, из которых одновременно используется одна пара.

реклама кормит Уточку 🦆

Плата получила набор полезной периферии:

  • порт Ethernet для проводного подключения к сети;
  • OLED-дисплей;
  • слот для карт памяти SD;
  • часы реального времени.

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

Простота там, где она уместна

В целом доклад не сводится к Minimacy или программированию без ОС. Его главная мысль — искать простоту там, где она оправдана. Разумеется, «голое железо» подходит далеко не для всего, и большинство разработчиков по-прежнему будут использовать операционные системы в самых разных сферах, где они необходимы и полезны.

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