Сперва я хотел бы поздравить всех пользователей ЛОРа с наступающим Новым Годом. Счастливых и весёлых вам выходных в 2019 году!
Осенью из новости на Linux.org.ru я узнал о выходе бета-версии операционной системы Haiku и решил проверить, можно ли использовать её для каких-то своих повседневных нужд обычному рядовому линуксоиду.
Джентльменский набор приложений
Первым делом меня волновал вопрос того, что же предлагает эта операционная система разработчику в плане поддержки компиляторов языков программирования C и C++. В этом плане всё оказалось более чем неплохо. Например, в качестве основного системного компилятора используется GCC 7.3.0, кроме того в репозиториях доступен практически bleeding edge: Clang/LLVM 7.0.1, я просто установил его и смог скомпилировать код со всякими там -std=c++2a
, что меня очень обрадовало. Обычно в альтернативных системах устаревший софт и, особенно, компиляторы. В репозитории есть свежий Qt 5 и KDE’шный фреймворк-довесок к нему: KF5. Boost и прочий фарш имеется тоже.
Ещё в репозитории есть Vim 8.0.1230 и Emacs 26.1, куда же сегодня без них. Я часто использую Vim, но не слежу за его версиями, поэтому не знаю, насколько старый он или новый. Это такая вещь, которую поставил и она просто работает. Привычный мне мой .vimrc
подтянулся без каких-либо особых проблем, хотя, стоит отметить, что иногда при редактировании больших C/C++-файлов я замечал некоторые тормоза, которые исчезали при выключении подсветки кода. Не знаю, но возможно это было как-то связано с тем, что Haiku была запущена в виртуалке. Есть некоторые распространённые плагины, вроде vifm. Но меня устраивает и классический Vim, без сторонних расширений функциональности.
Доступен Git одной из самых последних версий. Каких-либо проблем при достаточно активной работе с ним, я не обнаружил. Хотя казалось бы, на BFS (BeFS) может что-то и всплыть.
Терминальное приложение Terminal весьма удобное. Имеются вкладки, подсветка ссылок, вставка выделенного текста по нажатию на правую клавишу мыши, поддерживается цвет. Очень удобная фича поиска – нажимаешь Ctrl+F, вводишь искомый текст и он подсвечивается в терминале.
Файловый менеджер Tracker показался мне вполне обычным. Каких-либо звёзд с неба он не хватает. Разве что, очень тесно взаимодействует с различными системными приложениями. Например, встроенный почтовик хранит письма как файлы в файловом менеджере. И открывая эти файлы можно читать почту, отвечать на неё. Интересный подход. Ещё в файловом менеджере имеется киллер-фича: фильтрация вывода по названию. Открываем каталог с кучей файлов, начинаем набирать имя – всё что не подходит под эту маску, скрывается. Из файлового менеджера можно открыть терминал и распаковать/запаковать архив или системный пакет. Стандартно, удобно, то к чему все привыкли.
IDE и редакторы кода с графическим интерфейсом пользователя
Что меня несказанно обрадовало, так это то, что в репозитории имеется последняя версия Qt Creator, которая парсит код с помощью LibClang. Попробовал открыть пару проектов – всё работает как обычно. Иногда, конечно, встречаются некоторые шероховатости, вроде того, что внезапно перестают открываться аннотированные ссылки по нажатию на Ctrl, но эта проблема не является такой уж критичной для меня. Тем более после переоткрытия файла она пропадает. Помимо этого в репозитории имеется KDevelop, но я им не пользуюсь и сказать что-либо про качество его работы не могу.
На Java, которая пока доступна только для x86 (32-битной) версии Haiku, доступны такие IDE как NetBeans и IntelliJ IDEA в своей Community версии. Запускаются, работают, пару моих Pet-проектов открывают. Насколько хорошо – не в курсе, не слишком активно использую эти IDE и особо не копался.
А вот про эксклюзивные проекты было бы интересно рассказать. Первым является Paladin, который, вы не поверите, реализует нечто подобное UNIX-way в графическом интерфейсе пользователя. Это приложение представляет из себя фрейм, который крепится сбоку к вашему любимому редактору текста и взаимодействует с ним. Снизу можно прикрепить, например, терминал. Помните в нулевых раньше были такие сайты-фреймы, которые представляли из себя панель справа, а сам контент брали из других мест? Здесь что-то похожее.
Кстати, о продвинутых текстовых редакторах. Первый называется просто Pe и доступен в дистрибутиве Haiku сразу после установки. Он напоминает чем-то Gedit или Kate в Linux-дистрибутивах, как своими целями, так и функциональностью. Из интересного – в нём имеется поддержка подсветки специфичных сущностей из Haiku API. Ещё имеется редактор Koder, доступный в репозиториях, который напоминает собой Notepad++, да и базируется он тоже на основе Scintilla. Koder при открытии нового файла открывает новое окно и добавлет это окно во вкладку к существующему. Интересная и удобная возможность тесной интеграции стороннего приложения в систему.
Некоторые особенности
Пару слов об оконной системе в Haiku, которая, на мой взгляд, весьма удобная и практичная. Во-первых, табы, которые позволяют управлять окнами приложений таким же образом, каким мы управляем вкладками в современных Web-браузерах. У нас в Linux-дистрибутивах имеются подобные реализации в том же KWin (уже выпилили) и, вроде как, Fluxbox. Но всё это работает из рук вон плохо, видно что не хватает удобной интеграции в саму систему, то, что имеется в Haiku. Я нахожу группировку однотипных приложений во вкладки очень удобной. Во-вторых, в Haiku имеется тайлинг из коробки, благодаря которому окна различных программ можно удобно скреплять в некие группы, и всё это вместе потом перемещать по экрану. В-третьих, контексты некоторых окошек можно перекидывать в другие окна, например, файловые диалоги. В-четвёртых имеются специальные приложения-репликанты, окна которых можно разместить на рабочем столе. Чем-то это напоминает концепцию виджетов, только таких, которые глубоко интегрированы в систему. Ваше приложение может реализовать как окно самого себя, так и дополнительный виджет-репликант для размещения на рабочем столе (кстати их можно сделать несколько). Наиболее близкая к этому аналогия имеется, внезапно, в Android.
Есть трей, который активно используется некоторыми приложениями, вроде того же клиента Telegram. Рабочий стол выглядит достаточно просто. Имеются программы для быстрого запуска приложений и всякие панельки и докбары. Но мне хватило и стандартных возможностей.
Вся система, в том числе и её базовый образ, представляет из себя пакеты формата HPKG, которые легко могут быть обновлены через репозиторий. Отличие от Linux здесь в том, что содержимое этих пакетов не «устанавливается» в систему, а монтируется в ReadOnly-директории при её запуске и размонтируется обратно после выключения. Профит: моментальная «установка» скачанных пакетов и поддержка различных состояний системы. При этом юзеры могут заменить системные компоненты просто положив или «установив» пакеты (даже драйверы) в специальную домашнюю директорию. Это можно сделать и через пакетный менеджер. Как и в случае с Linux-дистрибутивами имеется возможность управлять пакетной базой как через консольку, так и через GUI с помощью программы HaikuDepot, представляющей из себя некий аналог магазина приложений. В нём можно оставлять комментарии и оценки.
Недостатки
Зайду сразу с козырей и расскажу про те вещи, которых мне в Haiku действительно нехватает.
Во-первых: нет популярных браузеров, таких как Firefox или Chromium. Их портов нет отчасти из-за отсутствия GTK+3, отчасти из-за других сложностей. В данный момент доступны браузеры, которые используют движок WebKit. Основные из них это Otter Browser, QupZilla и идущий в комплекте WebPositive, который представляет собой то, что представляет собой старый Safari. То бишь простую обвязку WebKit’а стандартными интерфейсными API. Из положительного: в данный момент времени разработчики допиливают порт QtWebEngine, что должно немного облегчить ситуацию с браузерами.
Во-вторых: нет 3D-ускорения, аппаратной поддержки OpenGL в видеодрайверах. Сейчас на официальном форуме идёт затяжной холивар на эту тему между разработчиками Haiku, пользователями и тем кому не всё равно, что в интернете кто-то неправ. Кто знает, может этот спор и выльется во что-то продуктивное. Пока весь OpenGL работает через LLVMPipe на CPU. Но стоит заметить, вполне неплохо работает, особенно старый OpenGL < 2.0
Теперь перечислю то, на что нужно обратить внимание, но что мне никак не мешало пользоваться операционной системой. Начну с того, что Haiku в данный момент времени однопользовательская, со всеми вытекающими. Пользователь в системе имеет массу привилегий со старта и по незнанию может натворить кучу дел. Но как было сказано выше, пакеты монтируются в ReadOnly-директории, поэтому просто так их не сломать. Закончу тем, что сон или гибернация не поддерживаются. Но, как по мне, это не такая уж и проблема, так как Haiku загружается очень-очень быстро.
Дополнительная информация и выводы
Стоит ли оно того? Моё мнение – попробовать однозначно стоит. Установить хотя бы в виртуалку, вместо очередного Linux-дистрибутива с нескучными обоями. Вы действительно сможете получить какой-то новый и интересный опыт.
Я, например, установил Haiku на свой старый-старый ноутбук. На удивление заработал и Wi-Fi, и сеть, и звук. Но у меня и с Linux’ом на этом ноуте не было никаких проблем. Так что если имеются старые ноутбуки или даже нетбуки, которые вам жалко выкидывать и отправлять в ящик стола или на пыльные полки, дерзайте и экспериментируйте. Популярный «легковесный» дистрибутив Lubuntu, который часто ставили на подобные машинки, сегодня дропает поддержку 32-бит (x86), а Haiku всё ещё поддерживает эту архитектуру. И, судя по всему, поддерживать будет ещё очень долго.
Если вас заинтересовала эта небольшая заметка, то на Хабре я написал большую статью про свой опыт портирования различных приложений (в основном игр) и доработку некоторых существующих для этой операционной системы. Оставляю здесь ссылку для страждущих, только всякой околотехнической информации там реально много, поэтому готовьтесь, что чтение займёт у вас прилично времени.
Задать какие-нибудь вопросы можно прямо в этой теме. Я постараюсь ответить на то, что знаю и что входит в область моей компетенции после трёхмесячного ознакомления с Haiku. Но лучше всего задавать вопросы в русскоязычном чате, который посвящён этой операционной системе.
Встретимся в 2019 году! :)
>>> Просмотр (1366x768, 75 Kb)