TL;DR: Haiku может стать великолепной настольной операционной системой с открытым исходным кодом. Мне правда этого хочется, но требуется еще много исправлений.


Два дня я изучаю Haiku, неожиданно хорошую операционную систему. Сейчас третий день, а мне эта операционка нравится так сильно, что я непрестанно размышляю: как бы сделать ее операционной системой на каждый день? В плане общих идей мне больше нравится Mac, но вот беда: она поставляется без открытого исходного кода, и приходится искать альтернативы с открытым исходным кодом.


За последние лет 10 это чаще всего означало Linux, но и у него свой набор проблем.



Операционная система Haiku, представленная на DistroTube.


Я попробовал Haiku, как только о ней узнал, был сразу же впечатлен — особенно с рабочим окружением, которое "просто работает", а также явно намного превосходит любое рабочее окружение для Linux, которые я знаю концептуально. Хочу-хочу-хочу!!!


Давайте на третий день посмотрим реальную работу!


Отсутствующие приложения


Доступность приложений — весьма "судьбоносный" аспект любой операционной системы, старая тема. Коль скоро речь идет о Haiku, мне известно, что для большинства случаев есть разные доступные варианты.


Однако я до сих пор не могу найти приложения для моих повседневных нужд:


  • редактор разметки (к примеру Typora). Конечно, есть CuteMarkEd, но у него, похоже, нет ни кнопок, ни клавиатурных сокращений для разметки текста. Также есть Ghostwriter, но у него нет клавиатурного сокращения для пометки текста в виде встроенного кода, или блока кода.
  • захват экрана в анимированный GIF (к примеру Peek). Есть BeScreenCapture, но он такое не умеет.
  • ПО для 3D-принтеров (к примеру, Ultimaker Cura, PrusaSlicer).
  • 3D САПР (к примеру FreeCAD, OpenSCAD, или встроенный в Onshape). Есть LibreCAD, но он только 2D.

Модель разработки


Что же нужно Haiku для успеха, с точки зрения доступных приложений? Конечно же, привлечь разработчиков.


На текущий момент командой разработчиков Haiku, безусловно, проделана огромная работа по внедрению различных популярных приложений, однако для полного успеха, как платформы, нужна возможность легкого создания версий приложений для Haiku. Cборка приложения для Haiku должна быть, в идеальном случае, еще одним вариантом в существующей матрице сборки Travis CI или GitLab CI. Ну как такая компания, как Ultimaker, создатель популярного ПО Cura для 3D-принтеров с открытым исходным кодом, пойдет на сборку своих приложений для Haiku?


Я убежден, что классический подход с "сопровождающим", который собирает и поддерживает пакеты для определенного дистрибутива Linux, не масштабируется при большом списке приложений. Можно поспорить, есть ли ПО для 3D-принтеров в этом списке, но, к примеру, ПО для организации расписания конкретной школы — находится. Что предлагает Haiku для таких приложений? (Обычно они написаны с применением Electron, доступны для всех операционок, под Linux чаще всего обернуты в AppImage, что означает доставку всем пользователям без особых проблем).


LibreOffice


Понятно, что наличие LibreOffice для Haiku — немалый подвиг, о котором пользователи BeOS могли только мечтать, однако не все идеально.


В моем случае (Kingston Technology DataTraveler 100 USB stick) для запуска требуется порядка 30 секунд, а разработчики подсказали, что обычный запуск приложений не должен превышать 4-5 секунд (в случае использования обычного жесткого диска [на моем SSD все запускалось меньше секунды, — прим. переводчика]).


Хотелось бы как-то видеть прогресс запуска большого приложения, к примеру, "прыгающую иконку", смену курсора, или что-то еще в этом роде. Заставка LibreOffice появляется только через несколько секунд, а до того вы и не знаете, что происходит.



Прыгающие иконки приложений как признак того, что приложения запущены.


  • Клавиатурные сокращения, показываемые в меню, ошибочны (подписано Ctrl+O, а по факту Alt+O, я проверял: Alt+O работает, а Ctrl+O — нет).
  • Alt+Z не работает (к примеру, в Writer).
  • Проблема “Application LibreOffice has aborted the shutdown process” [это так задумано, — прим. переводчика].

Время запуска приложений


