An open API service indexing awesome lists of open source software.

https://github.com/yashsriv/go-nachos

Port of nachos in Go
https://github.com/yashsriv/go-nachos

go nachos operating-systems

Last synced: 4 months ago
JSON representation

Port of nachos in Go

Awesome Lists containing this project

README

        

# go-nachos

![Logo](./gopher.svg)

[1] Special thanks to [@egonelbre](https://github.com/egonelbre) for the [gopher vector](https://github.com/egonelbre/gophers)
[2] The Go gopher was designed by [Renee French](http://reneefrench.blogspot.com/).
The Gopher character design is licensed under the Creative Commons 3.0 Attributions license.
[3] Vector of the Nachos used in picture above was designed by Freepik

---

This is a complete rewrite of Nachos (Not another completely heuristical operating system) hosted
at [nachos](https://homes.cs.washington.edu/~tom/nachos/).

Golang specific code:
* Thread forking - thread forking was initially carried out via assembly code which used to save
context of current thread and switch to the other thread. I have modified it to use channels
instead where a thread only runs when its channel is active. This would also enable implementing
multi-threading if one really wants to try that on nachos.

This code is at a stage where none of the syscalls are implemented (which itself is a good exercise for
understanding the nachos code).