WingOS is a small hobbyist 64 bit kernel made with <3 in C++
The project is about creating an operating system that is easy to program for, with a simple and clean API.
- It tries to experiment with new ideas and API, ditching old and legacy concepts when possible.
- WingOS is a microkernel based operating system, currently targetting x86_64. It tries to be a capability based OS, with a focus on security and stability.
- The userspace is beginning to be fleshed out, with a VFS+ext4+nvme support.
For now the kernel is still in development, but it has a few key features:
- is 64 bit
- is SMP capable (multiple CPU support)
- has a basic scheduler with SMP support, priority, and CPU affinity support (and support cpu tree for NUMA systems)
- Nvme (NVMe) disk support (in userspace)
- Ext4 filesystem support (in userspace)
- VFS support (in userspace)
- Boot
- x86 basic support (interrupt, paging, ...)
- SMP support (apic, ...)
- Scheduler (with SMP support, priority, and cpu affinity support)
- Loading user space app
- User space (ring 3)
- Syscalls
- Spaces and handles
- Userspace objects
- Memory management (physical)
- Memory management (virtual)
- IPC endpoint
- Services and IPC (inter process communication)
- PCI support (scan, devices, ...) (in userspace)
- Hello File!
- Nvme disk support
- Partition support (GPT)
- Filesystem support (ext4)
- VFS support
- Blocking IPC
- Graphics support (VESA, framebuffer, ...)
- Input support (keyboard, mouse, ...)
- Interrupt handling in userspace
- Port DOOM
- Signals
- Create a shell
- Above and beyond
For now I don't have a complete dependency list, but you will need:
- cutekit
- Clang cross compiler for x86_64
- Everything needed to build a cross compiler
Run bash meta/build/make_cross_compiler.sh to build the Wingos specific version of gcc.
Now do ck s to start the build and run.
Do ck p to build ports (now no ports are buildable, do a git clone recursive to get all ports).