ПРИМЕЧАНИЕ: пожалуйста, воспринимайте данный раздел с долей критики. Производительность на самом деле отличная, если полагаться на мнение других людей. У меня результаты сильно отличаются… предполагаю, что особенности моей настройки и сделанные до сих пор измерения антинаучны. Буду обновлять этот раздел по мере появления новых идей / результатов.

Производительность запуска (не нативных) приложений… не так уж велика, разница примерно в 4-10 раз. Как вы можете заметить, было использовано только 1 ядро процессора при запуске не родных приложений, по непонятной мне причине.



Как я вижу скорость запуска приложений.


  • Запуск Krita занимает порядка 40 секунд на флешке Kingston Technology DataTraveler 100, подключенной к порту USB2.0 (запуск Krita AppImage занимает долю секунды на Xubuntu Linux Live ISO через USB2; нужно больше тестов). Поправка: Около 13 секунд на SATA SSD с отключенным ACPI.


  • Запуск LibreOffice занимает 30 секунд на флешке Kingston Technology DataTraveler G4?, подключенной к порту USB2.0 (доля секунды на Xubuntu Linux Live ISO через USB 2; нужно больше тестов) Поправка: Меньше 3 секунд на SATA SSD с отключенным ACPI.



Также я слышал, что новейшие разработки улучшат производительность на SSD в более чем 10 раз. Жду, затаив дыхание.


Другие рецензенты постоянно хвалят Haiku за бодрую работу. Интересно, что не так с моей системой? Поправка: да, сломан ACPI на моей системе; если отключить — система работает шустрее.


Я сделал несколько тестов.


# 
# Linux
#
me@host:~$ sudo dmidecode
(...)
Handle 0x0100, DMI type 1, 27 bytes
System Information
 Manufacturer: Dell Inc.
 Product Name: OptiPlex 780
?me@host:~$ lsusb
Bus 010 Device 006: ID 0951:1666 Kingston Technology DataTraveler 100
# On a USB 2 port
me@host:~$ sudo dd if=/dev/sdc1 of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.03517 s, 38.2 MB/s
# On a USB 3 port
me@host:~$ sudo dd if=/dev/sdc1 of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 2.08661 s, 129 MB/s
#
# Haiku - the exact same USB stick
#
/> dmidecode
# dmidecode 3.2
Scanning /dev/misc/mem for entry point.
# No SMBIOS nor DMI entry point found, sorry.
# On a USB 2 port
/> dd if=/dev/disk/usb/1/0/raw of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.44154 s, 36.1 MB/s
# On a USB 3 port
/> dd if=/dev/disk/usb/1/0/raw of=/dev/null bs=64k count=4096
4096+0 records in
4096+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 7.47245 s, 35.9 MB/s

Для полной прозрачности я проверял все на двух разных машинах c Linux и Haiku. Если нужно — повторю тесты на аналогичной машине. Все еще непонятно, почему приложения запускаются медленнее, чем через usb2.0 на Linux. Обновление: в syslog этой машины есть много ошибок, связанных с USB. Так что приведенные выше результаты могут быть нетипичными для Haiku в целом.


Как гласит известная поговорка: не можешь измерить — значит, не управляешь. А раз есть желание улучшить производительность, то, думаю, набор тестов в порядке :-)


Сочетания клавиш


Для перебежчиков с других операционок у Haiku все просто замечательно, когда дело доходит до сочетаний клавиш. Лично мне больше всего нравятся сочетания клавиш в стиле Mac, когда удерживаешь клавишу слева от пробела («Ctrl» на клавиатурах Apple, «Alt» на других) при наборе буквы или цифры. Поскольку Haiku действительно хорошо работает в этой области, я чувствую, что могут быть рассмотрены следующие варианты:


Сочетания клавиш на рабочем столе и для него


Мне нравится, что можно щелкнуть иконку и нажать Alt-O, чтобы открыть ее, или использовать более традиционное сочетание Alt-вниз.


Точно так же было бы неплохо, если бы для перемещения файла в корзину можно было нажать Alt-Backspace, в довесок к Alt-T.


Для отображения рабочего стола: было бы неплохо применять Alt-H — для того, чтобы «Скрыть», и Shift-Alt-H — чтобы «Скрыть все». И, может, неплохо было бы ввести сочетание Shift-Alt-D — чтобы «Показать рабочий стол».


