| 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 | |