Skip to content

monoamine11231/Example-Kernel

Repository files navigation

peepo64

widePeepoHappy

Dependencies for MacOS

qemu-system-x86_64, objdump (llvm package or binutils), mkfs.fat (dosfstools), nasm

Tips

Use make to compile rust code + assembler bootloader + create the image + qemu run. No need for rust bootimage.

Memory used

The map of lower memory (<1MiB) should be complemented with Memory Map (x86).

Physical Address Size Description
0x500 0x200 VBR sector (Second bootloader)
0x7bff NaN Stack top
0x7c00 0x200 MBR sector (First bootloader)
0x7e00 0x04 E820 memory map entries number
0x7e04 NaN E820 memory map of upper memory (>= 1MiB)
0x70000 0x08 (1 entry) (4K align) PML4 (Temporary for switching into 64-bit mode)
0x71000 0x08 (1 entry) (4K align) PDPT (Temporary for switching into 64-bit mode)
0x72000 0x18 (3 entries) (4K align) PDT (Temporary for switching into 64-bit mode)
0x73000 0x1000 (Whole table used) PT #1 (Temporary for switching into 64-bit mode)
0x74000 0x1000 (Whole table used) PT #2 (Temporary for switching into 64-bit mode)
0x75000 0x1000 (Whole table used) PT #3 (Temporary for switching into 64-bit mode)
0x100000 0x600 First three sectors (MBR + VBR + extra) (Yes, repeated)
0x100600 NaN Kernel

Notes

The vec2 are either have f32 or usize elements. To create a vec2 that is usize: Vec2::<usize>::new()

About

Kernel written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published