64-bit Haiku and OpenJDK port are just around the corner

Alex Smith , a student at Haiku GSoC 2012, reports that he has made significant progress in porting the Haiku kernel to the x86_64 platform. All kernel functionality, with the exception of the debugger, is already available; he also ported some drivers, including PCI, disk drivers, BFS and PS / 2 input. For most drivers, porting was to fix compiler errors. Others had problems with 64-bit capacity, which made porting them more problematic. For example, the USB stack will require a lot more work, because now it uses 32-bit addr_t everywhere. Alex also achieved some success in porting user space libraries. Now ported are libroot, libbe, bash and most command line utilities. The console usually runs the interactive bash shell, which is mainly used for debugging if app_server crashes.

Haiku x64 with a Bash shell in a virtual machine
Haiku x64 with app_server in a virtual machine
Haiku x64 desktop (Tracker + Deskbar) in a virtual machine

Now Alex intends to make app_server work in 64-bit Haiku. The first steps in this direction have already been taken, the VESA graphics driver has been ported. The driver works in such a way that it makes calls in the BIOS, which runs in real 16-bit mode. On the x86 platform, these calls take place in processor mode called virtual 8086, which allows 16-bit code to work in 32-bit mode. However, this simply does not exist in 64-bit mode, which means that it will not work with BIOS calls. The solution is to use the x86emu library from the X.org package, which emulates the real mode of x86 processors to run the BIOS code. This method is used in X to solve exactly the same problem with x86_64. Alex turned the library into a new kernel module, and then changed the VESA driver to use virtual 8086 mode.

After app_server has been successfully ported to the x86_64 platform, all that remains is to port the applications and the remaining drivers. Alex has a rather large list of unsolved problems that he is going to cope with before the end of the Summer Coding. Judging by the already completed porting phase, we can expect a stable working 64-bit Haiku in the very near future.

Meanwhile, the progress in porting to Haiku a very coveted and long-awaited OpenJava is reported by a developer named Hamish :
Со времени моего последнего блогпоста, я в основном завершил работу над портом AWT/Java2D на Haiku. Требуется еще немало времени уделить тестированию, но порт уже достаточно стабилен для того, чтобы запускать множество Swing–приложений без каких–либо изменений, настроек или костылей.

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

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

Haiku SwingSet and JEdit Java applications
ThinkFree Office office suite in Haiku
View screenshots of Haiku Java applications such as ThinkFree Office, Opera Mini, Arduino, NetBeans, Pixelitor, FidocadJ, Jajuk Music Manager, Makagiga, Memoranda and other can be here and here .

Dear readers, before making complaints about missing components, insufficient hardware support, lack of programs, and the general "dampness" of the operating system, remember that Haiku is designed and developed by a very small group of programmers who are dedicated to recreating one of the most promising operating systems in open source systems that appeared at the turn of the century. If you are interested in this project, then the Haiku team will be glad of any help and your participation in improving the system.