BOOTBOOT: Difference between revisions

m
no edit summary
[unchecked revision][unchecked revision]
mNo edit summary
Line 31:
== Your Kernel ==
 
You can use ELF64 or PE32+ formats for your kernel. You must link it as a [[Higher Half Kernel]], and your entry point should point to [[Long Mode]] code. No real mode nor protected mode trampoline code needed at all, which simplifies your build environment significantly. Example linker script provided for both x86_64 and AArch64. There are example kernels for C and Rust.
 
BOOTBOOT passes a configuration to your kernel in a newline separated, zero-terminated UTF-8 string. Each line contains a ''key=value'' pair, where only two keys, "screen" and "kernel" are reserved. You are free to use any other keys that your kernel wishes to use.
Line 40:
 
The loader also initializes the [[Serial_Ports|serial console]] for you with 115200 baud, 8 data bits, no parity and 1 stop bit. Your kernel can send debug messages from the start.
 
== How to Install ==
 
You can install BOOTBOOT yourself using following the [[Bootable_Disk|bootable disk]] tutorial and using one of the provided mkboot.c utilities. But the simplest way is to use
the multiplatform (Windows, MacOSX, Linux) disk image creator tool, [https://gitlab.com/bztsrc/bootboot/tree/master/mkbootimg mkbootimg] which is very similar to [[GRUB|grub-mkrescue]].
 
For input, you provide the contents of your initrd in a directory, and a JSON configuration describing what disk image you would like. The rest is taken care for you.
 
== There's more... ==
Line 52 ⟶ 59:
== External Links ==
*[https://gitlab.com/bztsrc/bootboot Source on Gitlab] the repository
*[https://gitlab.com/bztsrc/bootboot/raw/master/bootboot_spec_1st_ed.pdf BOOTBOOT Specification] and user's manual in PDF format
*[https://gitlab.com/bztsrc/bootboot/tree/master/mykernel Example Hello World Kernel] in C with Makefile and minimal linker script.
*[https://gitlab.com/bztsrc/bootboot/tree/master/mykernel-rust Example Hello World Kernel] in Rust
*[https://gitlab.com/bztsrc/bootboot/tree/master/mkbootimg mkbootimg] simple to use, dependency-free [[Bootable_Disk|bootable disk]] creator
 
[[Category:Bootloaders]]
Anonymous user