Skip to content

TechEverythingTikTok/KernelTemplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a basic Multiboot2-compliant bootable kernel (32-bit mode)

It's not even close to being a complete OS; you create your own OS from here. This is just a starter template to save you some time and get you going. I strongly recommend reading the Multiboot2 spec to understand what you are doing.

multiboot.asm

  • Multiboot2 compliant header, 8 byte aligned, contains:
  • Magic Number
  • Protected Mode Code
  • Header Length
  • Checksum
  • Tags

boot.asm

  • Sets up the stack, pushes the Multiboot2 values to the stack, and calls kmain
  • Halts the CPU if control is returned

panic.h / panic.c

  • Responsible for panic handling. Manually called for now. Just disables interrupts and halts

initalltags.h / initalltags.c

  • Responsible for tag initialization and accessing later when needed

kernel.c

  • Responsible for being called, getting arguments, handling initializer function calls, and more later

grub.cfg

  • Configuration for GRUB. You can tweak some values here. Not much flexibility

linker.ld

  • Script for the ld command to handle proper linking between files

Makefile

  • Convenience script. I strongly recommend you use Makefile / CMake during your development process of this OS or any of your projects

Required tools:

  • make
  • gcc
  • ld (comes with gcc)
  • nasm
  • grub

I recommend you have an emulator like qemu and run this with qemu-system-i386

About

Free Kernel template + Readme for paid kernel template

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors