СофтХабрахабр

[Перевод] Мой третий день с Haiku: начинает складываться целостная картина

Мне правда этого хочется, но требуется еще много исправлений.
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 для успеха, с точки зрения доступных приложений?

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

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

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” [это так задумано, — прим. переводчика].

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

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

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


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

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

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

Жду, затаив дыхание. Также я слышал, что новейшие разработки улучшат производительность на 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. 0 на Linux. Все еще непонятно, почему приложения запускаются медленнее, чем через usb2. Так что приведенные выше результаты могут быть нетипичными для Haiku в целом. Обновление: в syslog этой машины есть много ошибок, связанных с USB.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложения Java

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть