• Stars
    star
    115
  • Rank 298,874 (Top 7 %)
  • Language
    C
  • License
    MIT License
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

EOS is an educational operating system for x86 platform

EOS (Experimental Operating System)

EOS is an educational operating system for x86 platform

Screenshot

Current status

  • 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

TODO

  • User-mode and multitasking
  • Synchronization (mutex, spinlock)
  • FAT32 driver
  • HDD driver
  • PCI driver
  • ACPI driver
  • etc.

Building and debugging

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

Thanks to

  • 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.