Мій третій день із Haiku: починає складатися цілісна картина

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

Два дні я вивчаю Haiku, несподівано хорошу операційну систему Зараз третій день, а мені ця операційка подобається так сильно, що я невпинно розмірковую: як зробити її операційною системою на кожен день? У плані спільних ідей мені більше подобається Mac, але біда: вона поставляється без відкритого вихідного коду, і доводиться шукати альтернативи з відкритим вихідним кодом.

За останні 10 років це найчастіше означало Linux, але і у нього свій набір проблем.

Операційна система Haiku представлена ​​на DistroTube.

Я спробував Haiku, як тільки про неї дізнався, був відразу ж вражений - особливо з робочим оточенням, яке «просто працює», а також явно набагато перевершує будь-яке робоче оточення для Linux, яке я знаю концептуально. Хочу хочу хочу!!!

Давайте на третій день переглянемо реальну роботу!

Відсутні програми

Доступність додатків — дуже «долоносний» аспект будь-якої операційної системи, стара тема. Якщо йдеться про Haiku, мені відомо, що для більшості випадків є різні доступні варіанти.

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

  • редактор розмітки (наприклад Типора). Звичайно є cutemarkedале у нього, схоже, немає ні кнопок, ні клавіатурних скорочень для розмітки тексту. Також є Shutterstock,en, але в нього немає клавіатурного скорочення для позначення тексту у вигляді вбудованого коду або блоку коду.
  • захоплення екрана анімований GIF (наприклад Заглядати). Є BeScreenCapture, але він таке не вміє.
  • ПЗ для 3D-принтерів (наприклад, Ultimaker Cure, PrusaSlicer).
  • 3D САПР (наприклад FreeCAD, OpenSCAD, або вбудований у Форма). Є LibreCAD, але він лише 2D.

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

Що ж потрібно Haiku для успіху з точки зору доступних додатків? Звісно ж, залучити розробників.

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

Я переконаний, що класичний підхід із «супроводжуючим», який збирає та підтримує пакети для певного дистрибутива Linux, не масштабується при великому списку додатків. Можна посперечатися, чи є програмне забезпечення для 3D-принтерів у цьому списку, але, наприклад, програмне забезпечення для організації розкладу конкретної школи - знаходиться. Що пропонує Haiku для таких програм? (Зазвичай вони написані із застосуванням електрон, доступні для всіх операційних систем, під Linux найчастіше обернуті в AppImage, що означає доставку для всіх користувачів без особливих проблем).

LibreOffice

Зрозуміло, що наявність LibreOffice для Haiku — неабиякий подвиг, про який користувачі BeOS могли лише мріяти, проте не все ідеально.

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

Хотілося б якось бачити прогрес запуску великого додатка, наприклад, «стрибкаючу іконку», зміну курсору, чи щось ще таке. Заставка LibreOffice з'являється лише через кілька секунд, а до того ви не знаєте, що відбувається.

Мій третій день із Haiku: починає складатися цілісна картина
Стрибки іконки додатків як ознака того, що програми запущені.

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

Час запуску додатків

ПРИМІТКА: будь ласка, сприймайте цей розділ із часткою критики. Продуктивність насправді чудова, якщо покладатися на думку інших людей. У мене результати сильно відрізняються… припускаю, що особливості моєї настройки та зроблені досі вимірювання антинаукові. Буду оновлювати цей розділ у міру появи нових ідей/результатів.

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

Мій третій день із Haiku: починає складатися цілісна картина
Як бачу швидкість запуску додатків.

  • запуск Крита займає близько 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

Для повної прозорості я перевіряв усе на двох різних машинах з 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 — щоб «Показати робочий стіл».

Поєднання у діалогових вікнах

Відкриваю StyledEdit, вводжу текст. Жму Alt-Q. Програма запитує, чи слід зберегти. Натискання Alt-D для того, щоб «Не зберігати», Alt-C для «Скасування». Але це не працює. Спробую використовувати клавіші зі стрілками, щоб вибрати кнопку. Теж не працює. Повторюю ті ж дії у додатку на основі Qt. Тут, як мінімум, працюють кнопки зі стрілками для вибору кнопки. (Клавіші для вибору кнопок спочатку використовувалися в Mac OS X, але розробники з тих пір, схоже, забули про цю можливість.)

Поєднання для створення знімків екрану

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

Цікаво, чи таке налаштовується вручну, але швидше за все це неможливо. Принаймні така спроба у мене результату не дала [треба було спробувати обернути на скрипт! - прим. перекладача].

Мій третій день із Haiku: починає складатися цілісна картина
Майже. Але не зовсім. Ігнорується "-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.

Список статей: перша, Друга.

Джерело: habr.com

Додати коментар або відгук