Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emaadmanzoor/cse506
CockroachOS: A resilient OS from scratch
https://github.com/emaadmanzoor/cse506
Last synced: about 1 month ago
JSON representation
CockroachOS: A resilient OS from scratch
- Host: GitHub
- URL: https://github.com/emaadmanzoor/cse506
- Owner: emaadmanzoor
- License: other
- Created: 2015-09-05T20:22:20.000Z (over 9 years ago)
- Default Branch: w2
- Last Pushed: 2015-12-05T20:31:40.000Z (about 9 years ago)
- Last Synced: 2024-04-16T01:44:31.120Z (8 months ago)
- Language: C
- Homepage:
- Size: 340 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
------------
CockroachOS
------------*Preemptive OS, 70 points*
Team:
* Rachee Singh ([email protected])
* Emaad Ahmed Manzoor ([email protected])--------
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 `
* Sleep for `n` seconds with `sleep `
* 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 `
* Clear the screen with `clear`
* The terminal auto-scrolls!----------------
Acknowledgements
----------------* The mechanism of setting up the first process's stack was adopted from [xv6](https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf) (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.