-
Notifications
You must be signed in to change notification settings - Fork 0
krinkinmu/64bit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published