? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

Краски Сентября

Моя интерактивная литература

Follow in NewsfeedFollowing

Latest comments:

Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

Haiku: ламповая гик-ОС

on Oct 08, 2018 · 5 min read

На днях прочитал на OpenNet новость о переходе Haiku в статус бета-версии. "Гайка", одна из тех "гиковских" ОС которая мне всегда нравилась. Вообще, среди всех альтернативных ОС она казалась самой "человеческой". Смотрел я её последний раз года 3 назад и думал, что разработка "угасала". Так что новость, конечно, порадовала и я решил посмотреть как дела у ребят на данный момент...


screenshot5.png (1280x1024)

Если вы вообще не знаете, что это за система, то это попытка воссоздать BeOS. Лично я никогда не пользовался оригинальной BeOS, поэтому для меня проект представляет интерес просто как пример "гиковской" ОС для души. Причём эта ОС изначально позиционируется как ОС для пользователей, в которой GUI -- это неотъемлемая часть системы. Это очень здорово. Итак, что я увидел...

Главное. Haiku при желании можно использовать на реальном железе. Я пробовал загружаться с USB флешки на ноутбуке (Thinkpad на i3) и на рабочей машине. Система грузится. Сеть, Wifi, звук -- работают. Это важное свойство. Я люблю запускать системы на реальном железе. Это мотивирует, в том числе, и разработку для этой ОС.

Система стартует просто реактивно! Я думаю, если искать практическую ценность проекта, то если у вас где-то на полке пылится дохлый нетбук -- это хороший кандидат для установки на него "гайки".

Оконная система оставляет приятное впечатление. В ней есть встроенное средство делать "табы" из окон. Достаточно нажать кнопку "win" и перетащить окно за ярлычок к другому окну. Также, окна можно цеплять друг к другу в режиме тайлинга. Вот как это выглядит.

tiling.png (1280x1024)

Теперь, система собирается и для 64 битных платформ. Раньше, система была привязана к gcc2. Это было обусловлено целями проекта -- бинарная совместимость с оригинальной BeOS. Мне это казалось ненужным ограничением в наше время. И к счастью, теперь гайка собирается в том числе и gcc 7й версии! Для 32 и 64 бит. Но есть вариант сборки с gcc2. Я ставил 64 битные сборки.

В системе есть прекрасный пакетный менеджер и дерево портов. Это значит, что установка и обновление софта делается просто: pkgman update. Естественно, не обязательно делать это из консоли, но мне так привычней. Сама пакетная система тоже интересная. Пакеты -- это образы, которые монтируются ядром прозрачным образом. Это реально очень круто! И похоже, позволяет просто откатываться к нужным состояниям пакетов.

Система не Unix-подобная. Более того, она однопользовательская. Но есть слой POSIX совместимости, что даёт возможность собирать многие привычные программы и библиотеки: bash, mc, git, qt5, sdl2 и другие. Сейчас в репозитории больше 4000 пакетов.

Если забрать из git исходный код гайки, и посмотреть сколько занимают исходные коды базовой системы (ядро + окружение), то это будет около 150Мб. Это нереально круто! Например, для сравнения распакованное ядро Linux 4.14 это ... 775Мб.

Строго говоря, в гайке используется не микро-ядро. Но и монолитом его сложно назвать. Не смотря на то, что сеть, драйверы и файловая система (sys/add-ons/kernel)выполняются в режиме ядра, в модульном смысле они отделены от "микро-ядра". Размер которого не превышает 5Мб (sys/system/kernel). Часть сервисов выполнены уже в традициях микро-ядерной архитектуры и выполняются в режиме отдельных процессов (servers/).

В общем это всё напомнило мне ядро Windows NT. Его тоже можно было бы назвать гибридным, по крайней мере в начале, когда графическая подсистема ещё не стала частью ядра, а OS/2 и Win32 были просто службами.

Ядро написано на cpp и это очень чистый и приятный в эстетическом плане код. Кстати, ядро Haiku развивалось как форк NewOS. Ядро NewOS написано бывшим инженером BeOS Тревисом Гейсельбрехтом, ныне работающем в Google над ОС Fuchsia. Ядро которой (Zircon) уже является настоящим микро-ядром. Но об этом в другой раз.

