Building and Using the Fiasco µ-Kernel
System RequirementsTo compile Fiasco, you need a recent version of:
- GNU C & C++ compiler
- GNU Binutils
- GNU Make
The steps nessecary to build a Fiasco kernel are as follows:
Create build directory
somedir$ cd src/kernel/fiasco
somedir/src/kernel/fiasco$ make BUILDDIR=mybuild
makestep will generate a build directory called
Got the build directory
somedir/src/kernel/fiasco$ cd mybuild
Configure kernel build
somedir/src/kernel/fiasco/mybuild$ make config
Will launch the configuration menu. This is the time to configure your kernel. The default config will build a uniprocessor IA32 kernel with debugging features enabled. If you're happy with this step you may skip it.
makecall will build the kernel. Add
-jXas you like. After a successful build the kernel binary will be called
Building on FreeBSDFor building on FreeBSD, install from ports collection (tried with 8.2, Feb '11):
gmakeinstead of simply make. More recent
binutilsfrom the ports collection are required for building.
To boot and run Fiasco you also need other programs, at least
moe, and minimum one application.
Those programs are available in the L4Re repository and are built there. They already have been downloaded in the download step before.
To test your Fiasco.OC build we recommend to use QEMU. There are several options for booting, one is to generate a bootable ISO image. For that, build L4Re and launch in the build directory of your L4Re tree:
You will then find a file hello.iso in the images directory. Alternatively you can also use 'make grub1iso E=hello MODULE_SEARCH_PATH=/path/to/fiasco-build-dir' provided you have a stage2_eltorito file available on your system.
When booted, you should see the hello word server repeatedly printing "Hello World!".
Another method for running Fiasco is using Fiasco-UX.
Fiasco comes with a feature rich built-in low-level debugger that it both suitable for analyzing in-kernel situations as well as mastering complicated user-level issues.
The kernel debugger is entered with
ESC on the serial console.
g' to exit the kernel debugger and continue.