toy
toy copied to clipboard
Simple OS-like program for x86-64 and AArch64
Simple OS-like program for x86-64, which dreams to become a real OS.
Design vision (to be implemented):
- Single address space OS. All available external memory is mapped into it.
- Persistent applications. They not only survive reboot, but also can be transferred to another machine (with a same architecture) and resumed there.
- Virtual machine for memory protection and security.
Already implemented:
- Multiboot specification support (for GRUB2 or patched GRUB).
- Textual VGA-mode (16 colors, limited kprintf).
- CPU topology detection (sockets, cores, threads) for Intel and AMD CPUs.
- Convenient page mapping interface.
- Support of interrupts written in C.
- Simple preemptive scheduler with SMP support.
- Synchronization primitives: spinlock, mutex.
Supported compilers:
- GCC
- CLang
Build environment:
- Linux (known to work on recent Ubuntu).