Препятствием к портированию программ в Haiku OS было отсутствие обновленной версии GCC4 компилятора. Можно воспользоваться GCC 4.1.2, но кросс-компиляция при этом может быть болезненной и разочаровывающей.
Майкл Лоц решил эту задачу - GCC 4.3.3 стал "родным" для Haiku. Теперь это реальность.
Haiku — свободная операционная система для персональных компьютеров, первая версия которой нацелена на бинарную совместимость с операционной системой BeOS.
С закрытием разработки операционной системы BeOS, и продажей всей её интеллектуальной собственности фирме Palm, перед энтузиастами BeOS встала задача дальнейшего развития и существования этой операционной системы вообще. Поскольку система была во многом уникальной и передовой, её адепты решили, дабы избежать юридических и технических проблем, переписать всё с нуля, с полностью открытым исходным кодом, обеспечив максимально возможную двоичную совместимость с последней версией BeOS — 5.0. Проект изначально назывался OpenBeOS, потом OBOS, и, в конце концов, Haiku.
Haiku воплощает в себе основные идеи BeOS. Это будет модульная система, архитектурно решённая как «модульное ядро»: микроядерная архитектура, способная динамически подгружать необходимые модули. Сетевой стек работает в режиме ядра, но, в целях двоичной совместимости с BeOS R5, имеет также интерфейс в пользовательской области памяти (user space).
К интересным особенностям системы следует отнести архитектуру трансляторов — системных интерпретаторов файловых форматов (например, JPEG). Кроме того Haiku продолжает традиции BeOS по активному использованию файловых мета-атрибутов, что позволяет реализовать работу с данными простыми и очевидными методами.
Haiku разрабатывается преимущественно на языке программирования C++, с небольшим количеством кода, написанным на Ассемблере.
Существуют группы разработчиков, занимающихся различными сферами:
Приложения/Интерфейс.
BFS — развивают Be File System/OpenBFS
Game — улучшают Game Kit и его API.
Input Server — сервер, поддерживающий устройства ввода, такие как клавиатура и мышь и их взаимодействие с другими частями ОС.
Kernel — ядро ОС.
Media — аудио-сервер.
MIDI — реализует MIDI сервер.
Network — драйверы сетевых устройств.
OpenGL
Printing — драйверы для устройств печати.
Storage — устройства хранений данных.
Дистрибуция — Be получило это право. Ни один Linux или Windows такого не имеет. Сборка всех библиотек, которые нужны разработчикам в ОС и их обновление с высококачественными билдами каждый год или два. Никто не хочет перезагружать свою ОС и никто не любит страдать над .dll или .so.
BFS — Она журналируемая, она вместит столько информации, сколько вам будет нужно когда–либо, она имеет живые запросы, она имеет оперативные запросы и атрибуты и создана для быстрой производительности, за счет медленного удаления/создания. Забудьте checkdisk навсегда.
Kits — Каждому, кто пишет новый язык (за исключением. NET языков) необходимо начинать все с нуля и на Windows, и на Linux — ОС обеспечивает вам очень немногочисленный набор обычных функций (например загрузка растрового изображения). Мы же имеем очень мощные инструментарные наборы (Kits), а толи еще будет…
Лицензия MIT — Я знаю, что лицензирование — всегда раздражающая тема, но даже самые горячие приверженцы GPL должны признать, что для ситуаций, где требуется внедрение — BSD является лучшей лицензией. Конечно, это преимущество перед Windows.
Быстрая загрузка/выключение — Прогресс не стоит на месте. Старая практика постоянной работы вашей машины (чтобы снизить температурные/энергетические перепады и продлить жизнь ПК) уходит в прошлое и люди все больше задумываются об этом. Быстрая загрузка позволит им удобно использовать свои компьютеры только тогда, когда они действительно нужны (по аналогии с бытовыми приборами, вроде телевизора или стереосистемы).
C++ — Выбирая между C, C#, Objective C или C++, я полагаю, что огромное большинство разработчиков склонилось бы к C++, для разработки нативных прикладных приложений. (и к D - это уже от меня:))
Репликанты — Люди начинают понимать значение репликантов с Виджетами (украшениями) и дюжиной других вещей. Мы имеем их уже почти десятилетие. Мы должны и будем использовать их намного лучше.
Единый путь — Никто в сообществе Haiku, всерьез не начнет писать свою собственную оконную среду. Они скорее будут работать внутри app_server. Тоже самое с Media Kit, ядром, и т.д.
Простота — Каждый программный проект, который жестко не ограничен, устаревает с возрастом. Функции устаревают, но не удаляются, причины по которым выполнялось специфическое действие перестают быть актуальными. Аппаратное обеспечение совершенствуется, но код не изменяется. Haiku же, при том, что она использует BeOS API, является свежим началом.
Многопоточность — Созданная с и для многопоточности с нуля, Haiku будет лучше использовать процессоры с двумя, четырьмя (и более!) ядрами, которые появляются и будут появляться в будущем. Это делает нашу работу с окнами еще более быстрой и отзывчивой.
Нетребовательность — В то время, как компьютеры становятся быстрее, с большим количеством памяти и большим количеством места на жестком диске, Haiku, остается маленькой и эффективной. Вам не надо будет покупать самое новое оборудование, чтобы новая версия ОС работала. Это также делает нашу систему более пригодной для таких низкопроизводительных вещей, как «ноутбук за 100$".
Сила файлов — Наши файлы электронной почты и картотеки — концепция, которая почти отсутствует у других операционных систем. Сила MIME–типов и стандартизации дает нам возможность создать рабочий стол, который имеет большие способности к взаимодействию и гибкости, чем любой другой. В Haiku очень просто переключиться между почтовыми приложениями и менеджерами контактов.
Адд–оны — Вместо того, чтобы делать монолитные библиотеки, мы формируем фреймворки и адд–оны. Трансляторы и Media Kit — вот основные примеры того, как можно сделать операционную систему расширяемой между релизами, легко понятными и поддерживаемыми способами.
«Делай правильную вещь» — Мы сфокусировались на пользовательском опыте, то что недостает другим. Вместо запутывающих вариантов, скрытых за «Визардами», мы заставляем софт делать правильные вещи.
Переносимость — Вы можете поставить Haiku на диск и перенести его из одного ПК в другой, и это будет «просто работать» (если конечно есть драйверы). Аналогично, резервные копии могут быть сделаны простым копированием файлов. Никаких системных файлов, которые нельзя скопировать, никаких «призраков».
Стабильность API — Наш R1 будет бинарно совместим с R5. Это означает, что приложения конца девяностых будут работать на имя новой операционной системы. Это вид среды, где люди могут чувствовать себя уверенными во вложении в программное обеспечение; они знают, что будут способны запустить ту или иную программу в течении многих лет. Это — также вид среды, где разработчик драйвера будет уверен в том, что если он однажды напишет драйвер, тот будет работать в течении многих лет.
Скриптинг — Каждый элемент в Haiku полностью скриптуется. Каждое приложение, которое использует этот элемент также является полностью скриптабельным. Множество приложений имеют их свою скриптовость, вне уже включенного скриптинга. Хороший пример — BeHappy. В то время, как нет никакого «официального» скриптового языка Haiku, довольно просто отправить сообщение и получить BMessages к большинству скриптовых языков, сделать любой язык доступным для скриптинга приложений Haiku.
«Консоль против GUI» — Агностичность — Мы обеспечиваем лучшее из обоих. Одним людям нравится командная строка. Другие боятся ее. Мы даем пользователям сделать свой выбор.
Сообщество — Я имею возможность встречаться с многими людьми из сообщества Haiku. Они, без исключения, самая хорошая, самая полезная, самая добрая, самая дружественная группа людей, которых я когда–либо встречал. Даже те на BeDoper.
>Дистрибуция — Be получило это право. Ни один Linux или Windows такого не имеет. Сборка всех библиотек, которые нужны разработчикам в ОС и их обновление с высококачественными билдами каждый год или два. Никто не хочет перезагружать свою ОС и никто не любит страдать над .dll или .so.
Переведите, пожалуйста, на русский. Речь про "высокое качество, недоступное линуксу"? Можно поинтересоваться, откуда оно берётся? Ну, настолько высокое, что аж дебьяну не видать ничего подобного.
>BFS — Она журналируемая, она вместит столько информации, сколько вам будет нужно когда–либо, она имеет живые запросы, она имеет оперативные запросы и атрибуты и создана для быстрой производительности, за счет медленного удаления/создания. Забудьте checkdisk навсегда.
Очень круто. Можно уже начинать писать драйвер этой FS для линукса.
>Лицензия MIT — Я знаю, что лицензирование — всегда раздражающая тема, но даже самые горячие приверженцы GPL должны признать, что для ситуаций, где требуется внедрение — BSD является лучшей лицензией.
Уууу, как всё запущено.
>Быстрая загрузка/выключение
Насколько быстрая? Тут в новостях периодически пишут про успехи линукса в этом деле, счёт на секунды идёт. У них намного быстрее, да?
>C++ ...
Ну это да. Язык с++ - это то, что хайку даст миру, лол.
>Единый путь — Никто в сообществе Haiku, всерьез не начнет писать свою собственную оконную среду.
Это хорошо? Даже для виндося пишут, а им вдруг не надо.
>Многопоточность — Созданная с и для многопоточности с нуля, Haiku будет лучше использовать процессоры с двумя, четырьмя (и более!) ядрами, которые появляются и будут появляться в будущем. Это делает нашу работу с окнами еще более быстрой и отзывчивой.
А что, на одном ядре окна тормозят? о_О Не, ну есть - и хорошо. Осталось получить с этого реальную выгоду.
>Переносимость — Вы можете поставить Haiku на диск и перенести его из одного ПК в другой, и это будет «просто работать» (если конечно есть драйверы).
Ё-моё, да так даже венда может. "Если есть драйверы", ага.
>Речь про "высокое качество, недоступное линуксу"?
где там написано про линукс? O_O >Очень круто. Можно уже начинать писать драйвер этой FS для линукса.
для 2.4 был:) >Насколько быстрая?
померяй >Язык с++
почему бы и нет >Это хорошо?
да. есть основа. >А что, на одном ядре окна тормозят? о_О
и что не нравятся? xlib, например, однопоточный. будет больше ядер - будет интерфейс отзывчивей и сама ОСька. >Осталось получить с этого реальную выгоду.
да >Ё-моё, да так даже венда может.
вот и славно:D
на то она реклама:P откуда столько неприязни? o_O не нравится MIT - есть сайлабл на GPL:D
В начале 1999 Makoto Kato разработал драйвер BeFS для Linux, который, однако не был дописан до стабильного состояния, поэтому в 2001 вышел другой драйвер, который написал Will Dyson. Как часть проекта OpenBeOS в 2002 Axel Dörfler с группой товарищей переписали оригинальный драйвер и издали его под именем OpenBFS.
Haiku не нужен. Его его пять лет надо пилить до состояния, в котором линукс находиться сегодня, и лет 20 до состояния десктопа. Опять налицо занятия проектами без особенной надежды на будущее. Нет бы допилить какой-нить один дистрив (и/или) DE до приличного состояния...
Можно. Выставляешь драйвер чипсета на "default" и копируешь. Есть приблуды, вроде Акрониса, которые жэто автоматизируют. Это как бы не недостаток венды, а специально введеная (идиотская) особенность.
>Можно. Выставляешь драйвер чипсета на "default" и копируешь. Есть приблуды, вроде Акрониса, которые жэто автоматизируют. Это как бы не недостаток венды, а специально введеная (идиотская) особенность.
Итого: одно только KDE3 + qt4 весит столько (или толще, если собранные примеры посчитать), сколько весь "толстый" образ haiku-alpha.img, вместе со средствами разработки и какими-никакими, но приложениями
> Т.е. можно скопировать венду с винта одного компа на винт другого компа (с другим набором оборудования) и она заработает?
да, можно -- если контроллер IDE стоит стандартный, а не зависимый от материнки, нет рейдов, драйвера нестандартные под специфическую материнку отключены, и т.п. Если нет, придётся возиться с реестром чтобы отключить ненужные драйвера
>И если вдуматься, то все перечисленное есть в линуксе, макоси и венде уже достаточно давно для того, что бы забыть этот Хайку.
тогда и линукс тоже не нужен. ведь в виндах побольше прог. там есть даже фотожоп. на маках был изначально. и с дровами там получше:P (хотя...с чем-то похуже).
> Haiku не нужен. Его его пять лет надо пилить до состояния, в котором линукс находиться сегодня, и лет 20 до состояния десктопа.
ИМХО, меньше. Скачал свежий raw image haiku-alpha.img 100 Мб, залил на флешку, посмотрел. Не подгрузились видеодрова (GF 7900GT) -- монитор out of sync , поэтому пришлось жать пробел и грузиться в VESA. Работает, не так уж и медленно. Файрфокс 2, баш, wget, gcc/perl/python/jam/vim вполне себе работают. Десктоп вполне себе живой, можно вступать&компелировать. Приложения из кнопки "пуск" с листиком некоторые валятся, да и в целом довольно унылые. Но можно накачать с BeBits.
В целом состояние довольно приемлемое, ещё бы допилить видеодрова, допортировать библиотеки и приложения на их основе, и можно жить. Файрфокс с емаксом и вимом вполне себе работает, музыка играется, фильмы играются. ЧДЯНТ?
насколько мне помнится в мак ос икс так же. есть основа. поэтому и проверяется версия ОС. >То есть ты не знаешь? И как я могу померять, если официальных релизов не было?
ну так я не могу. пока видел только в ВМ - шустро. >изобретение хайковцами си++
не изобрели, а взяли за основной ЯП. паскаль или , например, джава, больше бы подошли? >Ну, если одного ядра не хватает для рисования окошек, то такое мне точно не понравится.
не одного, а многопоточно. масштабируемость - будет больше прог, будет лучше распараллеливаться без долгих блокировок и прочего. в идеале, конечно:)
> Ну, если одного ядра не хватает для рисования окошек, то такое мне точно не понравится.
дело не в том, хватает/не хватает, а в другом подходе. Ядро в гайке реентерантное многопоточное, системные сервисы вроде gui, драйверов, библиотек (Appication Kit, Media Kit) написаны с учётом этой многопоточности. Поэтому сервисы могут выполняться на разных ядрах, получаем автоматически "всеобъемлющую многопоточность" (pervasive multithreading), потому что API на это расчитан. Уже на уровне ядра, системы и библиотек.