Copyright (C) 2000-2012 |
GNU Info (multiboot.info)Example OS codeExample OS code =============== In this distribution, the example Multiboot kernel `kernel' is included. The kernel just prints out the Multiboot information structure on the screen, so you can make use of the kernel to test a Multiboot-compliant boot loader and for reference to how to implement a Multiboot kernel. The source files can be found under the directory `docs' in the GRUB distribution. The kernel `kernel' consists of only three files: `boot.S', `kernel.c' and `multiboot.h'. The assembly source `boot.S' is written in GAS (Note: GNU assembler.), and contains the Multiboot information structure to comply with the specification. When a Multiboot-compliant boot loader loads and execute it, it initialize the stack pointer and `EFLAGS', and then call the function `cmain' defined in `kernel.c'. If `cmain' returns to the callee, then it shows a message to inform the user of the halt state and stops forever until you push the reset key. The file `kernel.c' contains the function `cmain', which checks if the magic number passed by the boot loader is valid and so on, and some functions to print messages on the screen. The file `multiboot.h' defines some macros, such as the magic number for the Multiboot header, the Multiboot header structure and the Multiboot information structure. automatically generated by info2www version 1.2.2.9 |