Simple Operating system, created for my own pleasure, just to understand how Os-es actually works.
- OSDev. Base for my work.
- Bran's Kernel Development. Additional information
- Extended.
- Also other priceless knowledge from ieeexplore and Google
Filename | Description |
---|---|
boot.s | This file sets many things like grub Multiboot Header, implements stack for x86, sets entrypoint of kernel, loads kernel, etc. In near future I am planning to implement stuff like Interrupts Paging Fully Initialize CPU libc floating point instructions security safeguards debug [alredy implemented debug section in terminal] GDT runtime support for Cxx And so on. Gcc Call: i686-elf-as boot.s -o boot.o |
kernel.c | will include many base functions and drivers needed for system to work properly. Freestanding gcc call: i686-elf-gcc -c kernel.c -o kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra I am using freedstanding cross-compiler with libgcc included |
linker.ld | For gcc cross-compiler to link boot.o, and kernel.o together. It produces kernel.bin. ELF look-alike Freestanding gcc call: i686-elf-gcc -T linker.ld -o myos.bin -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc |
-Now code is divided into several files. (it is quite messy, but I will clean this up to the next update )
-Terminal is almost finished
---I added debug and log section - i will use it in future
---also made some useful functions (will describe it later)
-Now is time to implement GDT and IDT