Amoeba (operating system)
en.wikipedia.orgTanenbaum wrote a textbook, Distributed Operating Systems[1], which covers in some detail the design and implementation of the Amoeba system. I recommend checking it out if you're interested in these things. The detail I enjoyed the most is how the use of multiple independent hardware platforms allowed a user on the overall system to execute binaries for multiple architectures seamlessly. Not the most useful feature, but still neat in my book. I also remember reading it around the same time I was just getting started with the Python programming language unrelatedly, and was very interested to learn later that Python originated with the Ameoba project.
I enjoy all of Tanenbaum's textbooks, but their price here in the US is very high if you're just a hobbyist, or a professional for whom operating system design is a hobby interest, so you may want to get them from the library. (Or, for what it's worth, my personal copies are from India and were much cheaper.)
[1]: http://www.amazon.com/Distributed-Operating-Systems-Andrew-T...
The current title ("A way to bring back Moore's law") is somewhat misleading. You could say that Amoeba was a way to bring back Moore's law at the time, but then again, in the 1990s it wasn't exactly threatened. Nowadays the techniques used in Amoeba have spread to your "regular" Linux computing clusters. I've done some work in distributed computing and I can say that sophisticated load balancing and, to a lesser degree, process migration are known and used in the field. Lots of solutions for both for the commonly used MPI family of frameworks have been published [1].
It all comes down to Gustafson's Law [2].
[1] E.g., http://capinfo.e.ac.upc.edu/PDFs/dir25/file003041.pdf, http://www.mosix.org/pub/Process_Migration_for_OpenMPI.pdf, etc.
One challenge is to load balance programs that are not written in MPI, but instead written in your favorite language. i.e. to load balance a web app.
RAMCloud is a way to bring back Moore's law at this time:
https://ramcloud.stanford.edu/wiki/display/ramcloud/RAMCloud
> The Python programming language was originally developed for this platform
That just struck me as a really nifty bit of trivia.
Tcl was developed for another distributed OS project, Sprite.
And of course C was developed for Unix.
What is it about operating systems and programming languages? :D
Interestingly you can say the same about Rust and Servo. After all the browser is essentially becoming an operating system with an entirely different trust model.
I wonder if we can include Go here? I understand that it's a descendent of Limbo, which was developed as part of Plan 9.
Go is very similar to Limbo. Seriously, really similar, because some of the same people wrote both.
Limbo is a programming language that compiles to instructions for the Dis VM, which is what runs the Inferno operating system.
Inferno came about as a way to use some of the good ideas from Plan 9 in other devices, such as telephones and set-top boxes.
AFAIR Java wasn't really developed for any specific OS.
I thought it was developed for settop boxes - and called 'Oak' back then..
Although it is always referred to as a set top box it (*7) was more like a Tablet. You can see one here:
http://gcc.uni-paderborn.de/www/WI/WI2/wi2_lit.nsf/64ae86483...
There's only so much parallelism you can exploit, especially with network lags adding overhead.
Thats a pretty trivial bound though. It basically deals with some portion "p" of the program that can be parallelized and tells you how that would affect performance given that the rest (1-p) can't be parallelized. "p" would probably be a huge chunk of the program in most cases, say a DB lookup if that is the biggest bottleneck.
I'm sure the supercomputing community would love to hear how communication costs and Amdahl's law are pretty trivial.
My first instinct was to bust out a link to the "Network Fallacies" paper and a snarky remark, but it occurred to me that it's due to projects like Amoeba, Sprite and Plan 9 that we even really understand those fallacies.
Is this "the paper"?
http://www.rgoarchitects.com/Files/fallacies.pdf
"This whitepaper is based on a series of blog posts that first appeared in Dr. Dobb's Portal http://www.ddj.com/dept/architect*
I was thinking of the original Deutsch one; though I vaguely recollect that there was a similar list that originated as a technical report circulated within Sun.
This seems very similar to plan9 in the goal that a network can be managed as a single system.
Yes!