Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Would it be possible/efficient to write an OS in Go, and use its scheduler to schedule threads living in the implemented OS? What if you ran Go in that OS?


https://news.ycombinator.com/item?id=18171447

"The paper contributes Biscuit, a kernel written in Go that implements enough of POSIX (virtual memory, mmap, TCP/IP sockets, a logging file system, poll, etc.) to execute significant applications. Biscuit makes liberal use of Go's HLL features (closures, channels, maps, interfaces, garbage collected heap allocation), which subjectively made programming easier. The most challenging puzzle was handling the possibility of running out of kernel heap memory; Biscuit benefited from the analyzability of Go source to address this challenge."


Roughly, that was done around 1990, and called Plan 9. The cost of fork in Unix was was one of the problems that Plan 9 tried to fix. No one used it, so the developers backported as much as they could to Unix, and released it as Go.

By my count, Go is a fifth system. (CTSS, Multics, Unix, Plan 9.) It's interesting to observe how the second system effect progresses when the same team has been working on the same problem for 60 years.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: