-
Notifications
You must be signed in to change notification settings - Fork 18
Home
Ultimately, SnowflakeOS is a learning project. It's about seeing how far one can go by implementing things as needed, in the way that seems most obvious at the time. It's the opposite of over-engineering. It's not about being POSIX-compatible, except for the most needed parts, those that allow porting cool software like DOOM.
It'd be awesome to have a community of contributors to this project too, like a shared gardening project of sorts. This wiki is here to guide that spirit! Check out the roadmap below for general (and non-exhaustive) pointers, the list of open issues, and the other wiki pages for contributing guidelines.
Where exactly is this project going? Everywhere, according to this list of goals the author feels would be cool to have:
- good file system support
- virtual files representing processes, maybe windows, maybe other things
- pipes of some sort
- ✓
stdout
support: reworking processes
- more drivers
- a disk driver
- an ethernet card driver, and who knows, a full ip stack
- a soundcard driver!
- a window manager in userspace
- shared memory
- resizing windows
- a fixed memory pool for clipping rects
- a more complete C library
- ✓ enough to satisfy DOOM
- ✓ a solid and complete
sprintf
family of functions
- a general purpose ui library
- text elements
- more customization options
- more userspace apps
- basic versions of the usual ones like
cat
,grep
,ps
- graphical ones
- an application launcher
- improving the existing paint clone: saving, opening, colorpicker, brushes...
- ✓ making the
calc
app actually do anything - a more proper file manager than the existing
files
app - a text editor!
- a terminal that's separate from the shell it runs
- basic versions of the usual ones like