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
- Host: GitHub
- URL: https://github.com/yashsriv/go-nachos
- Owner: yashsriv
- License: other
- Created: 2017-11-21T16:23:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-11-21T21:46:38.000Z (over 7 years ago)
- Last Synced: 2025-01-15T12:07:36.450Z (5 months ago)
- Topics: go, nachos, operating-systems
- Language: Go
- Size: 10.1 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go-nachos

[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).