Разделы

ПО Софт Техника

Программист в одиночку создал клон Unix, потратив меньше месяца. Годы разработки и десятки кодеров больше не нужны? Видео

ИТ-специалист создал свою версию Unix, написав ее всего за 27 дней. Он работал над проектом без привлечения сторонней помощи. Система распространяется свободно – ее можно записать на флешку или загрузить с помощью Qemu.

Один разработчик – одна ОС

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

Если точнее, то весь процесс занял у него без одного дня четыре недели. Проект создавался в течение 27 дней.

Свою операционную систему Drew DeVault назвал Bunnix. Он выложил ее в открытом доступе в виде ISO-образа и предлагает всем желающим записать ее на внешний накопитель, чтобы опробовать на реальном «железе», или загрузить при помощи Qemu для тестирования в виртуальном пространстве. На момент выхода материала образ свободно скачивался с сайта разработчика. Объем файла составлял ровно 60 МБ.

Все работает. Почти

По словам автора проекта, Bunnix будет на подавляющем большинстве устройств AMD64, но при этом честно признается, что тестировал свою ОС лишь на двух компьютерах – Lenovo ThinkPad X220 и Starlabs Starbook Mk IV.

Скриншот системы

Drew DeVault добавил в систему поддержку Legacy-загрузки, а также UEFI. Это в значительной степени повышает вероятность успешного запуска как на современных, так и на относительно старых компьютерах.

Однако «из коробки» творение Drew DeVault на современных ПК все же не заработает, потому что он по неким причинам, которые он не раскрыл, не встроил в свою систему поддержку USB. Она вовсе не знает о существовании такого интерфейса, поэтому потребуется периферия (мышь и клавиатура) с древним коннектором PS/2. В качестве альтернативного варианта программист привел активацию эмуляции этого интерфейса в BIOS, если таковая имеется.

Что внутри

В основе большей части ядра Bunnix лежит язык системного программирования Hare, который пока не может претендовать на звание популярного или известного. Одним из ключевых его разработчиков является сам Drew DeVault, который также стоит за пользовательским окружение Sway, почтовым клиентом Aerc, платформой совместной разработки SourceHut и микроядром Helios.

Умное хранение: как удвоить товарооборот за счет внедрения складского ПО
Бизнес

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

В настоящее время в ядре Bunnix, как сказано на сайте разработчика, есть поддержка: PCI, устройств AHCI, таблиц разделов GPT и MBR, клавиатуры PS/2, последовательных портов и CMOS-часов. Также поддерживаются файловые системы EXT4 и MemFS.

Операционная система для эгоиста

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

Разработка Bunnix завершена

При этом в системе есть два загрузчика – legacy для старых ПК (написан на Hare) и EFI для современных компьютеров (написан на C). Оба они загружают ядро ​​в виде файла ELF и опционально загружают initramfs, если есть такая необходимость. Загрузчик EFI включает zlib для распаковки initramfs.

Куда же без Doom

Bunnix вполне можно считать полноценной ОС, тем более в комплекте с ней поставляется предустановленное (штатное) ПО. Список включает dash (/bin/sh), gzip, tcc (компилятор C) и ряд других утилит.

Позаботился автор и о тех, кто видит в компьютере в первую очередь игровую станцию. В Bunnix есть несколько видеоигр, включая культовый шутер Doom, годом ранее отметивший свое 30-летие.

Повеселились, и хватит

Drew DeVault не намерен развивать Bunnix. По крайней мере, в обозримом будущем. Вместо этого он вернется к разработке своего предыдущего проекта – OC Helios, некоторые компоненты которой легли в основу Bunnix. Опыт, который Drew DeVault получил при создании Bunnix, он намерен использовать в Helios.

«Bunnix был (обратите внимание на прошедшее время) проектом, который я написал с целью развлекательного программирования, поэтому его цель – доставлять удовольствие работать над ним. И я повеселился! На данный момент я не чувствую необходимости вкладывать в это больше времени и энергии, хотя некоторые из них определенно принесли бы пользу», – написал Drew DeVault в своем блоге.

Геннадий Ефремов