

Amoeba (operating system) - mcartyem
http://en.wikipedia.org/wiki/Amoeba_(operating_system)

======
jspiros
Tanenbaum 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...](http://www.amazon.com/Distributed-Operating-Systems-Andrew-
Tanenbaum/dp/0132199084)

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

[2] <https://en.wikipedia.org/wiki/Gustafson%27s_Law>

~~~
mcartyem
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>

------
DennisP
> The Python programming language was originally developed for this platform

That just struck me as a really nifty bit of trivia.

~~~
jacques_chester
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

~~~
malandrew
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.

~~~
jacques_chester
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.

~~~
jff
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.

------
pjscott
There's only so much parallelism you can exploit, especially with network lags
adding overhead.

<http://en.wikipedia.org/wiki/Amdahl%27s_law>

~~~
zaptheimpaler
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.

~~~
jff
I'm sure the supercomputing community would love to hear how communication
costs and Amdahl's law are pretty trivial.

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

~~~
dfc
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*>

~~~
jacques_chester
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.

------
klrr
This seems very similar to plan9 in the goal that a network can be managed as
a single system.

~~~
mcartyem
Yes!

