Опубликовано в

10 миллисекунд до шелла. Черти из BSD снова показали, как надо писать кодНа FOS…

10 миллисекунд до шелла. Черти из BSD снова показали, как надо писать кодНа FOS...


10 миллисекунд до шелла. Черти из BSD снова показали, как надо писать кодНа FOS...

🥸 10 миллисекунд до шелла. Черти из BSD снова показали, как надо писать код
На FOSDEM 2026 разработчики NetBSD🥸 показали, что происходит, когда инженеры с 30-летним стажем решают убрать вообще всё, что мешает процессору работать. Выкатив проект smolBSD… максимально переосмыслив то, как виртуальная машина должна общаться с гипервизором.
Инженеры пошли путем радикального минимализма. Они выкинули всю шелуху вроде GRUB и BIOS, заставив гипервизор грузить ядро напрямую, без лишних прелюдий и инициализации виртуального железа. Но этого показалось мало. Оказалось, что даже эмуляция обычного Serial-порта слишком медленная, потому что печать каждого символа вызывает VM Exit. Поэтому они выпилили эмуляцию серийника и внедрили нативный драйвер viocon (VirtIO Console). Теперь консоль работает напрямую через память, не дергая гипервизор по пустякам👍
Второй уровень оптимизации… отказ от сканирования шины PCI. Вместо того чтобы ядро при загрузке опрашивало устройства, они передают адреса VirtIO-устройств (диск, сеть, консоль) жестко через MMIO прямо в командной строке ядра. Драйверам не нужно ничего искать, они сразу знают адреса в памяти. А чтобы не ждать инициализации сети и DHCP (это же целые секунды!), они использовали механизм QEMU fw_cfg. Это интерфейс, который обычно используется для передачи конфигов в BIOS, но здесь через него пробрасывают файлы и скрипты прямо в память гостя. В демо они показали, как с хоста через обычный сокет отправляют команды внутрь микро-VM, и она отвечает мгновенно, работая по сути как обычный процесс, но с полной изоляцией ядра.
Еще они запилили сборку этих микро-образов через обычный Dockerfile. Вы пишете FROM base, добавляете пакеты через pkgin, и на выходе получаете загрузочный образ, который стартует за 10 мс. Глядя на это, хочется стереть все эти тяжелые кубернетесы и вернуться к инженерным истокам… без лишних слоев абстракции, на чистом ассемблере и Си 😎
Типичный 🥸 Сисадмин



View Source