[Перевод] В чём уникальность BeOS и HaikuOS

Первое, на что следует обратить внимание в бета-версии Haiku — это работа с пакетами.

Когда мы говорим просто «пакеты», то подразумеваем только запуск пакетного менеджера на GNU/Linux, и т.д., но Haiku умеет гораздо больше.

Как я уже упоминал в обзоре Haiku Beta, это первый официальный релиз функции управления пакетами. Если сформулировать вкратце, то представьте PackageFS как нечто похожее (но не такое же) на старую систему модулей Slax 6, но со всеми обычными инструментами для «пакетов».

Систему управления пакетами можно описать в пяти кратких пунктах:

  • универсальные инструменты командной строки (как и следовало ожидать);
  • HaikuDepot;
  • средство обновления программ;
  • мониторинг состояния пакетов и/или системы;
  • PackageFS (где все пакеты плавно монтируются и подключаются при загрузке), с побочным эффектом — аккуратным слоем безопасности.


Краткий обзор этих функций:

1. Инструменты командной строки


Как и следовало ожидать от других операционных систем, в Haiku есть инструменты работы спакетами из командной строки, включая возможность обновления пакетов:

9cb001c9f95d007fb08a79376d7fec17.png

2. HaikuDepot


Наряду с инструментами командной строки есть удобный центр приложений под названием HaikuDepot, который позволяет легко искать, устанавливать и удалять пакеты.

bb9a08d458ca55fbe9b0e2996208c96b.png

И кроме HaikuDepot, конечно, есть также графический префлет Repositories, чтобы быстро и легко получать обновления, как в классической OS X.

ca858b7e60a804606eacde0d777469f6.png

3. SoftwareUpdater


И да, имеется ещё SoftwareUpdater с графическим интерфейсом, очень похожий по ощущениям на классическую панель/утилиту Software Update из Mac OS 9 и первых версий OS X.

23eac7cadefc080d5217afcf0954f406.png

4. Состояния


Одна из самых крутых функций пакетного менеджера — то, что можно вернуться назад во времени и загрузиться в предыдущее состояние системы. Для этого просто откройте меню загрузки, выберите загрузочный том, пункт «Последнее состояние» и версию с красивой меткой времени. Очень круто.

959b1828f46f5cdf0afbe0454ae5f9a6.png

5. PackageFS


Функция просмотра, установки и удаления пакетов дебютировала в версиях Haiku Nightly между Alpha 4.1 и Beta 1. Теперь она стала официальной. Всё программное обеспечение Haiku из Depot распространяется в виде пакетов, и как я проиллюстрировал на примере модулей Slax 6, эти пакеты умно встраиваются в систему при запуске и живут в своей собственной области packages:

b6a877828daf3b3640c55f0a03e0a169.png

Как побочный эффект новой PackageFS, несколько папок из видимой файловой системы теперь доступны только для чтения. На мой взгляд, эту небольшая деталь стоит отметить, так как она добавляет немного безопасности, сохраняя несколько папок от модификации. Но обратите внимание, что не все системные папки в Haiku доступны только для чтения.

e2c5aa3a5b5e43c131fe7b7d1a6ddfdf.png


Окей. Переходим к следующему пункту.

Новому пользователю сразу бросится в глаза пользовательский интерфейс Be, который сохранил фундаментальную простоту, при этом будучи довольно мощным.

«Новой» Apple после смерти Джобса здесь действительно есть чему поучиться как у своего прошлого, так и у BeOS. Я люблю macOS, потому что она очень простая и в то же время мощная. Но иногда слишком многое там запрещено, а самоотверженное стремление к искусству и внешней красоте слишком всё упростили. BeOS нашла способ предоставить пользователю серьёзные инструменты уровня разработчика, сохранив простой интерфейс как на классическом Mac OS или Palm OS. Это настоящее мастерство Be.

Обратите внимание, что у нас есть всё: от обычных пользовательских приложений вроде CodyCam до удобной утилиты редактирования ресурсов DiskProbe. У нас есть и полезный инструмент Devices в настройках, и PoorMan для публикации в вебе. (Примечание для читателей: я всё ещё думаю, что калькулятор в Dano выглядит лучше, чем DeskCalc. Кроме того, для разработчиков есть BeIDE и отладчик bdb).

6be77c83d5700e5c3f4d544eadf4dd8c.png

