BOOTBOOT: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content added Content deleted
m (more categories) |
m (added more kernel languages) |
||
Line 32: | Line 32: | ||
== Your Kernel == |
== 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 |
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 in [[C]], [[Pascal]], [[Rust]] and [[Go]]. |
||
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. |
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 61: | Line 61: | ||
*[https://gitlab.com/bztsrc/bootboot Source on Gitlab] the repository |
*[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/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 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/mykernel-rust Example Hello World Kernel] in [[Rust]] |
||
*[https://gitlab.com/bztsrc/bootboot/tree/master/mykernel-pas Example Hello World Kernel] in [[Pascal]] |
|||
*[https://gitlab.com/bztsrc/bootboot/tree/master/mykernel-go Example Hello World Kernel] in [[Go]] |
|||
*[https://gitlab.com/bztsrc/bootboot/tree/master/mkbootimg mkbootimg] simple to use, dependency-free [[Bootable_Disk|bootable disk]] creator |
*[https://gitlab.com/bztsrc/bootboot/tree/master/mkbootimg mkbootimg] simple to use, dependency-free [[Bootable_Disk|bootable disk]] creator |
||