Skip to content

Multiboot (0.6.96) image example that enters long mode

Notifications You must be signed in to change notification settings

krinkinmu/64bit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Initially it was just an example how to enter long mode from multiboot
compatible bootloader, but it evolved in some kind of educational OS.

Current status:
  - we can enter long mode (obviously)
  - we have functinoal page allocator
  - we have some kind of slab allocator
  - we have kernel threads and basic locking primitives (spinlocks that in fact
      are just cli and sti pair, mutexes and conditional variables)
  - we have rather primitive vfs
  - we have filesystem in ram
  - we can populate ram filesystem from cpio initrd image (so we have initramfs)

There are still much more tasks to do:
  - process memory management; so far we have only kernelspace, i. e. all
    threads share same address space, to support userspace we need isolated
    address spaces and advanced memory management (demand paging, COW and so on)
  - setup syscall interface, prepare interrupt handlers to work with userspace
    (and this should be fairly simple task to do on amd64 cpus)
  - exec* syscalls (parse executable, setup memory map, load and run executable
    in userspace)
  - disk based filesystem
  - signals support

All kind of contribution are welcome, if you want to contribute but don't
know where to start contact me and we will find simple task for you.

About

Multiboot (0.6.96) image example that enters long mode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published