„A lightweight unix-unlike operating system“
This project is somewhat of a coding playground for me. It doesn't have any useful functionality (yet?). Be aware that the installation on real hardware is not recommended and may break your computer.
I've stopped developing Melvix because it wasn't interesting anymore. As I've rewritten Melvix many times, the following features may not all be available in the dev
branch but scattered around all other branches and commits - sorry :P
- From scratch (no POSIX/UNIX compatibility at all)
- Multitasking
- VFS with EXT2, DEVFS and PROCFS
- Minimal GUI
- Fast boot time (< 1s)
- TCP/IP stack and rtl8139 driver
- Small size (< 100KiB)
- Sandboxed processes (paging, ring 3, SMAP/SMEP protections)
- Full UBSan support
- Compiles with
-Wall -Wextra -Werror -pedantic-errors -std=c99 -Ofast
- Installation guide
- Memory map
- Bootloader overview
- Kernel overview
- Userspace overview
- Library overview
If you decide to contribute to this project, these are some ideas that could get you started:
- Fix some
TODO
s in the code. While these are often not very well described, most of them should be self-explanatory - Fix issues posted on GitHubs issues tab
- Improve the size/speed of the system or the overall performance of libraries and functions
- Find/fix security issues and potentially write an exploit
- Add new features (whatever you like, really)
- Huge parts of the code are kind of a mess to be honest. Feel free to make the code more beautiful :)
- I'm not very good in design and frontend, so feel free to improve these kind of things too
- Write more tests for the test suite (which is extremely incomplete at the moment)
- Write/improve documentation - either in code or in the README, wiki or manuals.
Just remember to pass the test suite and follow the code formatting guidelines (.clang-format
).
- Marvin Borner - Project initiator and main contributor
- LarsVomMars - General help and fixes
Melvix is released under the MIT License and uses parts of the following 3rd party projects:
Inspiration/usage (documented in the respective files):
- OSDev wiki - Very helpful!
- James Molloy's tutorials
- virtix - tasking inspiration - MIT License
- studix - FS inspiration - MIT License
- skiftOS - Memory management inspiration - MIT License
- ToAruOS - PCI and network driver inspiration - NCSA License
Resources:
Libraries: