77 lines
2.4 KiB
Markdown
77 lines
2.4 KiB
Markdown
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, when compiling from the source code repository, make sure that the Git
|
|
submodules have been initialized and checked out as required:
|
|
|
|
$ git submodule init
|
|
$ git submodule update
|
|
|
|
Then, 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 on the Github mirror at
|
|
<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/"
|
|
|
|
(note that the trailing slash is required)
|
|
|
|
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.
|