k is a kind of from-scratch project. There are two different things to do in k. You first have to implement the syscalls needed by the rom to work correctly. Therefore, you must strictly follow their interface. You will also have to parse the filesystem contained in the rom in order to load an ELF binary: the game. The different parts are usually linked together, do them in order.
This project is designed for EPITA students. Therefore, you must not release your source code, and must be very careful about its protection. Any leak would mean the end of the project.
The purpose of this project is to teach students kernel basics on an x86 architecture, such as:
- boot sequence (GRUB, Multiboot)
- events (interrupts, exceptions, PIC)
- VGA framebuffers
- Serial communication
- keyboard, mouse, sound, serial drivers…
Qemu is used for developing and testing. An SDK is also provided to develop your own roms.