Important
This project is still under heavy development and incomplete.
Tsukuyomi is a hobby operating system from scratch made purely for educational purposes. Currently it only supports 64-bit x86 platforms.
The kernel is a monolithic kernel designed to work with the Limine boot protocol
The following things are implemented so far:
- Output and input over serial port
- Output via text written to framebuffer using PC Screen Fonts
- Basic input through PS/2 keyboard
- Physical page allocator
- Interrupts and syscall handlers
- ATA PIO driver
- Parts of a FAT16 filesystem driver
- Virtual File System to allow for device-as-files philosophy
- User-mode processes
- Logging framework
Supported syscalls:
open(path)
: open a fileread(fd, buf, count)
: read from a filewrite(fd, buf, count)
: write to a fileclose(fd)
: close a filegetdirents(fd, buf, count)
: read directory entrieswait
: wait on a child process to exitsetcwd(path)
: set current working directoryfork()
: create a duplicate of the process as childexecve(path, argv, envp)
: set process imageexit(status)
: exit process with status code
There are three basic programs available to run in user-mode:
sh
: a shell, started by default by the kernells
: list entries of current working directoryhello
: print "hello world" to the screen