Building a Kernel / Operating system from scratch.
Nigel
b07b4f0d38
Problem: As our kernel grows we need more complex datastructures and functions these would come from the standard C/C++ library with normal programs. The kernel is a freestanding programme and has no access to standard libraries. Solution: We build a mini version of the standard C/C++ library which will contain the datastructures and functions we want. This library can then be statically linked into our kernel binary. Making it a statically linked library also gives more structure to the project. Keeping these random functions and datastructures in the kernel just clutters the kernel source code with less relevant source code. |
||
---|---|---|
docs | ||
mlibc@aad4e7f64b | ||
screenshots | ||
scripts | ||
source | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
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!
Correctly identified our ATAPI device 🎉
Reading a file from a FAT-16 Formatted drive
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]