Skip to content

yashsriv/go-nachos

Repository files navigation

go-nachos

Logo

[1] Special thanks to @egonelbre for the gopher vector
[2] The Go gopher was designed by Renee French. 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.

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