EOS is an educational operating system for x86 platform
-
GDT and IDT setup
-
VESA framebuffer based terminal :D
-
PS/2 keyboard and mouse support
-
RAM detection and Physical Memory Manager
-
Higher Half Kernel
The kernel starts at virtual address 0xC0100000
0xC0000000-0xC0400000 and 0x00000000-0x00400000 vitual addresses are mapped to one physical range - to 0x00000000-0x00400000
-
Virtual Memory Manager
-
Entry based kernel heap manager (kmalloc/kfree/krealloc)
-
Very simple kernel command shell (KSH)
-
VFS
-
Initrd, uses TarFS
-
MENUET01 and PE executables loaders
-
System call mechanism
- User-mode and multitasking
- Synchronization (mutex, spinlock)
- FAT32 driver
- HDD driver
- PCI driver
- ACPI driver
- etc.
Go to src/kernel
- Building release version:
make build-iso
- Building and running release version:
make build-iso-run
- Building debug version:
make build-iso DEBUG=1
- Building and running debug version:
make build-iso-run DEBUG=1
- Always do following command before switching between debug and release configurations:
make clean
- Guilherme Samora (psamora)
- Nikita Ivanov, Dmitrii Kychanov, etc. from u365
- wiki.osdev.org
- Arjun Sreedharan
- Stephen Fewer (stephenfewer)
- James Molloy
- levex named user from gihtub
- reddit /r/osdev
- Stackoverflow
- etc.