Go to file
2018-09-18 02:11:40 +02:00
include Move most platform code away from multiboot 2018-09-18 02:11:40 +02:00
src Move most platform code away from multiboot 2018-09-18 02:11:40 +02:00
tests Remove redundant use of OBJDIR 2018-08-24 23:31:35 +02:00
tools Move most platform code away from multiboot 2018-09-18 02:11:40 +02:00
.gitignore Ignore more object files 2018-06-08 11:23:38 -04:00
COPYING Import the 2-clause BSD license 2018-03-19 01:02:43 +01:00
project.conf Build a userland version of the kernel for tests 2018-03-23 14:03:06 +01:00
README.md Add a reminder about GCC 2018-06-19 22:54:02 +02:00

DeforaOS uKernel

About uKernel

uKernel is intended to be the kernel of the DeforaOS Operating System.

This project is in a very early stage and only targets the Intel 32-bit architecture for the moment (x86). Support for the Intel 64-bit architecture is in progress (amd64).

Compiling uKernel

First, the Makefiles must be generated for the current platform. This can be performed with configure(1) from the DeforaOS configure project, found at https://www.defora.org/os/project/16/configure (or https://github.com/DeforaOS/configure). The procedure is then as follows:

$ configure

Please refer to the documentation of DeforaOS configure for further instructions.

Once this done, to build uKernel for the Intel 32-bit architecture, simply run:

$ make ARCH="i386" CC="/path/to/compiler"

To build uKernel for the Intel 64-bit architecture, this would be:

$ make ARCH="amd64" CC="/path/to/compiler"

The "CC" parameter is only required if a compiler other than the default is necessary. When using GCC, it is normally recommended to use a compiler specifically targeted for this purpose.

The resulting kernel is located in src/kernel/uKernel.bin. On the i386 and amd64 platforms, it produces a multiboot-compliant kernel file.

Testing uKernel

To test uKernel for the Intel 32-bit platform:

$ qemu-system-i386 -kernel src/kernel/uKernel.bin

It is also possible to leverage the generic loader:

$ qemu-system-i386 -kernel src/loader/uLoader.bin -initrd src/kernel/uKernel.bin

On the Intel 64-bit platform, the loader is actually required:

$ qemu-system-x86_64 -kernel src/loader/uLoader.bin -initrd src/kernel/uKernel.bin