Building a Kernel / Operating system from scratch.
Nigel
5051b8903c
The first stage after GRUB will be Pre-Kernel. This stage will organize the information we receive from the bootloader. (in our case that will be grub) The second stage is for now called early_main. The program will at this point already be running in virtual higher-half / higher-quarter address space. The goal of the second stage is to set up the kernel in such a way that we are ready to jump in to usermode. The third stage is for now called kernel_main. This stage will jump us into usermode and load the startup programs. - Added a GRUB entry for tests - Started writing the pre-kernel stage - Removed knowledge of multiboot from early_main - Edited the linkerscript to link variables in pre-kernel to lower address space. ( from 1MB and up) |
||
---|---|---|
docs | ||
images | ||
screenshots | ||
source | ||
.gitattributes | ||
.gitignore | ||
features.md | ||
Makefile | ||
README.md | ||
todo.md |
Writing an Operating system
As a learning experience!
Inspired by people like Linus Torvalds and Andreas Kling
Screenshot(s)
The first scrolling boot screen. 😲
W.I.P - Working on interrupt handling
Multiboot information can be read by the kernel.
Enabled paging and am getting page faults!
The goal
Writing a hobby operating system to better understand the basic building blocks of any operating system.Initially I'd like for my operating system to be able to run bash.
Operating System Technical specs/details
The operating system can print strings to the screen. The terminal/screen has scrolling so the latest messages are visible on the screen.
Planning
Docs
Intro
Manuals
Project structure
Resources:
General kernel stuff
Modern Operating Systems [book]