/** \page l4re_getting_started Getting Started Here you can find the first steps to boot a very simple setup. The setup consists of the following components: \li Fiasco.OC --- Microkernel \li Sigma0 --- Root Pager \li Moe --- Root Task \li Ned --- Init Process \li hello --- Hello World Application The guide assumes that you already compiled the base components and describes how to generate an ISO image, with GRUB 1 or GRUB 2 as a boot loader, that can for example be booted within QEMU. First you need a \c modules.list file that contains an entry for the scenario. \code modaddr 0x002000000 entry hello kernel fiasco -serial_esc roottask moe rom/hello.cfg module l4re module ned module hello.cfg module hello \endcode This file describes all the binaries and scripts to put into the ISO image, and also describes the GRUB \c menu.lst contents. What you need to do is to set the \c make variable \c MODULE_SEARCH_PATH to contain the path to your Fiasco.OC build directory and the directory containing your \c hello.cfg script. The \c hello.cfg script should look like the following. A ready to use version can be found in l4/conf/examples. \code require("L4"); L4.default_loader:start({}, "rom/hello"); \endcode The first line of this script ensures that the \c L4 package is available for the script. The second line uses the default loader object defined in that package and starts the binary \c rom/hello. \note All modules defined in \c modules.list are available as data spaces (L4Re::Dataspace) and registered in a name space (L4Re::Namespace). This name space is in turn available as 'rom' to the init process (\ref l4re_servers_ned "Ned"). Now you can go to your L4Re build directory and run the following command. \note The example assumes that you have created the \c modules.list and \c hello.cfg files in the /tmp directory. Adapt if you created them somewhere else. \code make grub1iso E=hello MODULES_LIST=/tmp/modules.list MODULE_SEARCH_PATH=/tmp: \endcode Or as an alternative use GRUB 2: \code make grub2iso E=hello MODULES_LIST=/tmp/modules.list MODULE_SEARCH_PATH=/tmp: \endcode Now you should be able to boot the image in QEMU by running: \code qemu-system-i386 -cdrom images/hello.iso -serial stdio \endcode If you press in the terminal that shows you the serial output you enter the Fiasco.OC kernel debugger... Have fun. \subpage Customizations A basic set of bootable entries can be found in \c l4/conf/modules.list. This file is the default for any image creation as shown above. It is recommeded that local modification regarding image creation are done in \c conf/Makeconf.boot. Initially you may copy \c Makeconf.boot.example to \c Makeconf.boot. You can overwrite \c MODULES_LIST to set your own modules-list file. Set \c MODULE_SEARCH_PATH to your setup according to the examples given in the file. When configured a \c make call is reduced to: \code make grub2iso E=hello \endcode All other local configuration can be done in a \c Makeconf.local file located in the \c l4 directory. */