A small operating system I'm currently developing
- Serial Connection
- Virtual Memory (paging, no swapping)
- Multitasking
- VGA (currently only 320x200x8)
- VGA double buffering
- Keyboard & Mouse (only PS/2, no USB)
- 3 VGA ASCII text sizes (16x16, 12x12, 8x8)
- Stack-Smashing-Protector (gcc -fstack-protector)
- Very basic exception handling with sys_excep(const char* msg);
- v0.1
- a simple x86 text-mode based editor
- requires keyboard
- supports mouse
- controlls:
- select color: ALT + (0 to 9, A to F)
- select background color: additionally hold shift
- CTRL + DEL for reboot (doesn't work on all machines)
- v0.2+
- a simple VGA-based paint program
- requires keyboard & mouse
- controlls:
- same as with v0.1 except you don't have to hold ALT
- ESC to clear screen
First you need a compiler to build the project.
Since I currently don't have a os-specific compiler you have to build it on your own.
You can find the Tools as a release.
Dependencies:
- make
- nasm
- xorriso
- and of course the gcc toolchain, which you built already
DISCLAIMER: Please be carefull you can accidently format a different drive.
DISCLAIMER: This is only tested on Linux. It may or may not work with WSL.
For burning the .iso you should write:
make burn device=/dev/(insert your drive here)
This asks you to enter you admin user/password.
If you don't trust just look at the Makefile
You can find all drives with lsblk
example: make burn device=/dev/sdc
- Add filesystem support
- Add more system calls
- Add more video modes
- Add USB support
- Implement a shell
- Implement a BASIC interpreter
- Create OS-specific compiler
- lowlevel.eu
- osdev.org
- wyoos.org (Viktor Engelmann)
- wikipedia.org