Конечно, первым делом я попытался перенести на гайку INSTEAD. SDL и SDL2, luajit и libiconv уже были в портах, поэтому сборка не представляла проблем. Правда, сборка с SDL2 имела дефекты со звуком (трекерная музыка) и курсором. Поэтому, я откатился на SDL1.

screenshot4.jpg (1024x768)

Дальше я уже попытался сделать полноценный порт. Мне помогали ребята с Telegram канала. В целом, способ работы с деревом портов тоже очень удобный. Работа автоматизирована с помощью haikuporter. Вот каким получился файл-рецепт для INSTEAD. Я также написал небольшой код, реализующий диалог выбора файлов и изменил место хранения настроек и игр в соответствии со стандартами Haiku.

screenshot3.png (1280x1024)

Потом я вошёл во вкус и исправил небольшие ошибки в портах SDL и SDL2, которые тоже были смержены в дерево портов.

Вообще, Haiku это как раз тот проект, который прямо манит меня, чтобы стать еще одним проектом "для души".

Если говорить о проблемах, то их, конечно, достаточно:

  • нестабильный веб-браузер WebPositive;

  • отсутствие suspend to ram/disk (правда, система грузится настолько быстро, что это можно не считать реальным недостатком);

  • незрелая поддержка USB3;

  • отсутствие 3d ускорения видео;

  • ...

Однако, я никогда не понимал людей, подходящих к таким проектам с точки зрения выполняемых функций. Я помню времена, когда я занимался ядром Windows NT и Linux 2.xx показался мне убогой поделкой. Да, ядро было объективно хуже. Система (я не помню точно, что это был за дистрибутив. KSI Linix?) вызывала рвотные позывы в течении месяцев. Однако было чувство чего-то неизведанного, красивого, ОТКРЫТОГО. Чего-то принципиально иного, принадлежащего не корпорации а нам -- программистам! Поэтому я работал с системой, изучал её и ... это стало моей новой работой. Потом, через год или два мой мозг уже стал мыслить в соответствии с Linux. Поэтому уже Windows NT стала вызывать рвотные позывы... Однако, это всё дало бесценный опыт. Я знал как работают ядра этих систем.

Если бы я рассуждал с точки зрения функциональности, честно, я бы пользовался Windows и сейчас. Если рассуждать с точки зрения функциональности, нужно быть с мейнстримом и точка. Поэтому мне очень близки гиковские проекты. Они собирают вокруг себя людей с пытливыми умами. А это и есть черта настоящих хакеров. Если человек снова затевает старую песню: "а вот у вас тут чего-то нет". Или: "А лучше Б, потому что мне так удобней"... Мне становится скучно. Посмотри, что хорошего в системе. За что её любят разработчики? Что нового ты можешь узнать.

О, смотри, она работает! Круто! Давай попробуем сделать это!

Гиковские проекты снова открывают нам радость исследования, эксперимента, написания кода мечты. Это так отличается от прагматического подхода написания кода в корпорациях.

Да, Linux стал мейнстримом и востребованным в промышленной сфере. И уже новое поколение "фанов" часто смотрит свысока на другие хакерские системы. Примерно так же, как раньше смотрели на Linux. Какая ирония! Ребята, да вы проиграли сами себе! Конечно, это относится только к части "фанатов". Большинство разработчиков, все-таки, не растеряли духа свободы.

В общем, Haiku прекрасная система. Её есть за что любить. С ней приятно иметь дело и в роли разработчика, и в роли ... пользователя. Сейчас, когда многие любительские проекты закрываются, хочется пожелать "гайке" не сдаваться. А разработчикам -- не забывать о свободе и радости творчества. Помните, как называлась книга Линуса Торвальдса? :)

12 Comments:

user_name1 day ago
Reply
Body
nyamson Nov 28, 2018
Reply

ухх... помню когда был второй пень, запускал BeOS, c 98 винды нужно было запускать кстате) она выгружалась и запускалась BeOS. У нее оформление довольно интересное, цепляет чем то

madcoredon Oct 23, 2018
Reply

Жаль, TempleOS - всё. Очень самобытна.

hugepingon Oct 10, 2018
Reply

еще очень интереснен AROS. ... ну и наверное, всё. Не вспоминается ничего больше.
А из самобытных, HelenOS.

