В чём уникальность BeOS и HaikuOS

https://osvoyager.wordpress.com/2018/11/30/what-makes-beos-and-haiku-unique/
  • Перевод
Первое, на что следует обратить внимание в бета-версии Haiku — это работа с пакетами.

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

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

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

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

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

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


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



2. HaikuDepot


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



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



3. SoftwareUpdater


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



4. Состояния


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



5. PackageFS


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



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



Мощный и простой интерфейс


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

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

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

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



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



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


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

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



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



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



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



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



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


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

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



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



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



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



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

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



Поиск


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

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



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



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



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



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



Атрибуты


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



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



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



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



Эй там!


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

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



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



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



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

Всплывающие диалоги


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



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



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



В 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’:



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



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

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



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

Серверы


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



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


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

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



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



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

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


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

Спасибо за чтение!


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

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

Похожие публикации

Комментарии 20
    +7
    Спасибо.
    Было бы крайне полезно для популяризации Haiku, если бы такие публикации
    появлялись почаще.
    Интересующихся станет больше.
    А может, кто-нибудь из них в будущем внесет свой посильный вклад в разработку…
      –1
      на старую систему модулей Slax 6
      Шёл 2018 год:
      Slax 9.6.4 - released on 26th of November 2018
      Сравнение с 6 Slax…
        0
        Slax с 9 версии перешёл на Debian, так что и это некорректное сравнение.
        0
        Думаю стоит также упомянуть о многопоточности в Haiku (насколько я помню тут как и в BeOS все работает в отдельном потоке).
          +4
          Отличная статья, сразу хочется поставить себе систему и переехать на нее жить, только что делать с ежедневными программами и играми.
            0
            Про файловые атрибуты хотелось бы подробнее. Если я правильно понял, то это должна быть супер фича.
            0
            Мне одному листочки на логотипе напоминают Hevу и Adamа?
              0

              Прекрасная система, вот бы ей возможность запускать софт из Linux. Я бы перешёл!

                0
                пакеты и состояния напоминают nix и nixos, для тех, кто хочет попробовать похожие идеи на linux
                  0
                  Из замеченного. После установки mc открыл консоль и набрал «mc» — ноль. Перезагрузил систему, открыл консоль — команда «mc» привела к ожидаемому запуску программы. Я не ожидал такого поведения.
                    0
                    Появились вопросы? Приглашаем вас в русскоязычный telegram-канал.
                      +2
                      У меня появилось желание даже что-нибудь для Haiku написать.
                        0
                        Вперёд! Нам как раз разрабов не хватает.
                        0
                        Всё то, что описано здесь про работу с пакетами (кроме GUI из коробки), уже давно можно в nix/nixos и недавно в guix/guixsd. Остальное — весьма интересно, но реализуемо в Linux.
                          0

                          Ты прав. И реализовано на значительно более серьезном уровне.

                            0
                            Единственное, что отталкивает эти дистры из массового использования — это GUI из коробки и какой-нибудь «мета-менеджер», который бы управлял самими конфигурациями (с GUI и CLI), при этом предоставляя расширяемость и гибкость, которая всем так нравится.
                          –1

                          Интерфейс сильно устарел на сегодня.

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

                            As you may have expected from other operating systems, yes, Haiku does have packaging tools available to you from the Terminal, including the ability to update, as listed out here:

                            Заканчивался 2018 год, Захабренный-Легенда-Переводчик с 750 кармы продолжал постить без вычитки то, о чём он, кажется, не имеет ни малейшего понятия.

                              +1
                              BeOS была впечатляюще быстра для своего времени. Можно было запускать одновременно множество приложений, медиафайлов и так далее, без сложности больших систем.

                              Кстати, не совсем так. Я в те годы был заметно моложе, и активно интересовался новым софтом, поэтому BeOS тогда уделил пристальное внимание. И насколько я помню, у неё была прекрасная многопоточность. Можно было запустить параллельно несколько OpenGL-рендерингов, и они вполне себе плавно работали. Там специально была демка с кручением чайника. Но был нюанс. Чистая однопоточная производительность в тогдашней BeOS была заметно хуже, чем в Linux и Windows. Что вполне ожидаемо, т.к. микроядерные ОС традиционно имеют высокие накладные расходы на межпроцессные коммуникации по сравнению с монолитными, и BeOS тут не исключение. Интересно бы посмотреть бенчмарки, как сейчас с этим дела обстоят в Haiku.

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

                              Самое читаемое