/myOs

Simple Operating system, created to understand how Os-es actually works.

Primary LanguageCMIT LicenseMIT

myOs

Simple Operating system, created for my own pleasure, just to understand how Os-es actually works.

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

27/01/2018 23:32 UPDATE

-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