Go to file
2019-04-28 03:35:09 +02:00
doc Make the shell session more realistic 2019-04-28 03:33:57 +02:00
include Define some ELF flags 2019-04-28 02:58:09 +02:00
src Be specific about ELF in error messages 2019-04-28 03:08:28 +02:00
tests Update the copyright notice 2019-03-27 03:56:58 +01:00
tools Set argv[0] when loading with GRUB 2019-04-28 03:35:09 +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 Document how to build a cross-compiler 2019-03-27 01:49:52 +01:00
README.md Also list xorriso as a dependency for ISO images 2019-03-28 00:34:46 +01: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.

Note that it is also possible to build uKernel outside of the source tree, by using the "OBJDIR" variable as follows:

$ make ARCH="i386" OBJDIR="$PWD/obj-i386"

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

Generating ISO images

The build system will automatically try to create a bootable ISO image in src/DeforaOS.iso on supported platforms.

On Intel-based platforms (i386, amd64) this currently requires GNU GRUB and the corresponding dependencies (eg xorriso) to be installed.