MCPcopy Index your code
hub / github.com/Supercip971/WingOS

github.com/Supercip971/WingOS @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
2,800 symbols 6,623 edges 548 files 137 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Banner

Wingos

WingOS is a small hobbyist 64 bit kernel made with <3 in C++

latest milestone - blog - old branch

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. - Wingos has a working progress UI library inspired by flutter with a rasterizer and a widget system.

Wingos-ui

A demonstration of the UI library of wingos, layout, and widgets. Here displaying an image, and a button with a counter reacting to it.

Wingos-doom

Wingos screenshot running DOOM in userspace

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

  • The project uses the cutekit build system.
  • The project uses limine as a bootloader.

Roadmap (OS)

  • [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 (Virtual and Physical Memory, IPC, Task...)
  • [x] Services and IPC (inter process communication)
  • [x] PCI support (scan, devices, ...) (in userspace)
  • [x] Hello File! (NVME + GPT + Ext4 + VFS)
  • [x] Blocking IPC
  • [x] Graphics support (VESA, framebuffer, ...)
  • [x] Input support (keyboard, mouse, ...)
    • [ ] Interrupt handling in userspace
  • [x] Port DOOM
  • [ ] Signals
  • [ ] Create a shell
  • [ ] Above and beyond

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 - git, wget, gptfdisk, mkfs.fat (dosfstools), qemu

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 badge

WingOS is made by Humans, and not by a generative AI.

More information can be linked to the by-human repository.

Core symbols most depended-on inside this repo

unwrap
called by 191
src/libcore/result.hpp
is_error
called by 190
src/libcore/result.hpp
len
called by 167
src/math/range.hpp
stbi__get8
called by 144
src/external/stb/stb_image.hpp
stbi__err
called by 131
src/external/stb/stb_image.cpp
error
called by 108
src/libcore/result.hpp
ttUSHORT
called by 102
src/external/stb/stb_truetype.hpp
push
called by 100
src/libcore/ds/vec.hpp

Shape

Function 1,137
Method 1,119
Class 473
Enum 70
Route 1

Languages

C++85%
C12%
Python3%

Modules by API surface

src/external/stb/stb_image.hpp217 symbols
src/external/stb/stb_truetype.hpp151 symbols
src/kernel/loader/limine/limine.hpp67 symbols
src/wingos-headers/syscalls.h58 symbols
src/hw/mem/addr_space.hpp39 symbols
src/dev/pci/pci.hpp32 symbols
src/ui/widgets/widget.hpp31 symbols
src/kernel/generic/ubsan.cpp31 symbols
src/kernel/generic/scheduler.cpp30 symbols
src/kernel/generic/space.hpp28 symbols
meta/scheduler4.py28 symbols
meta/scheduler5.py25 symbols

For agents

$ claude mcp add WingOS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact