Алекс Смит, студент Haiku GSoC 2012, сообщает, что добился существенного прогресса в работе над портированием ядра Haiku на платформу x86_64. Вся функциональность ядра, за исключением дебаггера, уже доступна, также он портировал некоторые драйверы, включая PCI, драйверы дисков, BFS и PS/2 ввод. Для большинства драйверов портирование заключалось в исправлении ошибок компилятора. С другими были проблемы, связанные с 64-битной разрядностью, что сделало их портирование более проблематичным. Например, стек USB потребует гораздо больше работы, поскольку сейчас везде использует 32-битный addr_t. Также Алекс добился некоторого успеха в портировании библиотек пользовательского пространства. Сейчас портированы libroot, libbe, bash и большинство утилит командной строки. В консоли, как правило, запущена интерактивная оболочка bash, которая в основном используется для отладки, если падает app_server.
Haiku x64 с оболочкой Bash в виртуальной машине
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/d22/41b/98b/d2241b98b8e6712b80f0efb4e6dfe72d.jpg)
Haiku x64 с app_server в виртуальной машине
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/42a/d37/072/42ad370724f3949aea2908ad20c8d7c7.jpg)
Рабочий стол 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:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/3be/f69/ad2/3bef69ad2b2a52f87cf93dfd581f0efb.jpg)
Java-приложения SwingSet и JEdit в Haiku
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/447/655/629/447655629e88b8b53ce5a49c91b76fdf.jpg)
Офисный пакет ThinkFree Office в Haiku
Посмотреть на скриншоты ставших доступными в Haiku Java-приложений, таких как ThinkFree Office, Opera Mini, Arduino, NetBeans, Pixelitor, FidocadJ, Jajuk Music Manager, Makagiga, Memoranda и других можно здесь и здесь.
Дорогие читатели, прежде чем составлять жалобы на недостающие компоненты, недостаточную поддержку аппаратного обеспечения, нехватку программ и общую «сырость» операционной системы, помните, что разработкой и развитием Haiku занимается очень маленькая группа программистов, посвятивших себя воссозданию в открытых кодах одной из самых многообещающих операционных систем появившихся на рубеже веков. Если этот проект вам интересен, то команда Haiku будет рада любой помощи и вашему участию в совершенствовании системы.
![](https://habrastorage.org/getpro/habr/post_images/f40/67f/e41/f4067fe411a11d6f6014346adcc1dd8b.jpg)
Haiku x64 с оболочкой Bash в виртуальной машине
![](https://habrastorage.org/getpro/habr/post_images/d22/41b/98b/d2241b98b8e6712b80f0efb4e6dfe72d.jpg)
Haiku x64 с app_server в виртуальной машине
![](https://habrastorage.org/getpro/habr/post_images/42a/d37/072/42ad370724f3949aea2908ad20c8d7c7.jpg)
Рабочий стол 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](https://habrastorage.org/getpro/habr/post_images/3be/f69/ad2/3bef69ad2b2a52f87cf93dfd581f0efb.jpg)
Java-приложения SwingSet и JEdit в Haiku
![image](https://habrastorage.org/getpro/habr/post_images/447/655/629/447655629e88b8b53ce5a49c91b76fdf.jpg)
Офисный пакет ThinkFree Office в Haiku
Посмотреть на скриншоты ставших доступными в Haiku Java-приложений, таких как ThinkFree Office, Opera Mini, Arduino, NetBeans, Pixelitor, FidocadJ, Jajuk Music Manager, Makagiga, Memoranda и других можно здесь и здесь.
Дорогие читатели, прежде чем составлять жалобы на недостающие компоненты, недостаточную поддержку аппаратного обеспечения, нехватку программ и общую «сырость» операционной системы, помните, что разработкой и развитием Haiku занимается очень маленькая группа программистов, посвятивших себя воссозданию в открытых кодах одной из самых многообещающих операционных систем появившихся на рубеже веков. Если этот проект вам интересен, то команда Haiku будет рада любой помощи и вашему участию в совершенствовании системы.