Haiku: Возвращение BeOS
По теории "большого взрыва", даже вселенная, как и все в ней, однажды родилась. Было время когда ее не было (кстати, а было ли тогда время?), а потом она возникла. Однажды ее снова не станет: она смертна. Что говорить про операционные системы, творения ума человека? Едва ли не каждый год, они уходят в небытие. Навсегда.
То, что случилось с BeOS, воскресшей под именем Haiku, если бы не правило "нельзя говорить что чего-то нет, на это всегда можно ответить что плохо искали", можно было бы считать уникальным явлением. Во всяком случае, я о подобных не слышал.
Эмуляторов операционных систем и давно устаревшего железа много, но Haiku - живая и развивающаяся операционная система, разработчики и поклонники которой уверены что она... лучше всех современных систем.
Это эмоции, но вывести формулу любви к "воскресшей" операционной системе было бы неплохо. Людям свойственно привязываться к самым разным вещам - macOS, AmigaOS, Porsche, Land Rover, картины, музыка, книги...
Попытки вывести "формулу любви" предпринимались и предпринимаются. Кто только не брался за это? Я не буду этого делать. Общего закона, скорее всего, просто нет. Помните правило, упомянутое выше?
Но рассмотреть рациональные аргументы поклонников в пользу их предмета любви, я попробую.
Это четвертая часть серии про Haiku. Предыдущие части:
- Первая: Haiku (OpenBeOS);
- Вторая: Кому нужна эта... Haiku?;
- Третья: Haiku R1/Alpha1.
Haiku... несовременна. Почему?
Самый простой ответ: систему писали не менеджеры и не отделы маркетинга. Все эти инстанции необходимы, но, похоже, в глубинах самых разных индустрий уже назревает революционная ситуация. Кто-то, кто найдет эффективный способ взаимодействия этих частей общего дела, и получит невероятное преимущество над остальными, но случится это когда-нибудь в далеком будущем.
Слишком многим нынешняя ситуация выгодна, а применяемые схемы работают. Проблемы с качеством не мешают выжимать из многомиллионного рынка триллионы долларов или евро... Это уже система, которая умеет себя защищать - я просто боюсь себе представить катаклизм, который смог бы ее разрушить. На время.
Haiku создавалась по другому. Людьми, неплохо зарабатывавшими в этой самой системе, не перенапрягаясь и не вкладывая в свое дело всю душу, без остатка.
Это пример того, что могут сделать увлеченные люди с нерядовой квалификацией, если им не мешать.
Haiku - не единственный добровольный и открытый проект, в который, "за так", вносили вклад специалисты высочайшего уровня, которые обошлись бы, в обычных условиях, в целое состояние. Он один из очень немногих таких проектов, приведших к тому, что можно считать результатом.
В любом непростом деле неизбежны "творческие кризисы".
Для добровольческих проектов они как рифы на пути фрегата XVI века. Для системы, которая убивает качество и умеет себя защищать, такие рифы менее опасны.
Рациональные аргументы поклонников Haiku
Райан Ливенгуд, программист с многолетним опытом, работает консультантом по разработке приложений с помощью Ruby-on-Rails, член правления Haiku, Inc, в котором исполняет обязанности казначея. Все пожертвования в пользу компании проходят через его руки.
Райан - один из ключевых разработчиков Haiku с 2003 года. Никогда до этого не имел дела с BeOS. Живет в Бойнтон-Бич, Флорида. Круглый год "на море"!
Привожу рациональные аргументы в его интерпретации.
Лучшие операционные системы для персональных компьютеров (по мнению Райана, это macOS и Linux’ы) происходят от серверных операционных систем. Ядро в этих системах не считает пользовательский интерфейс достойным своего внимания, для него это "еще один слой, где-то там".
Haiku, как и BeOS, создавалась как современная операционная система для персональных компьютеров, в которых пользовательский интерфейс играет едва ли не самую важную роль. Ядро в Haiku, как и в BeOS, относится к задачам, связанным с интерфейсом, очень серьезно и внимательно.
Многие считают такой подход в корне неправильным, он нарушает принципы, внушаемые в университетах и колледжах по всему миру - но, к счастью, доказать жизненность такого подхода несложно: зависания интерфейса (тот самый "пляжный мячик" в macOS) в Haiku очень редки. Намного реже, чем в macOS или в Linux’ах для обычных пользователей.
Интерфейс в Haiku (как и в BeOS) многопоточный. С каждым окном в интерфейсе связан собственный поток, интерфейсные потоки ядро обслуживает в особом порядке, из-за чего Haiku кажется очень живой, готовой в любой момент ответить на действия пользователя.
Это не блажь. Haiku не хуже чем macOS или Linux справляется с фоновыми задачами, ее и ее предка не зря называли Media OS - система, в любой момент, готова отреагировать на команду. Пользователь на своем персональном компьютере главный. Об этом написано в документации к классическим версиям Mac’овской операционной системы, потом об этом говорить и писать перестали.
Второй аргумент - BFS, файловая система Haiku, с встроенной в нее СУБД. С файлами разных типов связаны всевозможные атрибуты, стандартные и нестандартные. Значения любых атрибутов могут использоваться для поиска или организации файлов и директорий в файловой системе.
Пользователь имеет дело с гибкой, но простой и понятной, системой управления файлами и другими объектами файловой системы. Программисты имеют дело непосредственно с базой данных файловой системы.
Еще один аргумент приведу, но с важной оговоркой: я не пробовал эту особенность BeOS, и ее же в Haiku, зато я хорошо знаком с очень удачными попытками сделать то же самое в macOS... Достаточно хорошо, чтобы не верить что кто-то когда-то устранит все ловушки и проблемы, связанные с взаимодействием потоков.
Потоки - зло. Неизбежное.
Будто бы в Haiku эти проблемы решены, на уровне ядра, и программист изолирован от них. Несмотря на "изоляцию", GCD (General Central Dispatch) перенесли в Haiku.
Но вполне допускаю что разработчикам ядра Haiku (Райан один из них) и библиотек для разработчиков нашли какие-то решения, действительно облегчающие работу с потоками.
Приведенные в этом разделе аргументы относятся не только к Haiku, но и к BeOS.
В чем Haiku превосходит BeOS
BeOS пролежала в коме почти десять лет. За это время многое изменилось, в том числе и в операционных системах.
В Haiku реализована очень удобная система интернационализации и локализации, и она не меняется (радикально) вот уже долгие годы. В macOS/iOS и других appleOS, едва ли не в каждой новой версии (преувеличиваю, но не слишком сильно) подобная система меняется. Впрочем, когда она не менялась (оставаясь практически такой же, какой была во времена NeXT), было еще хуже.
Поддерживается больше языков. Чем в BeOS? Это случилось со всеми операционными системами. Если это случилось и в Haiku - хорошо.
И много-много технических подробностей, видимо важных - но чтобы оценить их по их реальной ценности все это нужно пробовать и сравнивать.
Главный вывод: Haiku R1A1 - это не реставрация BeOS R5.0.3 (последней официальной версии BeOS), а скорее "BeOS R6".
В продолжении, которое следует, поговорим о русском вкладе в общее дело Haiku, о браузере WebPositive (Web+) и о других интересных вещах.