64-битная Haiku и порт OpenJDK уже не за горами

Алекс Смит, студент Haiku GSoC 2012, сообщает, что добился существенного прогресса в работе над портированием ядра Haiku на платформу x86_64. Вся функциональность ядра, за исключением дебаггера, уже доступна, также он портировал некоторые драйверы, включая PCI, драйверы дисков, BFS и PS/2 ввод. Для большинства драйверов портирование заключалось в исправлении ошибок компилятора. С другими были проблемы, связанные с 64-битной разрядностью, что сделало их портирование более проблематичным. Например, стек USB потребует гораздо больше работы, поскольку сейчас везде использует 32-битный addr_t. Также Алекс добился некоторого успеха в портировании библиотек пользовательского пространства. Сейчас портированы libroot, libbe, bash и большинство утилит командной строки. В консоли, как правило, запущена интерактивная оболочка bash, которая в основном используется для отладки, если падает app_server.


Haiku x64 с оболочкой Bash в виртуальной машине


Haiku x64 с app_server в виртуальной машине


Рабочий стол Haiku x64 (Tracker + Deskbar) в виртуальной машине

Теперь Алекс намеревается заставить работать app_server в 64-битной Haiku. Первые шаги на этом пути уже сделаны, портирован графический драйвер VESA. Драйвер работает так, что совершает вызовы в BIOS, который запущен в реальном 16-битном режиме. На платформе x86 эти вызовы происходят в процессорном режиме, который называется «virtual 8086», позволяющем 16-битному коду работать в 32-битном режиме. Однако, подобного просто не существует в 64-битном режиме, это значит, что работать с вызовами BIOS не получится. Решение заключается в использовании библиотеки x86emu из пакета X.org, эмулирующей реальный режим x86-процессоров для запуска BIOS-кода. Этот способ используется в X для решения точно такой же проблемы с x86_64. Алекс превратил библиотеку в новый модуль ядра, а затем изменил драйвер VESA так, чтобы тот использовал режим виртуального 8086.

После того, как app_server будет успешно перенесен на платформу x86_64, останется только портировать приложения и оставшиеся драйверы. У Алекса достаточно большой список нерешенных задач, с которыми он собирается справляться до конца «Лета Кодинга». Судя по уже пройденному этапу портирования, можно ожидать стабильно работающей 64-разрядной Haiku в самом ближайшем будущем.

Тем временем, о продвижении в переносе на Haiku очень желанной и долгожданной OpenJava сообщает разработчик под ником Hamish:
Со времени моего последнего блогпоста, я в основном завершил работу над портом AWT/Java2D на Haiku. Требуется еще немало времени уделить тестированию, но порт уже достаточно стабилен для того, чтобы запускать множество Swing–приложений без каких–либо изменений, настроек или костылей.

Поддержка drag'n'drop в AWT все еще отсутствует, поскольку в Haiku недостает кое–какой необходимой функциональности для того, чтобы реализовать перетаскивание мышью. Обсуждения по поводу создания более полноценного API для функции «переноса мышью» в данный момент идут в списке рассылки Haiku GSoC. В течение недели или двух я буду продолжать полировку AWT/Java2D порта с рассчетом на улучшение производительности и уничтожение оставшихся багов. Когда основные проблемы будут устранены, я собираюсь выложить бинарники для всех, кому будет интересно попробовать новый Java–порт собственноручно.

На половине семестра я начну работу над портом JSound, который обеспечит поддержку звука в приложениях, а также MIDI.

image
Java-приложения SwingSet и JEdit в Haiku

image
Офисный пакет ThinkFree Office в Haiku

Посмотреть на скриншоты ставших доступными в Haiku Java-приложений, таких как ThinkFree Office, Opera Mini, Arduino, NetBeans, Pixelitor, FidocadJ, Jajuk Music Manager, Makagiga, Memoranda и других можно здесь и здесь.

Дорогие читатели, прежде чем составлять жалобы на недостающие компоненты, недостаточную поддержку аппаратного обеспечения, нехватку программ и общую «сырость» операционной системы, помните, что разработкой и развитием Haiku занимается очень маленькая группа программистов, посвятивших себя воссозданию в открытых кодах одной из самых многообещающих операционных систем появившихся на рубеже веков. Если этот проект вам интересен, то команда Haiku будет рада любой помощи и вашему участию в совершенствовании системы.

Средняя зарплата в IT