В отличие от различных дистрибутивов GNU/Linux под X.org или других систем, которые делают то же самое, здесь нет нескольких слоёв, которые пытаются перемешаться друг с другом. На BeOS (и Haiku), всё спроектировано в гармоничном сочетании, а дизайн сохранил опрятность. Подобно Mac OS и Palm, приложения подчиняются определённому поведению, которое обеспечивает согласованность и ясность пользовательского интерфейса.

71358bb56bd0d1b4c1d6b5734106e4a7.png

Icon-o-Matic: создание искусства


Как вы могли заметить на скриншоте BeOS, значки в BeOS сделаны из традиционных растровых изображений. С появлением Haiku всё изменилось: теперь все иконки делаются в новом векторном формате Haiku или .hvif.

Это означает, что значки корректно масштабируются в очень эффективном, лёгком векторном формате без потерь. Хотя обычные иконки масштабируются до 128×128, теоретически они могут быть гораздо более высокого разрешения. Это связано с тем, что подобно SVG мы используем пути и атрибуты или свойства для определения элементов: от системного домика и листа до теней, поверхностей папок и т.д. Другими словами, они передают больше информации, занимая в среднем меньше места, чем прежние растровые файлы.

7635b21824ba1fe5bf88f273227fb1b2.png

Нарисовать иконку легко. Просто сделайте контур из точек в редакторе или выберите шаблон прямоугольника или окружности.

090c867f3c605e2c57111c97d9c79e1d.png

После создания своего или выбора шаблонного пути сначала вы ничего не увидите. На этом этапе нужно определить путь с помощью формы. Для быстрого примера, добавлю форму со стилем (который придаёт ей цвет).

28105f9d5b8c1ba53fa2621128bfa4a8.png

И… когда мы выбрали стиль из соответствующего окошка в меню Style, у нас появился отличный зелёный круг! Поддерживаются градиенты и другие формы, но здесь мы показываем, как быстро Haiku позволяет разработчикам и художникам создавать новые иконки.

f46ecdcabd813c0294b45761674789a5.png

Конечно, хотя в приложении используются файлы HVIF и свои определения векторных ресурсов, Icon-o-Matic позволяет также экспортировать их в стандартные универсальные форматы SVG и PNG. И да, вы можете экспортировать их как атрибуты иконок BeOS. :)

cb59daad128dc72b02b71b6bb7570d98.png

Светло-коричневые вкладки


Если вы знакомы с BeOS или Haiku, то уже видели эти маленькие цветные вкладки. Они там не только для красоты: это универсальный интерфейс как в приложении, так и на рабочем столе. Haiku называет эту функцию Stack and Tile. Лично я просто представляю их как вкладки с магнитными краями. Они работают так:

Удерживайте кнопку option (клавиша Windows) во время перетаскивания:

8549b80f3a9503a8cd518a59d8dda82a.png

И вкладки могут произвольно соединиться друг с другом.

69b4a1eb3391af93e2ddf8f3da5f1ecd.png

Если вкладки вам не нравятся, у окон Haiku есть ещё одно волшебное свойство: они тоже магнитные! Удерживайте option — и вы склеите два окна.

1a72d75e87a2cd1124bb5288d3b6aea0.png

Присоединяем окна, и они склеиваются…

2c40f68c232659df75b874f87b5a155e.png

Я мог бы добавить, что в отличие от привязки в macOS (как в версии High Sierra) и Windows 7+, их можно вместе масштабировать, что довольно круто. (Но хочу быть честным со своими читателями: лично я предпочитаю вкладки).

И прежде чем закончить с этим вопросом: да, у окон есть и обычные функции, которые вы можете ожидать как опытный пользователь: перемещение и изменение размеров с нажатыми Сtrl и Alt.

8fbfe8a9cfb652b063a938a16d600476.png


BeOS может не первая, но явно раньше многих реализовала файловую систему с полным индексом и поиском — это BeFS (или BFS, не путать с BootFS). Подсказки об этом можно увидеть в DriveSetup, трекере и во встроенном окне поиска, где всё связанное с почтой, контактами и файлами можно мгновенно найти.

Давайте сначала сделаем обычный поиск 'maui» на рабочем столе:

644a8888b0e3d4141e3880a3930c6916.png

