https://github.com/supercip971/wingos
a little 64bit microkernel based operating system written in c++ with smp support
https://github.com/supercip971/wingos
64bit cpp hobby-os kernel microkernel operating-system os osdev wingos x86-64
Last synced: 10 days ago
JSON representation
a little 64bit microkernel based operating system written in c++ with smp support
- Host: GitHub
- URL: https://github.com/supercip971/wingos
- Owner: Supercip971
- License: bsd-2-clause
- Created: 2020-08-19T14:21:47.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-10-06T06:30:10.000Z (10 days ago)
- Last Synced: 2025-10-06T08:42:00.359Z (10 days ago)
- Topics: 64bit, cpp, hobby-os, kernel, microkernel, operating-system, os, osdev, wingos, x86-64
- Language: C++
- Homepage: https://www.cyp.sh/
- Size: 25 MB
- Stars: 767
- Watchers: 19
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Wingos
WingOS is a small hobbyist 64 bit kernel made with <3 in C++
[latest milestone](https://cyp.sh/blog/wingos-milestone-1/) - [blog](https://cyp.sh/blog/) - [old branch](https://github.com/Supercip971/WingOS/tree/old)
I am currently working on this rewrite.
If you want to see the original version, you can checkout the [old branch](https://github.com/Supercip971/WingOS/tree/old). Please note that I wrote the old version when I was a beginner in C++ and OS development 3-4 years ago, and I have learned a lot since then.If you are interested in seeing much more advanced, working, and cool projects, you should visit the [brutal](https://github.com/brutal-org/brutal) project or [skift](https://github.com/skift-org/skift).
Please be aware that this rewrite is a work in progress. And due to my current schedule and my engineering school exams, I don't have much time to work on it. I'm no longer 14 years old, and I am a lot more busy now :⁽.
## What the project is about
The project is about creating a small hobbyist kernel that is simple, easy to understand, and fun to work on.
It is not meant to be a production-ready kernel, but it doesn't mean that coding should not be taken seriously.
Everything should be done with care, and the code should aim to be fast, while being simple and easy to understand.## Milestones
- [milestone 1 blog post](https://cyp.sh/blog/wingos-milestone-1/)
## Dependencies
- The project uses the [cutekit](https://github.com/cute-engineering/cutekit) build system.
- The project uses [limine](https://github.com/limine-bootloader/limine) as a bootloader.## 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)## Roadmap
- [x] Boot
- [x] x86 basic support (interrupt, paging, ...)
- [x] SMP support (apic, ...)
- [x] Scheduler (with SMP support, priority, and cpu affinity support)
- [x] Loading user space app
- [x] User space (ring 3)
- [x] Syscalls
- [x] Spaces and handles
- [x] Userspace objects
- [x] Memory management (physical)
- [x] Memory management (virtual)
- [x] IPC endpoint
- [x] Services and IPC (inter process communication)
- [x] PCI support (scan, devices, ...) (in userspace)
- [ ] Hello File!
- [ ] Nvme disk support
- [ ] Partition support (GPT)
- [ ] Filesystem support (ext4)
- [ ] VFS support
- [ ] Graphics support (VESA, framebuffer, ...)
- [ ] Input support (keyboard, mouse, ...)
- [ ] Port DOOM
- [ ] Implement blocking IPC
- [ ] Create a shell
- [ ] Above and beyond