Cочетания в диалоговых окнах


Открываю StyledEdit, ввожу текст. Жму Alt-Q. Программа спрашивает, следует ли сохранить. Жму Alt-D для того, чтобы «Не сохранять», Alt-C для «Отмены». Но это не работает. Пробую использовать клавиши со стрелками, чтобы выбрать кнопку. Тоже не работает. Повторяю те же действия в приложении на основе Qt. Здесь, как минимум, работают клавиши со стрелками для выбора кнопки. (Управляющие клавиши для выбора кнопок изначально использовались в Mac OS X, но разработчики с тех пор, похоже, забыли об этой возможности.)


Сочетания для создания снимков экрана


Было бы просто отлично, если бы можно было нажать Alt-Shift-3 для снимка всего экрана, Alt-Shift-4 для появления курсора, который позволит выбрать область экрана, и Alt-Shift- 5 для текущего активного окна с его оформлением.


Интересно, настраивается ли такое вручную, но скорее всего это невозможно. По крайней мере, такая попытка у меня результата не дала [надо было попробовать обернуть в скрипт! — прим. переводчика].



Почти. Но не совсем. Игнорируется "-bw", плюс надо дополнительные настройки по умолчанию.


Другие вещи на клавиатуре


Чувствуется забота разработчиков, поэтому продолжу описывать свой опыт работы с клавиатурой в Haiku.


Невозможно ввести национальные символы


Символ "`" — особый, он может быть как частью другого символа (к примеру "e"), так и самостоятельным. В разных операционках его обработка также различается. К примеру, я не могу ввести данный символ на немецкой клавиатуре в KWrite; если попытаться его ввести — ничего не происходит. При вводе этого же символа в QupZilla получается ">>". В родных приложениях символ вводится, но нужно двойное его нажатие, чтобы он появился. Чтобы ввести его трижды (обычно это требуется при разметке блоков кода, я его так постоянно набираю), надо нажать кнопку 6 раз. В Mac ситуация обрабатывается более интеллектуально (достаточно трех нажатий при сохранении обычного ввода диакритических символов).


Приложения Java


Отсутствует JavaFX? На помощь приходит Java, не так ли? Ну не совсем:


pkgman install openjdk12_default
/> java -jar /Haiku/home/Desktop/MyMarkdown.jar
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Пойдем другим путем:


/> /Haiku/home/Desktop/markdown-writer-fx-0.12/bin/markdown-writer-fx
Error: Could not find or load main class org.markdownwriterfx.MarkdownWriterFXApp
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Оказывается, в реальной жизни приложения на java не такие уж и переносимые, как обещают в рекламе. Есть ли JavaFX для Haiku? Если да — почему не устанавливается вместе с openjdk12_default?


Не работает двойной клик по jar файлу


Удивлен, что Haiku не имеет понятия, как обработать двойной клик по файлу .jar.


Bash ведет себя странно


Поскольку есть bash, ожидалось, что pipes будут работать:


/> listusb -vv > listusb.txt
bash: listusb.txt: Invalid Argument

Заключение


Почему я пишу эти статьи? По моему мнению, миру реально нужна операционная система с открытым исходным кодом вроде Haiku, явно ориентированная на ПК, и еще потому, что меня все больше раздражает тот факт, что рабочие окружения для Linux не действуют сообща. Я не спорю, что для создания желаемого пользовательского окружения для ПК нужно совершенно другое ядро или можно получить аналогичное окружение поверх ядра Linux, но мне интересно, что скажут по этому поводу эксперты по ядрам. А пока я просто балуюсь Haiku и делаю заметки в надежде, что они окажутся полезны для разработчиков Haiku и / или заинтересованной общественности.


Попробуйте сами! Ведь проект Haiku предоставляет образы для загрузки с DVD или USB, формируемые ежедневно. Для установки достаточно скачать образ и записать его на флешку с помощью Etcher.


Появились вопросы? Приглашаем вас в русскоязычный telegram-канал.


Обзор ошибок: Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS


От автора перевода: это третья статья из цикла про Haiku.


Список статей: Первая, Вторая Третья Четвертая.

