Using Fiasco-UX
Prerequisites
Put the following binaries into the same directory. Making symbolic links
from their location to the directory should suffice if you don't want to
copy them.
fiasco | Fiasco-UX µ-kernel binary |
irq0 | Timer interrupt provider |
sigma0 | Root Pager |
roottask | Root Task |
ux_con | Fiasco-UX framebuffer console (optional) |
Running
Fiasco-UX can be started just like any other Linux program from a shell.
For example to see a list of possible command line options, type:
./fiasco --help
The following list explains the most important command line options in detail.
-l module |
Load an executable module, such as an L4 program. You need not load
sigma0 and roottask this way - they are always loaded automatically.
To pass command line options to modules put the module name and the
command line in quotes. |
-d module |
Pass a data module to an executable module. The specified data module
will be passed to the last executable module preceding this option.
Fiasco-UX will automatically modify the command-line of roottask such
that roottask knows which modules belong to each other. |
-m memsize |
Specifies how much physical memory Fiasco-UX emulates. The memory
size is in megabytes and at most 1024 MB are supported. |
-n tasknumber |
Allows the specified task number to perform native system calls and
call directly into the Linux host kernel using int 0x80. This is
useful for hybrid Linux/L4 programs. |
-G geometry |
Specifies that the framebuffer console should be started and which
resolution and color depth it should use. This requires ux_con to
be present. You need not load ux_con yourself, it will be done
automatically. |
Examples
fiasco -l hello
An easy example for starters - load the L4 hello program.
fiasco -R "roottask -symbols -lines" -l hello
This example shows how to load symbol and line information for the
kernel by invoking roottask with the respective options. Additionally the
hello program is loaded.
fiasco -G 800x600@16 -m 128 -l names -l log -l dm_phys -l l4dope-ux -l vscrtest
A more complex example: Fiasco-UX emulates 128 MB of physical memory and
starts a framebuffer console with a resolution of 800x600 pixels and 16 bit
color depth. It will also load and run the L4 programs names, log, dm_phys,
the DOpE window manager and the vscrtest application.
fiasco -G 1024x768@16 -m 256 -l names -l log -l dm_phys -l bootmod -l "vesaview video.vid -heap=0x01400000" -d video.vid
This example illustrates how command line parameters are specified for modules
by putting the module name (vesaview) and its parameters in quotes. Additionally
the data module (video.vid) is loaded - it will belong to vesaview, because that
is the executable preceding the -d directive.
Shutting down
Pressing Ctrl-C at any time will invoke the built-in kernel
debugger. To shut down Fiasco-UX and kill all L4 tasks press the caret
key ^ at the kernel debugger prompt.
|