Пару лет назад в сети появилась информация о проекте Serenity — Unix-подобной операционной системе для архитектуры x86 с собственным ядром и винтажным интерфейсом. При этом возможности операционной системы заявлялись вполне современные.
Это ОС, написанная с нуля, которая не базируется на коде уже существующих операционных систем. Авторы SerenityOS активно работали над поставленной целью — создание новой операционной системы, пригодной для выполнения большинства привычных нам задач. Код системы пишется на С++. Сейчас проект достиг нового уровня развития — в среде ОС уже можно поработать, составив собственное мнение о SerenityOS. Подробности о новинке — под катом.
Очередной дистрибутив Linux?
Нет, авторы проекта утверждают, что система собиралась практически с нуля, без использования кода уже существующих ОС. Насколько можно судить, так и есть. У системы собственное ядро, графическая оболочка, диспетчер задач и прочие элементы и сервисы.
В самом начале разработки авторы проекта импортировали несколько функций стандартной библиотеки С и NetBSD. Но с течением времени от постороннего кода избавились.
Для того, чтобы собрать систему, нужно клонировать проект с git на свою машину и затем скомпилировать ее из исходного кода. В итоге пользователь выполняет запуск специфической виртуальной машины SerenityOS.
Авторы утверждают, что ОС заимствует несколько концептуальных идей у FreeBSD, включая лицензию системы и систему управления ПО ОС. Разработчики портировали для своей системы Quake и ретро-платформер VVVVVVV. Есть еще и рабочий порт Nesalizer для любителей эмуляции. Звук работает отменно — проблем с ним нет.
SerenityOS — не Linux и не BSD
Система действительно написана с нуля, причем прогресс идет относительно быстро, если оценивать скорость разработки парочки других похожих проектов. Сравнивать можно, например, с Haiku — проектом, который ставит своей целью воссоздание BeOS и еще одним проектом — TempleOS. Последний — довольно странный проект, разработанный американским программистом Терри А. Дэвисом с диагнозом «шизофрения».
На фоне похожих инициатив SerenityOS — «теплая ламповая» операционная система, с которой вполне можно работать.
Зачем написали эту систему? Этому есть две причины:
- Автор хотел получить обычную ОС, написанную «под себя» и свои потребности.
- Разработчик этой системы — излечившийся наркоман, который решил начать разработку масштабного проекта, чтобы отвлечься от своей вредной привычки.
Сейчас над этой ОС работает не один человек, а целая команда контрибьюторов — около 500 участников сообщества. На странице проекта на GitHub можно отследить работу примерно полутысячи человек, которые вносят посильный вклад в развитие проекта. Сейчас к команде присоединяется все больше людей, так что, вероятно, в скором времени можно ожидать ускорения разработки системы.
Можно ли полноценно работать в среде новой ОС?
Если кратко, то не совсем — операционную систему еще не доработали. Но дело осталось за малым — разрботчикам предстоит решить последние несколько проблем, после чего операционную систему можно будет выпускать «в люди». До этапа «полноценная и безглючная операционная система» остался еще год или два — в зависимости от активности рабочего дня команды создателей.
Одна из наиболее критичных проблем — работа браузера. Многие сайты и сервисы «падают» в нем, либо выглядят и работают некорректно, что признают и сами разработчики. Они пока не могут перенести современный браузер вроде Firefox или Chromium на новую ОС. Если есть желание, можно помочь и написать новый браузер с нуля. Текущий настолько слабый, что он пока не может даже воспроизводить видео с YouTube.
Основные достоинства
Новая операционная система очень быстрая и стабильная, если иметь в виду работу завершенных функций. Сейчас ядро ОС не поддерживает симметричную многопроцессорную обработку (SMP) — его специальная виртуальная машина использует только один поток физического процессора вашего хост-компьютера.
Модель системы — однопоточная. Чуть позже разработчики собираются добавить поддержку многоядерных процессоров. Сейчас она может работать с ними, но недолго — всего несколько минут.
Система интуитивно понятная, интерфейс ее коррелирует с интерфейсами 90-х, разобраться может даже ребенок. Unix-подобная консоль, трассировка стека и диспетчер оборудования выглядят весьма винтажно, если так можно выразиться.
Интересный момент — если в консоли ввести команду, которой не существует, то экран консоли кратковременно становится красным. Еще плюс — темы позволяют сделать SerenityOS похожей как на Win 95/98, так и на Windows 2000. Ну и есть еще HEX-редактор, обратите внимание.
SerenityOS, к слову, можно собрать и в Windows Subsystem for Linux — так что круг пользователей может быть достаточно широким.
На что похожа система?
По умолчанию — на Windows NT, в ней даже есть набор тем, которые выглядят, как те, что поставляла корпорация Microsot в 90-х. Разработчики подготовили множество системных утилит — все они работают, как и заявлено. Файловая система определяется как Ext2FS — здесь, наверное, стоило внедрить что-то более новое, но разработчикам виднее.
Наиболее положительный момент заключается в том, что из таких проектов, как TempleOS, Haiku, ReactOS новая операционная система выглядит почти завершенным проектом. Да, пока еще нет инсталлера, загружаемого ISO, но установить ее достаточно просто, а это — уже положительный момент для пользователей.
Список фунций на момент 2019 года впечатлял, поскольу ОС предоставляла такие возможности, как:
- Вытесняющая многозадачность;
- Многопоточность;
- Композитный и оконный сервер WindowServer;
- Собственный фреймворк для разработки графических приложений LibGUI с набором виджетов;
- Среда для визуального проектирования интерфейса приложений;
- Сетевой стек с поддержкой ARP, TCP, UDP и ICMP. Собственный DNS-резолвер;
- Файловая система на основе Ext2 (собственная реализация на C++);
- Unix-подобная стандартная Си-библиотека (LibC) и набор типовых пользовательских утилит (cat, cp, chmod, env, kill, ps, ping, su, sort, strace, uptime и т.п.);
- Оболочка командной строки с поддержкой потоков (pipe) и перенаправления ввода/вывода;
- Поддержка mmap() и исполняемых файлов в формате ELF;
- Наличие псевдо-ФС /proc;
- Поддержка локальных Unix-сокетов;
- Поддержка псевдотерминалов и /dev/pts;
- Библиотека LibCore для разработки эффективных обработчиков событий (Event loop);
- Поддержка библиотеки SDL;
- Поддержка изображений в формате PNG;
- Набор встроенных приложений: текстовый редактор, файловый менеджер, несколько игр (Minesweeper и Snake), интерфейс для запуска программ, редактор шрифтов, менеджер загрузки файлов, эмулятор терминала.
Сейчас функций и возможностей гораздо больше, поэтому если есть желание попробовать новинку, стилизованную под 90-е годы прошлого века, вы вполне можете попробовать.
Разработчикам предстоит решить еще несколько задач, включая добавление поддержки GPU и больших мониторов с высоким разрешением.
Если есть желание более подробно ознакомиться с системой, то вот канал YouTube, на котором разработчики регулярно выкладывают новые видео ОС. А вот GitHub проекта, где много всего интересного.