Комментарии (28)


  1. amarao
    07.08.2019 11:59
    +1

    Как можно отключить ACPI для SSD, если его там нет? Возможно, речь про AHCI, и общего с ACPI у него только две буквы и длина. Это как путать эклер с эркером.


  1. Finnix Автор
    07.08.2019 12:33

    Немного потерялся смысл при переводе, но если кратко: на Haiku есть реализация ACPI, но она не совсем адекватно работает, из-за нее иногда система тормозит, если отключить ACPI вообще — работа системы ускоряется независимо от типа накопителя. А поскольку у автора оригинальной статьи все изначально было на флешках — эффект был более выраженным, так что в результате автору пришлось запускать свои тесты на SSD, чьи результаты уже и попали в статью.


  1. FRAGIL3
    07.08.2019 13:15
    +2

    Я если честно совсем не понимаю автора цикла статей. Его хотелки от операционной системы скачут от «прыгающих иконок в доке» и каких-то одному ему ведомых комбинаций клавиш, до ПО для 3Д-принтеров. Похоже, что автору просто хочется видеть полный аналог Mac OS X, и малейшие отступления от канона его уже печалят.


  1. rmuskovets
    07.08.2019 13:26

    JavaFX исключили с jdk/jre начиная с 9


  1. CyberSoft
    07.08.2019 14:55

    Оказывается, в реальной жизни приложения на java не такие уж и переносимые, как обещают в рекламе.

    Это неудовлетворённая зависимость, также может произойти и с нативным приложением. Но нет, надо бросить камень в огород. Обычный Swing запустился бы, наверно.


    Не работает двойной клик по jar файлу

    Нет большого смысла так делать из коробки, потому что не все приложения умеют в java -jar app.jar. Для таких случаев обычно делают нативные лаунчеры или скрипты, в которых уже зашита магия запуска.


  1. namikiri
    07.08.2019 17:47
    +1

    Для установки достаточно скачать образ и записать его на флешку с помощью Etcher.

    Пожалуйста, вычислительных систем и святого кремния ради, прекратите уже рекомендовать этот раздутый инструмент! Сто сорок мегабайт — это не нормально для утилиты для записи образа на флешку!

    Используйте Rufus под Windows, dd под UNIX-like системами и будет вам счастье. Не потакайте разработчикам раздутого софта!


    1. vvzvlad
      07.08.2019 20:58
      -1

      Слушайте, я вот на маке хочу перетащить файл в приложение, чтобы записать его на флешку, а не вспоминать, как там размер сегмента в dd указывается и в каких единицах.
      Можете что-нибудь посоветовать?


      1. Paskin
        08.08.2019 00:09
        +2

        Disk Utility -> выбираете флешку -> Restore -> выбираете образ. И в Ubuntu это точно так же работает. Единственный недостаток — нужно разархивировать образ, сжатые не поддерживаются.


        1. vvzvlad
          08.08.2019 01:15

          Оу!


      1. slonopotamus
        08.08.2019 00:14

        Выбирайте:

        1. Вы не должны хотеть того что не предусмотрено системой MacOS. Вроде же такая там идеология?
        2. Обратитесь к своему системному администратору
        3. Напишите в Спортлото
        4. Перетащите, чо. Кто мы такие чтобы вам запрещать
        5. Как вам в поможет экзешник Etcher'а, о котором скриншот предыдущего комментатора?
        6. То что вы говорите называется XY problem
        7. Есть сомнения что для того чтобы так сделать нужна программа на 140МБ.


        1. vvzvlad
          08.08.2019 01:23

          7. Есть сомнения что для того чтобы так сделать нужна программа на 140МБ.

          Ну вот я и спорю с идеей «вам это не нужно, потому что много весит». Да пофиг мне как-то, сколько оно весит, пока оно не начинает занимать пару гигабайт на такой функционал: места на диске хватит еще на сотню таких программ и еще останется. Если единственная альтернатива dd(как namikiri предложил), то я выберу 140мб, если делаю это не раз в год.

          6. То что вы говорите называется XY problem

          Да? И как же вам поможет информация о том, что я записываю образы на microsd для одноплатника? Предложите мне покупать карточки с записанной ОС? Не использовать одноплатники? Использовать одноплатники с жестким диском? Написать свою оболочку для dd?


        1. Paskin
          08.08.2019 10:05
          +2

          Запись флешек предусмотрена MacOS из коробки — как через командную строку, так и в GUI.


      1. timoteo_cirkla
        09.08.2019 04:04

        С каких пор? Всегда просто делал dd if=image.iso of=/dev/sdb. Не надо там размер сегмента или что узнавать, кроме названия раздела с флешкой.


        1. vvzvlad
          09.08.2019 12:00

          Медленно-с


          1. timoteo_cirkla
            09.08.2019 16:59

            Кстати, у dd есть форк — dcfldd.


          1. timoteo_cirkla
            09.08.2019 17:00

            Причём тут медленно? Речь шла про то, что якобы нужно размер сегмента знать. Хотя узнать надо лишь название раздела с флешкой.


            1. vvzvlad
              09.08.2019 17:46

              А, ну т.е. то, что зная только название раздела dd копирует гораздо дольше, чем другая программа, пользователя волновать не должно?


              1. timoteo_cirkla
                09.08.2019 23:19
                -1

                Я к тому, что вы изначально говорили не про скорость, а что какой размер сегмента выяснять надо и ещё про какие-то единицы. Хотя банально нужны путь до образа и путь к примонтированной флешке.
                Вот вам скриншот вашего комментария. Так что судя по всему, вы банально тролль.
                image


                1. vvzvlad
                  10.08.2019 16:07

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


    1. ZaitsXL
      08.08.2019 10:13
      -1

      У вас че диалап? А с помощью dd ничего не выйдет если ISO сделан с компакт-диска (файловая система ISO 9660), уже пробовали


      1. namikiri
        08.08.2019 10:15

        У нас не бесконечная оперативная память и место на диске. Это вспомогательная утилита, а не среда разработки или браузер.


  1. densss2
    07.08.2019 19:54
    +2

    Угу, нет привычных комбинаций клавиш, бида-бида. Почему автор умалчивает о более глобальной проблеме Гайки: нет нормальных драйверов на те-же видеокарты? Нет дров на видяхи — нет 3D, нет 3D — нет софта, вроде того-же Блендера. Система, по факту, однопользовательская, со всеми вытекающими.
    Читаю уже третью статью автора и мне искренне непонятен его восторг от Хайку. Оформление и поведение интерфейса — вещь на любителя. Софта особо нет, ибо ценители Гайки — это не про написание софта, а про любовь БеОсу. Коммерческие перспективы туманны — мне сложно представить интересную для бизнеса, современную, однопользовательскую систему на сервере или рабочей станции. Сейчас не 80-е, вроде.
    Ни в коем случае не хейтер Хайку, наоборот, желаю ей быстрого развития. Пусть цветут тысячи цветов. Однако, у проекта есть более серьёзные проблемы, чем отсутствие привычных (для автора) сочетаний клавиш.


  1. ntfs1984
    08.08.2019 00:29
    -1

    В плане общих идей мне больше нравится Mac, но вот беда: она поставляется без открытого исходного кода, и приходится искать альтернативы с открытым исходным кодом.


    Покажите если вам не трудно, свои коммиты в существующее ПО с открытым исходным кодом и желательно более менее популярное. Может там XFCE какое, или GIMP. Накрайняк репорты об уязвимостях в коде какого-нибудь ПО.


    1. 0xd34df00d
      08.08.2019 02:48

      А зачем именно в популярное?


      1. ntfs1984
        08.08.2019 17:35

        Чтобы понимать, насколько человек использует открытый исходный код.

        А то уж очень смахивает на карго-культ.


  1. aram_pakhchanian
    08.08.2019 10:07

    Повелся на бурный восторг автора в предыдущих статьях, попробовал поставить официальную бету на VirtualBox. Оно загрузилось, но и все. По факту ничего нормально не работало. Продукт пока очень сырой, и, наверное, еще лет через 5 созреет. И, возможно, даже будет кому-нибудь нужен.


  1. ZaitsXL
    08.08.2019 10:19

    Не очень понятен восторг автора и еще менее понятно чем это лучше любого меинстримного дистрибутива Линукса, даже когда допилят до идеала. Особенно учитывая что где то там в глубине оно судя по всему и есть Линукс, судя по наличию баша и консольных утилит


    1. timoteo_cirkla
      09.08.2019 04:08

      Судя по наличию баша и консольных утилит нельзя судить, что это линукс. Это продолжение системы BeOS. А баш и консольные утилиты есть и в макоси, что не делает её ни BSD, ни тем более Linux'ом.