120 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 9 284 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 18

    +1
    В чём ключевая идея haiku? В смысле, какие архтектурные идеи они двигают?

    Использование эмулятора костылей для подпирания конструкции — это я понял. А кроме?
      +3
      Вот в этом посте написаны основные особенности и сильные стороны haiku Рассвет Haiku OS
        +4
        Там какая-то фигня. Линукс зачем-то объявили «изначально был написан для серверов» (хотя изначально линукс был написан для AT'шки Линуса, которая есть быть десктоп насквозь). Дальше там какая-то маловнятная ерунда без объяснения сути.

        Что у них как у ОС крутого? Файловая система а-ля БД — с учётом атрибутов btrfs — не интересно, «сокрытие межпоточного взаимодействия» — не объяснено что и от кого сокрыто и т.д.

          0
          Да ничего крутого там нету, впрочем так же, как и в любой другой современной ОС для «AT'шок».
            +6
            Скажем так, когда пояилась BeOS, эта была очнь интересная ОС как для програмистов (писать программмы было не просто, а очень просто) так и зачатками поддержки мультимедии при невысоких системных ресурсах.

            На текущий момент действительно не понятно, что с haiku. По сути это система с поддержкой старых и уже некому ненужных программ, с другой интеграция opensource которая и так есть в других системах.

            Хотя с другой стороны, приятно, что кто то такие системы пытается развивать. Это на самом деле не так уж и плохо. Кстати, рекомендую для развитие посмотреть на SkyOS.
              +2
              Я знаю, что это было, сам на BeOS 5 почти год без каких либо проблем работал в свое время. Куда проще десктопного Линукса, и куда стабильнее тогдашней Винды, хотя не *nix конечно. SkyOS я тоже смотрел, вообще не впечатлило.
                +1
                Кстати, я до сих пор в восторге от реализации FAR для BeOS :)
                0
                Последний раз, когда я проверял сайт SkyOS, разработчик объявил о замораживании проекта. Впрочем, проект SkyOS изначально не был представлен в открытых исходниках, в отличие от Haiku.
                  0
                  Да уж, я как раз остановился когда он хотел ядро linux использовать.
              0
              > Что у них как у ОС крутого? Файловая система а-ля БД — с учётом атрибутов btrfs — не интересно,
              > «сокрытие межпоточного взаимодействия» — не объяснено что и от кого сокрыто и т.д.

              Почему неинтересно? Интересны динозавры типа ext3?
            +5
            Если не делать пассы руками и не повторять старинные беосные мантры про «параллельную многопроцессорность / многоядерность на системном уровне, проникающую многопоточность, эффективную многозадачность и управление памятью, а также файловую систему по принципу базы данных», то достаточно просто сказать, что это в первую очередь десктопная ОС, построенная на довольно свежих основах, не имеющая отношения ни к наследию Unix, ни к архитектуре NT. Ядром служит переработанная ветка NewOS от бывшего разработчика BeOS Трэвиса Гейсельбрехта. Вас не должны смущать простенькие серые окошки с желтой «вкладкой», графический движок Haiku основан на библиотеке отображения векторной графики Anti Grain Geometry. Команда кодеров у Haiku маленькая, а работы до завершения Release 1 еще много, потому рисовать красивые окна с тенями на манер «иконы стиля» OS X сейчас просто некому и некогда. Опытные люди говорят, что BeOS API немного напоминает Java и имеет общие места с Qt.

            У Haiku только один основной API, одна графическая подсистема, один Media Kit и т.д. Все компоненты системы построены на основе одной тоталитарной идеологии. С одной стороны это ограничивает свободу иметь выбор между множеством рабочих сред вроде Gnome, KDE, XFCE, Enlightenment и др., но с другой — не имеет таких проблем с согласованностью различных компонентов системы. Тут, вероятно, дает о себе знать легкое родство с Mac OS (и это неудивительно, т.к. многие основные работники Be Inc. начиная с Жана Луи Гассе пришли из Apple). Коммерческая OS X с закрытыми исходниками большей части ОС также разрабатывается «под одной крышей» и не терпит «инакомыслия» в конструировании тех или иных частей системы. В свою очередь Haiku — это осовремененный и улучшенный клон BeOS, только теперь банановый с открытым исходным кодом.

            Возможно вам будет интересно прочитать часть 3 и часть 4 цикла статей Максима Сохацкого «Geek OS», а также его публикацию "20 лет спустя" и обзор Haiku Alpha 2.

            В контексте новости я лично просто рад тому, что скоро Гайка сможет использовать все восемь гигов оперативы в моем компьютере. Это будет весьма кстати, ведь портированные программы в отличие от родных беосных более требовательны к ресурсам компьютера, в частности могут занимать больше памяти. Старый офисный пакет GoBe Productive, который работал на BeOS R5 в 2002-м году, занимал на диске меньше 10 мегабайт и был крайне нетребователен к ОЗУ. Однако, для Haiku сегодня единственный способ получить хоть какой-нибудь свежий софт — портировать его.

            Надеюсь что-нибудь из этого даст ответы на ваши вопросы.
              0
              Да тут все понятно, я сам слежу за хайку, но на текущий момент она для общества в массе своей не пригодна.
              Вот если бы найти нишу, или ниша бы нашла ее — было бы интереснее (я о спонсирование)
                +2
                Еще многое нужно допилить. Ведутся работы над менеджером пакетов (отдельная тестовая ветка Haiku вся состоит из пакетов под управлением package_fs), в результате должно получиться нечто среднее между сильными сторонами реализации из Linux-дистрибутивов и юзабилити OS X. Обновление программ тоже наконец перестанет быть проблемой, пингвин давно забыл о головных болях с тех пор как пользуется репозиториями. WiFi и Bluetooth уже есть, но еще предстоить закончить GUI апплет управления сетями. Недостаточная поддержка широкого спектра железа также является сдерживающим фактором. Все активные участники команды Haiku занимаются отловом багов и закрытием последних тикетов в багзилле, которые стоят на пути выпуска четвертой альфы и первой бета-версии, куда могут включить до того бывшие экспериментальными вещи вроде пакет-менеджера.

                Сложно судить насчет подходящей ниши. x86-версия хорошо себя чувствует на маломощных маленьких ПК, неттопах, дешевых нетбуках со слабенькими процессорами и видеочипами. Отзывчивость даже создает у некоторых пользователей впечатление, что им заменили железо на какой-нибудь четырехядерник, что напоминает мне старинную статью про BeOS под названием «Нетривиальный апгрейд». Если будут подвижки с ARM-портом Haiku (до сих пор этим занимались один или два человека), тогда может быть получится сделать планшетную версию и устанавливать ее на совсем крошечные ARM-компьютеры, а также другие встраиваемые железки. В прежние времена у BeOS уже был опыт переноса во встраиваемые системы вроде рабочих станций Edirol и самые первые ARM «тонкие» интернет-планшеты, проект назывался BeIA и ушел в забвение вместе с обанкротившейся Be Inc в 2001 году.
                  –1
                  Кстати, мысль о ARM — это хорошая мысль. Но все на текущий момент расматривают ARM исключительно как планшетники/телефоны, хотя идею можно развивать (и нужно) дальше.
                  Хорошо, что HP делает сервера на ARM (в протатипах на текущий момент), это может дать толчек и для десктопу.
                    +1
                    Хотелось бы только добавить, что помня одну из сильных сторон BeOS — многопроцессорность, я могу представить Haiku, которая будет эффективно использовать рабочие станции с многопроцессорными многоядерными конфигурациями. Да, для этого нужно, чтобы программы были многопоточными и использовали функции Haiku API, а значит переносить «однопоточный» софт из других систем не имеет в такой ситуации смысла. Когда-то давно BeOS тестировали на 16, 32, 64 и 128-процессорных конфигурациях. Лучше нее с синтетическими тестами справлялись только специально заточенные оси реального времени, но они не были готовы для домашне-офисно-студийной деятельности, которую должна была обеспечивать Media OS. Если бы тогда десять лет назад они в Be Inc. открыли исходники, то сейчас вместо маленькой Haiku, делающей свои первые шаги, мы имели бы отполированную сообществом OpenBeOS. Увы, увы…
            0
            Кроме 64 битной версии Haiku были некоторые попытки портировать систему на ARM и на AVR. Если порт на ARM так и не был завешен и сейчас все работы остановлены, то с AVR был определенный прогресс совсем недавно haikuforum.ru/viewtopic.php?id=181

            Сама легкость портирования внушает веру в то, что у системы будет будущее.
              0
              BeOS за весь ее срок жизни успели портировать с AT&T Hobbit на PowerPC, с PowerPC на x86 и наконец с x86 на ARM (под самый конец в 2001 году). Неплохая история переносимости, однако. ARM-порт Haiku заглох скорее всего потому, что все заняты главной x86 веткой. Похоже, что заниматься переносом Haiku на ARM сейчас практически некому.
              0
              Я в первый раз слышу про порт BeOS на ARM. Где можно почитать подробнее?

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое