В конце 2021 года мир увидел прекрасную операционную систему Essence с рядом функций, которых по умолчанию нет в популярных ОС, таких как Windows, MacOS или Ubuntu. Например, векторный UI и группировка окон по вкладкам (табам), как на скриншоте вверху. Действительно, очень удобно. Даже странно, почему никто из «больших» ещё не реализовал.
Essence — не единственная система, созданная с нуля одним человеком или небольшим коллективом. Есть такие феномены и в России.
Essence OS
Ключевые характеристики Essence OS:
- Для полноценной работы достаточно 30 МБ дискового пространства и примерно 64 МБ оперативной памяти. На скриншоте внизу ядро ОС занимает 45,5 МБ, но для загрузки хватит меньшего.
- Загрузка за несколько секунд даже на старом HDD. В демонстрационном видео при загрузке с SSD рабочий стол появляется через 0,7 секунды после заставки BIOS.
- Полностью векторный GUI, то есть идеальное качество изображения на дисплеях высокого разрешения. Продвинутый векторный рендеринг с поддержкой анимации.
- Вкладки.
- Рендеринг шрифтов на FreeType и Harfbuzz (любые языки).
- Открытые исходники.
- Особенности ядра:
- Независимый от файловой системы менеджер кэша.
- Менеджер памяти: общая память, маппинг файлов в память, многопоточное обнуление страниц, балансировка рабочего множества — память, которая требуется процессам в каждый момент времени.
- Сетевой стек для TCP/IP.
- Шедулер с несколькими уровнями приоритетов и инверсией приоритетов.
- Загрузка модулей по требованию.
- Виртуальная файловая система.
- Оконный менеджер.
- Аудиомикшер (в настоящее время переписывается).
- Дополнительная POSIX-подсистема, способная запускать GCC и некоторые инструменты Busybox.
- Независимый от файловой системы менеджер кэша.
В общем-то, это отличный образец системного программирования.
Есть свой файл-менеджер, текстовый редактор, IRC-клиент, диспетчер задач. На Essence портированы Bochs, GCC, Binutils, FFmpeg, Mesa (для софтверного OpenGL) и Musl.
Некоторые фичи, отсутствующие в других ОС, реализованы только благодаря глубокой интеграции подсистем в единой кодовой базе, написанной с нуля. Например, маппинг файлов в память, когда файл-менеджер подсвечивает названия файлов, открытых в данный момент. Такую функцию сложно реализовать в менеджере памяти Windows: слишком многое придётся переделать в тяжеловесном легаси.
Проверить систему в действии можно самостоятельно. Последние билды можно посмотреть здесь. Команда для установки в виртуальной машине Qemu:
qemu-kvm -drive file=drive,format=raw -m 2048 -smp 2 || qemu-system-x86_64 -enable-kvm -drive file=drive,format=raw -m 2048 -smp 2
Пока все версии выпускаются только для эмуляторов, но скоро автор обещает выпустить первый билд с настройками для реального железа (наверное, x86).
Видеодемонстрация на реальном железе:
Обсуждение проекта — на сервере Discord (обычно в онлайне больше 100 участников).
SerenityOS: шведский минимализм
Про SerenityOS уже упоминали на Хабре. Но в реальности каждый новый месячный апдейт Serenity — это событие, потому что проект сам по себе довольно удивительный.
Шведский разработчик Андреас Клинг совершенствует своё детище практически в одиночку. Для сравнения, над ядром Windows XP работало несколько тысяч программистов (общее число сотрудников Microsoft сейчас около 190 000).
Неудивительно, что Андреас практически стал звездой YouTube с 32 тыс. подписчиков.
Андреас Клинг
Раньше Андреас трудился в Apple над оптимизацией производительности движка WebKit. Компания Apple отличается тем, что почти все инструменты и программы создаёт сама с нуля, включая операционную систему и браузер. Судя по всему, разработчик проникся этим подходом. Так родилась операционная система Serenity.
В одном из интервью Андреас говорит, что проект очень важен для него в плане восстановления после зависимости. Собственно, он начал SerenityOS во время реабилитации — и продолжает до сих пор. Это как новая здоровая страсть, которая полностью заменяет старую пагубную.
Конечно, сейчас Serenity стала достаточно известной ОС, так что к делу подключились другие энтузиасты. Но поначалу он всё делал один. Вообще, увлекательно наблюдать за разработкой. Иногда она происходит буквально в реальном времени. Например, Андреас пишет в чате, что хорошо бы добавить функцию Х, а через два часа новое сообщение: «Функция Х добавлена».
Сейчас в Serenity OS есть собственный браузер, файл-менеджер, диспетчер задач и другие программы, включая пасьянс.
Последнее видео с обновлениями за январь 2022 года:
Вот ещё одно маленькое демо: здесь мы видим, что ОС работает на реальном железе, она загружается, запускается диспетчер задач, консоль и DOOM (320×200). Кстати, этот компьютер Андреас собрал из запчастей, которые ему прислали пользователи Reddit со всего мира: CPU i9-9900k, 64 ГБ DDR4, SSD 240 ГБ и т. д., то есть неплохая машина.
Стандартный UI напоминает классический дизайн Windows 95/98/2000 и выглядит немного консервативно по современным меркам. С другой стороны, у «старой школы» осталось много преданных сторонников, которым не очень нравятся последние тренды в UI.
Пример GUI-программирования в SerenityOS. Минимальная программа c окном:
#include <LibGUI/Application.h>
#include <LibGUI/Window.h>
int main(int argc, char** argv)
{
GUI::Application app(argc, argv);
auto window = GUI::Window::construct();
window->set_title("My window!");
window->set_rect(100, 100, 300, 200);
window->show();
return app.exec();
}
Программа рисует окошко заданного размера по заданным координатам с указанным заголовком:
Добавить кнопку — четыре строчки:
auto& button = window->set_main_widget<GUI::Button>("OK");
button.on_click = [&] {
app.quit();
};
Под SerenityOS совсем не сложно писать софт. За два года сторонние разработчики выложили несколько десятков приложений, игр и демок.
Персистентная память. Два в одном
Отдельно хочется упомянуть про уникальную российскую разработку Phantom OS, над которой более десяти лет работает Дмитрий Завалишин (dzavalishin) с коллегами. Собственно, сам автор неоднократно рассказывал о ней на Хабре.
Просто в этом году по СМИ прокатилась волна статей с упоминанием Phantom OS: всё началось с Cnews («Россияне создали уникальную ОС — конкурента Linux»), потом тему подхватили на Хабре. Возможно, кто-то уже забыл или не знал про Phantom OS, так что им было любопытно прочитать про этот проект.
На самом деле приятно, что о разработке вновь вспомнили. Самое главное, что опять всплыла ключевая и фундаментальная идея «Фантом ОС», которая отнюдь не устарела: это персистентная оперативная память. Кстати, год назад на эту тему был доклад на конференции FOSDEM 2021, то есть персистентная память считается актуальной и перспективной идеей.
Смысл в том, что объём RAM в компьютере уже позволяет хранить в оперативной памяти всю операционную систему, файлы и т. д. Нужно, чтобы информация сохранялась после отключения питания. Эта задача решается, например, сохранением образа памяти на диск.
Хотя работа с медленными накопителями остаётся неэффективной, главное, что ОС изначально спроектирована на один уровень памяти, а не на два (быстрая RAM + постоянное хранилище). То есть единая сущность вместо двух миров. Как говорил сам системный архитектор Phantom OS в комментариях на Хабре, «важно иметь концепцию персистентной системы, а сам механизм обеспечения персистентности вторичен. Если он появится в бесплатном виде — отлично».
Другими словами, осталось дело за малым — выпустить быструю энергонезависимую память.
Российские ОС
Персистентная оперативная память — далеко не единственная инновационная идея, которая никак не реализована в массовых операционных системах. На то они и массовые, чтобы сохранять легаси. Но это же и причина отсутствия революционных инноваций. Вот почему каждый год на конференциях типа SOSP, OSDI, EuroSys и HotOS энтузиасты представляют десятки новых операционных систем. Ближайшая конференция EuroSys пройдёт 5–8 апреля 2022 года в Ренне.
В России тоже есть научно-практическая конференция по операционным системам: OS DAY. Например, на OS DAY 2021 рассказывали про ОС «Аврора» (инфраструктура разработки, доверенная среда исполнения Аврора TEE и механизмы безопасности), KasperskyOS, QP ОС, РЕД ОС и др.
«Ульяновск.BSD 12» (версия 2021.12.21) на базе FreeBSD из Единого реестра российских программ
Единый реестр российских программ для электронных вычислительных машин и баз данных по классу «Операционные системы» содержит 24 записи (версия на 12 октября 2020):
Название | Правообладатель |
---|---|
Calculate Directory Server | ООО «МИР КАЛКУЛЭЙТ» |
Calculate Linux Desktop | ООО «МИР КАЛКУЛЭЙТ» |
Kraftway Terminal Linux | ЗАО “Крафтвэй корпорэйшн ПЛС” |
RAIDIX | ООО «РЭЙДИКС» |
Sailfish Mobile OS RUS | ООО «ОТКРЫТАЯ МОБИЛЬНАЯ ПЛАТФОРМА» |
WANFleX | ООО «ИНФИНЕТ» |
WTware | Ковалёв Андрей Александрович |
Альт Линукс 7.0 Кентавр | ООО «Альт Линукс» |
Альт Линукс КДесктоп | ООО «Альт Линукс» |
Альт Линукс СПТ | ООО «Свободные программы и технологии |
Альт Линукс Школьный | ООО «Альт Линукс» |
Альт Образование | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Альт Сервер | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Базальт Рабочая станция | ООО «БАЗАЛЬТ СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ» |
Комплекс анализа защищённости «Сканер-ВС» | ЗАО «Научно-производственное объединение «Эшелон» |
ОС РОСА КОБАЛЬТ DX | ООО «НТЦ ИТ РОСА» |
ОС РОСА ХРОМ DX | ООО «НТЦ ИТ РОСА» |
Операционная система «Синергия 1.0» | ФГУП «Российский федеральный ядерный центр — Всероссийский научно-исследовательский институт экспериментальной физики» |
Операционная система для микроконтроллера «Магистра х.х." | Зырин Николай Владимирович |
Операционная система специального назначения «Astra Linux Special Edition» | АО «Научно-производственное объединение Русские базовые информационные технологии» |
Программный комплекс ICLinux | ОАО «АйСиЭл — КПО ВС» |
Программный комплекс терминального доступа «Циркон 36КТ» | ЗАО «МНОГОПРОФИЛЬНОЕ ВНЕДРЕНЧЕСКОЕ ПРЕДПРИЯТИЕ «СВЕМЕЛ» |
Программный комплекс терминального доступа «Циркон 36СТ» | ЗАО «МНОГОПРОФИЛЬНОЕ ВНЕДРЕНЧЕСКОЕ ПРЕДПРИЯТИЕ «СВЕМЕЛ» |
Ульяновск.BSD | Волков Сергей Вячеславович |
Как показывает практика, серверы на процессорах «Эльбрус» пока что получаются дороже и хуже, чем на стандартных x86. Но разработчики надеются, что это временное явление.
А какие OS приглянулись вам больше всего?
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.