Он возвращает больше, чем просто файл; он также показывает два запроса. В BeOS запросы или сохраненные поиски появились раньше, чем Spotlight у Apple или Aero Search в Windows Vista и даже раньше, чем первая попытка Apple реализовать поиск под названием Sherlock (у которого была такая же идея примерно в то же время, и хотя HFS+ на Mac OS 8.5 действительно пыталась реализовать такой поиск, но это было не то же самое).

c4e24b62d7648c479d0e5b493dd742c4.png

И с этими запросами можно работать. Всегда в истории BeOS мы могли редактировать запросы… что как хотелось бы видеть в современном поиске.

5ebdc895b9177be8d3ce154da2c5a3fe.png

Пользователю доступно несколько инструментов индексирования, которые запускаются из терминала.

ad08f4b85cf534f37a6ab87348db81d6.png

Атрибуты добавляются и удаляются вручную. Для просмотра атрибутов в системном индексе можно запустить lsindex. И это подводит нас к следующему пункту.

53a108b5d85335c8f4cc0bdf5a3a197b.png


Одна из замечательных особенностей BeOS — это атрибуты, которые доступны для всех приложений в системе. Например, когда мы создаем контакт в People, то всё содержимое контакта является атрибутами. Обратите внимание, что размер файла »0 байт».

db121f41d3a0e826b4a708c6dbcc49c6.png

Трекер понимает, что это файл с контактами человека и показывает соответствующие атрибуты, если щёлкнуть по нему.

0f13c0dbcb890742c60cac17380d77d6.png

И есть способы прочитать эти атрибуты из других программ. BeOS знает о них. Если вернутся в терминал, то имеется хороший набор утилит для работы с атрибутами. Например, сделаем listattr на нашем милом маленьком человеке в системе.

163269de278fd9e38a2686ef2a2359b4.png

И атрибуты применяются во всех типах файлов в системе, а самими типами файлов можно универсально управлять с помощью префлета FileTypes в настройках. Это не похоже на вкладку с параметрами папки в Windows; здесь полный контроль над файлами.

acda4137fb7827dc5814a12666063872.png


Одна из моих любимых особенностей Macintosh — классный и забавный маленький язык под названием AppleScript, в котором я могу сказать компьютеру, чтобы он заснул, подал звуковой сигнал, вышел из приложения, открыл серию приложений, произнёс алфавит, показал диалоговое окно или сделал что-нибудь ещё весёлое (или полезное). Скрипты выросли в Automator, а потом в «ярлыки» Siri, но это не то же самое.

В Haiku аналогичная функциональность реализована в скриптовом инструменте hey. Хотя справочная информация подробно объясняет, как его использовать (см. ниже скриншот из Alpha 4), я ещё не в полной мере освоил его, если честно. Тем не менее, давайте для демонстрации напишем скрипт выхода из StyledEdit и получения названия окна.

9433f52931b0f1c1bc4575a6121f28a2.png

Чтобы выйти из приложения, нужно запустить что-то вроде hey StyledEdit quit, и приложение завершится.

abb28611954872fda5ea3618593fe989.png

Или если открыто окно, как в Pe, я могу написать hey StyledEdit get Title of Window 1, и Haiku скажет название окна. (Этот трюк указан в разделе «Работа с hey» Библии по скриптам BeOS от Криса Герборта):

db4d618eb6bd7e7b80651301e2861b30.png

Несмотря на всю его мощь, единственное, что мне не нравится в hey, это то, что он определённо рассчитан на технически подкованную аудиторию (разработчики и опытные пользователи, а не обычные пользователи), в то время как приказать компьютеру выключиться в AppleScript может даже маленький ребёнок (аналогичная функциональность в Mac OS X реализована с помощью osascript).


Шелл-скрипты позволяют создавать также всплывающие диалоги, как это делается в Python, Perl или Zenity/KDialog в Bash. Просто используйте команду alert, как показано ниже:

5b1a1b327d1b6d0d421d06a5b40fa1dc.png

Мы можем показать сообщение о критической ошибке…

21409e53e9b23d5fc08fd15bdbd6d413.png

или предупреждающее сообщение…

19c8cdea3e81efe11390d039e27c46d8.png

В Haiku есть кое-что ещё, чего нет в Be. Вы можете вывести окно выключения в стиле Mac из терминала командой shutdown -a, где a означает «спросить пользователя». В то время как обычная команда shutdown выключает компьютер, а shutdown -r перезагружает его, и это может быть эффективнее, но стоит упомянуть ещё об одном варианте.


