1 | | Porting [http://wiki.qemu.org/ QEMU] is a highly strategic goal towards being self-hosting. It will allow us to run most HelenOS ports in simulation inside HelenOS itself. This may depend on at least rudimentary support for graphical output in applications. |
| 1 | Port [http://wiki.qemu.org/ QEMU] emulator to HelenOS |
| 2 | |
| 3 | Details:: |
| 4 | QEMU is a machine emulator that is able to emulate environment of various |
| 5 | hardware platforms, including PC, PowerPC, ARM or SPARC.[[br]] |
| 6 | The goal of porting this emulator to HelenOS is to allow developers run |
| 7 | the emulation of HelenOS inside HelenOS. |
| 8 | It is unlikely that single person would be able to port all features of QEMU |
| 9 | to HelenOS. First of all, the scope of QEMU is really big (it offers also |
| 10 | means for virtualization) to be ported during such short period. |
| 11 | Next, HelenOS itself may not provide all the functionality needed |
| 12 | (for example, HelenOS does not provide any graphical toolkit for GUI-oriented |
| 13 | applications and working with graphical output in general is currently not |
| 14 | as comfortable as in other operating systems).[[br]] |
| 15 | Because of these limitations, the applicant shall choose a reasonable subset |
| 16 | of QEMU features (e.g. it is not necessary to support all emulated peripherals) and focus on porting these. |
| 17 | On the other hand, the solution must provide functional emulator with at least rudimentary graphical output. |
| 18 | |
| 19 | What Gains and Benefits will this bring?:: |
| 20 | The biggest benefit of this task is in the ability to run HelenOS inside |
| 21 | HelenOS, thus possibly speeding-up development process and, as a more |
| 22 | distant goal, develop HelenOS fully inside HelenOS. |
| 23 | Also, the ability of an OS to run inside itself (i. e. be self-hosting) can be seen as a proof of |
| 24 | matureness of the system. |
| 25 | |
| 26 | Difficulty:: |
| 27 | Medium to difficult. |
| 28 | |
| 29 | Required skills:: |
| 30 | A successful applicant will have good skills of programming in the C language and the ability to survive in a non-standard non-POSIX application environment. |
| 31 | Previous experience with development of machine emulator or some virtualization tool would be beneficial to the applicant. |
| 32 | |
| 33 | Possible mentors:: |
| 34 | HelenOS Core Team |
| 35 | |