CockroachOS: A resilient OS from scratch
C Forth Assembly C++ Makefile Objective-C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
crt
include
libc
newfs
rootfs
sys
.gitignore
DEVELOPMENT.md
LICENSE
Makefile
README.md
bochsrc.txt
cse506-pubkey.txt
linker.script

README.md


CockroachOS

Preemptive OS, 70 points

Team:


Features

Kernel

  • Round-robin preemptive scheduling
  • COW fork
  • Auto-growing stack
  • Graceful SEGV handling

Userspace

  • Available binaries: kill, sleep, ls, ps, echo, cat, infinite, tests
  • C standard library
  • Execute background processes with &
  • View running processes with ps
  • Kill a foreground running process with ^C
  • Kill a background running process with kill -9 <pid>
  • Sleep for n seconds with sleep <n>
  • Run an infinite loop with infinite (useful to test ps, kill and ^C)
  • View files in the current directory with ls, change directory with cd (you can ls, but cannot cd to /!)
  • Print a file to the screen with cat <filepath>
  • Clear the screen with clear
  • The terminal auto-scrolls!

Acknowledgements

  • The mechanism of setting up the first process's stack was adopted from xv6 (commentary on a 32-bit open-source OS).
  • User space malloc is based on the implementation in K&R's C Programming Language.
  • The interrupt handling mechanism (offloading to a generic handler) is based on the ideas from https://littleosbook.github.io/.
  • Referred standard resources have been cited inline with the code.