a little 64bit microkernel based operating system written in c++ with smp support
https://www.cyp.sh/
- C 51.5%
- C++ 45.6%
- Python 2%
- Shell 0.5%
- Assembly 0.4%
| disk | initial commit | |
| meta | feat: add shape and rasterization of line (just line not filled shapes) | |
| src | feat: add font loading and contouring | |
| .clang-format | initial commit | |
| .gdbinit | build: add .gdbinit for remote debug | |
| .gitignore | build: add a wingos specific GCC/binutils build | |
| .gitmodules | feat(port): add doom-generic | |
| compile_flags.txt | fix: fix LSP complain about type_traits file | |
| LICENSE | meta: remove unused file and update copyright 2024->2026 | |
| project.json | meta: add stb true type dependency | |
| readme.md | doc: update readme file | |
Wingos
WingOS is a small hobbyist 64 bit kernel made with <3 in C++
What the project is about
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.
Milestones
Feature list
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)
Dependencies
Roadmap (OS)
- 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 (Virtual and Physical Memory, IPC, Task...)
- Services and IPC (inter process communication)
- PCI support (scan, devices, ...) (in userspace)
- Hello File! (NVME + GPT + Ext4 + VFS)
- Blocking IPC
- Graphics support (VESA, framebuffer, ...)
- Input support (keyboard, mouse, ...)
- Interrupt handling in userspace
- Port DOOM
- Signals
- Create a shell
- Above and beyond
Roadmap (UI)
- Basic Render
- Render fill
- Render text
- Transform
- Shader
Building the project
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).
Made by human
Made by humand, not by gen AI badgeWingOS is made by Humans, and not by a generative AI.
More information can be linked to the by-human repository.