What operating systems the Plan 9 Google guys are using
groups.google.com
groups.google.com
Also, of course GNU/Linux is not Unix. GNU is Not Unix! (I like GNU a lot better than Unix, personally. Much more sugary. "rm foo -rf" actually works, for example.)
Confusion can occur with some applications (possibly non-GNU ones) for which option/argument order does matter, or with those where options have different affects on later/earlier arguments depending on where they are placed.
Note that the parent didn't say the Mac gets it "wrong," just that GNU "rm foo -rf" works in the sense that it will do what he intends it to do.
The latest version can't even run on non-x86 boxes! My OS of choice runs on just about everything from an ARM-based smartphone all the way to a zSeries mainframe.
That is hardware support.
But no. My OS of choice is Ubuntu's Linux. To be honest, my choice of OS was dictated by the availability of decent package management and recent packages. This is subject to change (as I moved from Red Hat to Debian to Ubuntu).
But I won't move to a BSD until it plays well with APT.
Not saying I agree with Apple's choice, but it is indeed their choice to make, and it appears to be working out decently well for them.
Apple's choice is marketing-driven. There is no point in porting OSX for machines Apple won't make. It also saves them a lot of money. I never claimed Apple engineers don't know what they are doing. I only said that, as far as hardware support is concerned, OSX is no leader.
Neither is Windows, BTW.
plan9port http://swtch.com/plan9port or
and try to get sam running on top of your linux box.
But cool, nevertheless.
I am a bit ashamed the coolest operating systems on the market today are either Unix-derived/inspired or a lame rehash of VMS.
There is something wrong with this.
OTOH, Lisp is still going strong and regaining lots of followers. Maybe the folks at Bell Labs accidentally hit a local maximum in the OS space...
But I still think we should understand what really happened.
If someone else knows more, I would also be very interested.
As for the success of Plan 9, this quote on wikipedia sums it up -
Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets the job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough.
These are words of wisdom for anybody that doesn't understand how Windows came to be the dominant desktop OS.
- All resources in Plan 9 are accessed through the file system. Want to get a screenshot? Read from /dev/window. Want to get access a file on a machine halfway around the world? Mount it on your file system. Want to interrogate the kernel, or change things? /proc. (this last bit has been ported to Linux and other Unixes; only greybeards tend to remember the days when ps had to be setuid root)
- (almost) all resources are textual. None of this business of sending obscure bits to ioctl; if you want your connection to be a certain baud, you open the appropriate "file" and tell it so.
- Related: none of this connect, bind, nonsense. You want network sockets? Open stuff in /net.
- There is no one single "file system", unlike in Unix. When you are running in a 9term, /dev/cons is the console. When you are typing in a different 9term, it's still reading from /dev/cons but it's a different /dev/cons. It's possible for every program on the system to have a completely different view of the filesystem (although I doubt it's really sensible). Accordingly there's no superuser; there's only "permission to access X".
- Union mount points. There's no /bin, /usr/bin, $HOME/bin, etc; everything is always in /bin. The system automatically makes /bin contain the executables that are most appropriate fro your processor; rc is always /bin/rc but on one machine it's MIPS code and on another it's x86 code.
- A resulting truly distributed system. Typical use had you logging in from a network terminal (like an X terminal) and running jobs on a CPU server mostly transparently, there's disk servers you can mount, etc. I'm not 100% sure how this part works, because I've never been able to run it in the wild.
- Plan 9 was designed with the intent of GUI stuff from the get go. There's no curses stuff, no console libraries; if you want to do that stuff, you use a GUI. But these GUIs were designed by folks who were very comfortable with using a command line, and so one ends up with huge amounts of text on screen that you interact with (the history mechanism for rc actually looks at the window buffer for the terminal it is running in, looking for prompts). There's an input language for mice, that's most obvious in acme (where cut and paste are done by mouse button chords).
- As a result of this most of userland has been worked over, probably because somebody was forced to think seriously of reimplementing the Bourne shell. rc is remarkably minimal for a login shell in this day of zsh, and seems useless in an xterm; but because in a 9term you can edit previous output and previous command lines and tell the terminal not to send input at the end of a line but instead wait for you to decide you're finished it ends up being surprisingly powerful and usable. It's hard to get this in Unix because a lot of the tricks they did with it involve accessing the textual representation of the contents of the 9term and e.g. grepping over it or the like. Plan 9 from User Space does manage it and it's a very strange experience.
- Unicode throughout, which doesn't seem like such a big deal now but was pretty significant back in 1992.
- A bunch of fascinating programs written as a general solution to specific frustrations. Modern terminal replacements sometimes highlight URLs or the like; the Plan 9 plumber would do this with anything, and was consistently implemented across the system (Button 3 in recent acmes, for example, runs the plumber and only does local search if that fails to match).
Plan 9 can be very disturbing to work with at first; everything seems incredibly primitive, and it has a very minimalist feel to it, but when you get used to the idioms it can be incredibly powerful. It's a pity they never wrote a real web browser for it, I would love to see what it would look like. The whole experience is very strange, and yet there's a certain elegance to it.
http://en.wikipedia.org/wiki/Sam_%28text_editor%29
I'm a self-described operating system junkie. At home, I've got WinXP, Win7, OpenBSD, OS X, Haiku (BeOS), FreeBSD, Solaris, AIX, and a few Linux flavors running. Yes, all at once. Maybe I should try plan9 again in a VM.
"Rob, Ken, Dave, and I use Macs as our desktop machines, but we're a bit of an exception. Most Google engineers use Linux machines, and I know of quite a few ex-Bell Labs people who are happy to be using sam or acme on those machines."
These give you some plan9 features on mainstream unix.
Google also has a bunch of ex-Microsofties (dream company of the 1980s) and ex-Amazonites (dream company of the 90s).
It pays to get into a dream company as soon as possible, and do cool things there, because other companies will see those cool things and give you your pick of jobs.