- a simple shell.
- filesystem NeFS made from stratch.
- busybox-like command line utils.
- vi as the text editor.
- fork() copy-on-write.
- ELF dynamic linking like a DLL.
- Simple C standard library.
- I/O multiplex by ionotify(), a subset of poll() from stratch.
- optional graphical user interface
(toggle by
VIDEO=1
in Makefile). - simple window manager based on System V IPC.
- simple IDL langurage generating IPC code.
- Arch Linux (x86_64)
- gcc 9.1.0
- nasm 2.14.02
- binutils 2.32 (for ld, strip, objcopy)
- coreutils 8.31 (for cat, dd, etc.)
- make 4.2.1 (for Makefile)
- qemu-system-i386 4.1.0 (for simulation)
- bochs 2.6.9 (for bximage)
- python 3.8.0 (for tools/idl.py)
- gdb 8.3.1 (for debugging)
- tigervnc 1.13.1 (for viewing)
make all
will create build/boot.img
.
make run
will run our OS in qemu.
vncviewer :5900
to view the console.
try typing this in our console:
vi /usr/src/snake.c
make clean
make run VIDEO=1
will run our OS in graphics mode (work in progress).
vncviewer :5900
to view the graphics.
try typing this in the serial terminal:
bkg xinitd
xtest
Please contact me at [email protected].