Про AROS слышал, про HelenOS, по-моему, нет. Гляну.

geeklesson Oct 10, 2018
Reply

Кстати, из подобных проектов-клонов еще очень интереснен AROS. ... ну и наверное, всё. Не вспоминается ничего больше.

А из самобытных, HelenOS.

balancer73on Oct 09, 2018
Reply

Много лет назад щупал тогда ещё BeOS. Было приятно, быстро, но почти ничего из железа не определялось и не работало :) Больше с этой ОС не пересекался.

hugepingon Oct 08, 2018
Reply

anotherneko: К недостаткам однопользовательских систем можно так же отнести отсутствие разграничений прав доступа, когда например браузер имеет возможность отформатировать винт.

Согласен. Или ошибка в скрипте. ;) Конкретно в гайке, как буд-то многие системные компоненты доступны как r/o. Видимо, потому-что смонтированы из пакетов.
Но, конечно, с честным разграничением было бы спокойнее.

anothernekoon Oct 08, 2018
Reply

К недостаткам однопользовательских систем можно так же отнести отсутствие разграничений прав доступа, когда например браузер имеет возможность отформатировать винт.

hugepingon Oct 08, 2018
Reply

Кстати, многие "нерационально" сделанные вещи, приводят к "рациональным" результатам. Я правда не считаю это доводом в дискуссии, но это просто забавно.

Например, когда я писал ИНСТЕД, это было просто забавой. И можно было сказать, что это вредило моей работе. Однако, многие наработки в ИНСТЕДЕ, помогли моей работе. Очень много lua наработок ушло в "продакшен" и идейно и тупо по коду. Наоборот, правда, тоже работает. :) Вообще, мне с работой повезло. Я всегда играл. Что во времена БК0010, что сейчас. Так что сужу со своей колокольни. Если бы мне не удавалось относиться к работе как к игре, я бы наверное не стал бы работать в ИТ.

hugepingon Oct 08, 2018
Reply

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

У меня домашний комп используется не в одно лицо, но никто не заморачивается входом под своим аккаунтом.

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

Если рассуждать только рационально, многие вещи просто перестают существовать. Рационально -- не значит верно. Это просто один из "срезов". Я не сторонник того, что все что нерационально -- не нужно. Многие вещи никогда не станут рационализированы. Но это уже, конечно, мировоззренческий вопрос. Я просто сказал, что моему мировоззрению чужд такой подход. :)

geeklesson Oct 08, 2018
Reply

hugeping: В случае, когда система используется как десктопная, это не такой уж недостаток.

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

Но мне не нравится вывод. :) Я его не принимаю. :)

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

hugepingon Oct 08, 2018
Reply

geekless: Проект интересный, но для меня шоустоппером в Гайке всегда была наглухо отсутствующая система прав доступа.

В случае, когда система используется как десктопная, это не такой уж недостаток. Системные компоненты, по моему, вообще как r/o доступны. У меня домашние и персональные машины используются в одно лицо.

Однако проблема с любыми проектами после Linux как раз в том, что уже есть Linux.

Для меня это не проблема. Я и Linux занимался/занимаюсь не потому, что это "нужно". А потому, что интересно. А так, абсолютно согласен с наблюдением.

И это хорошо.

Но мне не нравится вывод. :) Я его не принимаю. :)

geeklesson Oct 08, 2018
Reply

Проект интересный, но для меня шоустоппером в Гайке всегда была наглухо отсутствующая система прав доступа.

Однако, я никогда не понимал людей, подходящих к таким проектам с точки зрения выполняемых функций. Я помню времена, когда я занимался ядром Windows NT и Linux 2.xx показался мне убогой поделкой. [...] Однако было чувство чего-то неизведанного, красивого, ОТКРЫТОГО. Чего-то принципиально иного, принадлежащего не корпорации а нам -- программистам!

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

Но вот как раз Linux своим весом убивает все другие альтернативы в пределах своей экологической ниши (кроме, разве что, FreeBSD и в какой-то мере OpenBSD). И это хорошо: меньше фрагментация, больше давление СПО на проприетарное ПО.

Можно сказать, Linux + *BSD занимают всю эту нишу целиком.

This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More