Назад
Запуск Emacs у мікро-VM NetBSD за допомогою smolBSD
SiTech AI Team2 წთ. საკითხავი

Запуск Emacs у мікро-VM NetBSD за допомогою smolBSD

Розробник, відомий під псевдонімом The Emacs Cat, описав запуск Emacs у крихітній віртуальній машині NetBSD на базі smolBSD: ядро стартує за 26 мс, а вся гостьова система займає близько 180 МБ пам'яті хоста.

Розробник, який веде блог під псевдонімом The Emacs Cat, описав, як запустити Emacs у мікро-VM NetBSD, створеній за допомогою smolBSD — мінімальної віртуальної машини BSD UNIX, яка завантажується й запускає сервіс за кілька мілісекунд. Початкове завдання було звичайним: переконатися, що його мережева бібліотека на C і весь інструментарій компілятора збираються на NetBSD так само, як на Ubuntu та macOS.

Чому NetBSD

NetBSD — це Unix-подібна система з відкритим кодом, відома своєю переносимістю: вона працює на сучасних серверах x86-64 та aarch64, на вбудованих системах, вінтажних машинах (наприклад, VAX і m68k) і навіть на деяких ігрових консолях. Саме тому її давнє гасло звучить як «Of course it runs NetBSD». Автор зауважує, що це по суті старий добрий 4.3BSD, що додає трохи ностальгії. Оскільки вдома в нього немає окремої машини з NetBSD, він обрав віртуальну машину.

SMOLerfile у стилі Dockerfile

Образ мікро-VM описує SMOLerfile — конфігураційний файл smolBSD для мінімального сервісу на базі NetBSD. Він використовує знайомі директиви Dockerfile (FROM, RUN, CMD), хоча й не реалізує повну специфікацію. Dockerfile.devsh автора починається з набору base,etc,comp: ядрова система, каркас конфігурації та інструментарій компілятора із заголовними файлами, бібліотеками, лінкувальником і make.

Додаткові мітки задають назву сервісу devsh, пакети pkgin, curl, rsync і sqlite3, консоль PTY та образ диска на 2 ГБ, обрізаний до мінімуму плюс 512 МБ.

Emacs усередині гостьової системи

Вимоги були короткими: інтерактивна оболонка (типово ksh у NetBSD), інструментарій компілятора з gcc, make і ld та, звісно, Emacs. NetBSD постачається з vi (не vim) версії 1.81.6-2013-11-20nb4; автор встановив Emacs через pkgin як emacs-nox11 і додав GNU make (gmake) замість типового bsdmake.

Мінімальний ~/.emacs вмикає номери стовпців, підсвічування дужок і відступ у 4 пробіли зі стилем stroustrup для C. Одна деталь: QEMU використовує Ctrl-A як власну клавішу виходу, тож Ctrl-A не доходить до гостьової системи; подвійне натискання працює, але автор переназначив beginning-of-line на M-a.

26 мілісекунд і 180 МБ

Запускає образ невеликий скрипт: startnb.sh приймає створену під час збірки конфігурацію (-f), консоль PTY (-P), дозволяє вимикати машину з ksh (-n 2) і монтує каталог хоста в /mnt гостьової системи (-w).

На старому ноутбуці Dell Latitude 7400 ядро NetBSD стартує за 26 мс, а вся віртуальна машина спочатку займає 180 МБ пам'яті хоста.

Мікро-VM NetBSD завантажується в терміналі

У дописі автор описує весь шлях — від встановлення smolBSD до збірки й запуску образу, тож отримує повноцінне середовище розробки NetBSD без окремої фізичної машини.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.