/*** README FOR CSE 506 PROJECT - PREEMPTIVE OS ***/
********************* BLEH OS *************************
-
BLEH is a basic preemptive multitasking Operating System.
-
Supports Terminal Handling, VFS access and 13 different syscalls, brackets indicating syscall numbers, namely read(0), write(1), fork(2), execve(3), wait(4), exit(5), open(6), close(7), getdents(8), getprocs64(9), mmap(10), sleep(11), wait(12), munmap(13).
-
Syscalls use SWAPGS and SYSCALL instruction, instead of INT x80
-
Terminal supports Backspaces (please use Ctrl + H to perform a backspace, not the normal backspace key press)
-
Page Fault handlers are performing on-demand paging - implemented 3 different page fault handlers dealing with each of File-backed page faults, Anonymous VMA based page faults and Copy-On-Write page faults.
-
Supports - ls, cat, echo, sleep, kill, ps.
-
Since there is no support for cd, ls will display files from the current working directory which is the root directory always.
-
sleep will perform timeouts for values expressed in seconds
-
ps, will display only currently active processes, and the zombie ones.
-
Future plans include -- supporting on-disk RW file system and handling signals, along with syscall support for important binaries like cd.