Вы на самом деле начнёте уважать BeOS, если увидите, как была реализована стабильность системы в Mac OS 9 или в других системах примерно того же времени.

Примерно в 2001 году, когда разработка Be прекратилась, вышла удивительная Mac OS X. По сравнению с проворной BeOS система 10.0 Cheetah потребляла гораздо больше ресурсов, и только с выходом второй версии 10.2 Jaguar (10.1 Puma стала просто обновлением 10.0) она начала превращаться в серьёзную платформу.

BeOS была впечатляюще быстра для своего времени. Можно было запускать одновременно множество приложений, медиафайлов и так далее, без сложности больших систем. (Вместо слов просто посмотрите старое демо BeOS на YouTube, которое лучше демонстрирует этот момент и другие функции, подобные Workspaces, где пользователь для разных окружений устанавливает разные параметры, от фона до глубины цвета).

Треды


На BeOS всё работает в многопоточном режиме. Обратите внимание, что здесь стандартная утилита оболочки top показывает «team name» и «thread name»:

6d2d909c4bb6301e60a4971ea6387e60.png

Все эти потоки можно организовать в группы (teams), группы — это просто набор потоков, живущих в одном приложении и исходящих из него. Каждое приложение имеет по крайней мере основной поток. Вот почему окошко 'force quit' в BeOS и Haiku называется 'Team monitor' — красивая графическая утилита показывает, какие группы потоков в настоящее время работают, и оттуда можно завершить работу любой группы.

59b0ac7748930fc0959e9ff64903bd2d.png

Тем не менее, для действительно красивой визуализации нужно запустить replicant из контроллера процессов ProcessController на панели Deskbar в Haiku. Здесь мы увидим, как приложение разбито на части, и можем установить приоритеты. Имейте в виду, что всё изменяется в реальном времени.

Потоки и использование CPU в ProcessController:

e8f0216a00f09a5ede8239cec1ec2b69.png

Такая архитектура поощряет разрабатывать приложения, которые используют многопоточность: это одна из областей, которая делает Haiku действительно уникальной. Это нужно не просто увидеть, но и самому испытать.

Серверы


Теперь ещё одна особенность, уникальная для BeOS (опять же, вкратце): это серверы. Они обрабатывают различные части текущего сеанса: воспроизведение медиа, обработка любых сетевых подключений или просто обработка уведомлений или примонтированных томов.

fb06f5b5f679a3504300eba5b90b3e41.png

Приятная строка отладчика


Как и BeOS, Haiku содержит Kernel Debugging Land или KDL — встроенный отладчик, который можно вызвать из терминала в случае необходимости, или он сам запускается при сбое системы. :)

Доступна встроенная помощь, строка простая и понятная. Заметьте, даже здесь отладчик — это тред 524. Чтобы выйти из отладчика и вернуться в систему, просто наберите continue.

8ee578170cd1afec7e6eb080f207443b.png

При падении системы Mac вместо подсказки KDL раньше показывал милое паническое окно. (После OS X 10.8 или Mountain Lion мне кажется, что перезапуск после сбоя происходит автоматически. Но всё же признаюсь, я хотел бы, чтобы Haiku добавила для конечных пользователей ясное сообщение, как у Apple… тоже честное):

618bf6df9843ccc04e981501e0e01176.png

Но опять же, как я уже упоминал при обсуждении UI, в BeOS реализована идея расширения возможностей и представления пользователя системе вместо маскировки или упрощения интерфейса. Это и определяет Haiku сегодня.

Это то, что делает Haiku сегодня одной из лучших операционных систем. И безусловно, поэтому вы должны её попробовать. Так что если ваше оборудование совместимо (и даже если нет), скачайте Haiku!

rljmxzyeifvyy42k7kgfmh0pl1y.png
Оригинальные кнопки от humdinger с форума Haiku


Конечно, в Haiku намного больше замечательных функций, чем перечисленные здесь, но это основные моменты системы, о которых я решил рассказать.

Больше информации о функциях Haiku см. на страницах About и General FAQ. Если вам понравилась эта статья, не забудьте ещё просмотреть галерею скришотов Haiku на нашем сайте.

© Habrahabr.ru