Okay. here's a question:
how would the world look like today had Android started based on Plan 9 instead of Linux?
I think then you'd have a scenario in which, for example, you can pick up your phone and tell your TV to start streaming some file you have on your laptop. You can probably do this now using some collection of complicated programs that you have to install, but with Plan 9 it would be easy since everything appeared to be just one part of a larger computing system.
Or another example: you're working at your office with a desktop computer running Plan 9. Then you leave the office for the night, but want to finish something at home, so you open up your laptop and have access to all your work files as if they are stored locally on your laptop. You just edit them in place and the copy at work is automatically updated as you go.
So that's how things would be different I think. Not revolutionary, but definitely an improvement on what we have now. (Note: I'm not a Plan 9 expert and have never actually used it, however, I do find the ideas from it interesting and have read a bit about it, so I think the above is fairly accurate).
I do this all the time, Gnome file manager (Nautilus) mounts my work computer over sftp with three mouse clicks (Connect to Server / select server / Connect).
Granted, I can only work on the remote files in Nautilus, and with GUI programs than I launch by right-clicking on the files in Nautilus. If I want a command line, I need to do some other, but also simple, tricks.
- You can access files remotely automatically from any application (akin to what sshfs does)
- You can access non-files remotely automatically: a printer is just a fd you write to
- A GPU from a distant cluster is just a resource you can use as if it were local (I'm speaking of implementation, not performance).
- A mail service can be accessed on a mail server, which is itself not connected to the wild internet but goes through a firewall... itself accessible through the same file protocol. Oh and the mail you want to send sits in your outbox on your phone, so you just grab it from your computer.
- You can play the music that lives on your machine on the speakers anywhere in your house by communicating with the remote fd
- One of the dream of Rob Pike (co-inventor) is that you wouldn't need a multi-core machine in your pocket for your mobile lives, you'd only need a good connection so you can access all resources on any server that is connected to the network. Your "smartphone" would then just be a terminal to pilot all your resources.
All of this accessible with the same interface, available in the OS. It may be have been a ludicrous dream, especially when we look at how much data would have been shuffling between machines, but the prospect of such networking still sounds awesome.
On top of that, we already have some platforms to use on Linux: the Erlang VM already has a notion of "global cluster of things" where the actual location of a resource doesn't have an impact on how things are executed (other than performance). The plan9 utilities are also partly ported to run on Linux; maybe we could try to run services that speak 9p/9p2000/styx on top of Linux ? That would be more useful.
Why my phone is unable to be a terminal to all my other machines is beyond me.
I should have 1 hard drive and 1 "computer", and 1 desktop. Every other machine should be a window to this desktop.
At least... in my dream world.
Though, momentum is unfortunately the largest mover of sales and vendor lock-in. Plan 9 never built that momentum.
* Open Nautilus
* Go to Edit -> Preferences. Click on the Preview tab
* Set Show Thumbnails to "Local Files Only" and "Count Number of Items" to "Local Files Only"
Then click on the NFS mounted directory in Nautilus.
You will not have any fun.
This bug has been sitting in the Nautilus bug tracker for over three years.
A fix would not be rocket science, just rewording what it says in the Preview tab would be a fix. Three years gone by and they can't even reword it. Which is fine, but it doesn't say much for the file manager and its inter-OS operability.
I'm a bit suspicious of things that make network access transparent.
OTOH, Plan 9 was designed as a company-global "machine": you have a room filled with CPU clusters and storage clusters, and your own simple, stupid terminal to manage your resources. But your terminal is only a view; ultimately the data lives in the storage cluster and is processed in the CPU cluster.
Take a look at this page, notably the figure 1:
As you can see, CPU and storage were expected to live on a high-speed, low-latency link because most of the data would fly between those two. Your terminal was expected to be anywhere else, possibly on the other end of a slow ethernet cable, and would coordinate the transmission of data from there. But most of the transmission would be between CPUs and storage. It wasn't supposed to be a truly p2p decentralized model.
So basically an IP nightmare for many companies?
Sure that's just because she doesn't know how to set up VPN access on her own, but still.
That is why it took pressure to get iPhones into enterprise networks.
If a company is intent on constraining access to data from its office space only, then it wouldn't select or open itself to such systems.
Plan 9 managed to prove that everything can be a file.
I think the difference would have been that some things would be easier to achieve, if Android had been built around Plan9. But Plan9 itself doesn't have the maturity that Linux has, so bringing it to maturity would have taken time.
I am not convinced about GPU performance specially when Plan9 has a simple 2D software render.
Does anyone know if you can boot Plan 9 in text mode?
However well-designed the OS is internally, it also needs to be approachable externally.
It is very unlikely that you can use Plan 9 with the video card literally in text mode.
>When I tried to run Plan 9 in a VM I gave up because I couldn't figure out how to open a shell in the window manager and type ls.
You can probably learn how by reading the first few paragraphs of this page:
Reading a manual/tutorial?
Without similar basic functionality, people will use it briefly, get frustrated, and then never use your OS again. They're also going to tell all their friends and your new OS is dumpster bound before it even gets out of beta.
It was not obvious to Rob Pike (who if not the "leader" of Plan 9 was at least the developer with the highest status).
Pike seemed to lack an understanding of how to entice users whose motivations and interests are different from his own to go through the trouble of actually learning and acclimating to his software. A general lack of marketing savvy, perhaps.
Here is another example of that:
In an post to the plan 9 mailing list (9fans) written in the 1990s, Pike seemed genuinely confused as to why some browser maker (Opera maybe?) did not respond positively to Pike's invitation to port their browser to Plan 9.
This was at a time when on a really good day Plan 9 had fewer than 200 users (most of whom were researchers at Bell Labs and maybe coworkers of those researchers). "I never even received the courtesy of a reply," is how Pike ended the post.
I did not mean to focus so long on one personality. The important point is that there's a lot of things one has to pay attention to if one expects a particular piece of software to gain widespread adoption. In particular, it is not enough to show that you are a very impressive person surrounded by other impressive people with some very innovative idea.
In a nutshell, nobody ever cared how well it was received outside of Bell Labs.
Unfortunately, true user control over the namespace is incompatible with the unix security model (thanks to setuid being the only means of privilege escalation), and the namespace compositing that makes, for example, just stacking bin directories onto /bin instead of using a PATH requires that it be possible to have more than one file with the same name in the same view to work well, which is (probably?) incompatible with POSIX.
In my own opinion, a sufficient number of people, projects, and services were already using Unix-based systems, and they had constructed their projects and services around this Unix model. The marginal benefits of Plan 9 were not great enough to offer sufficient incentive to deviate from the Unix model.
Why should my phone just be a standalone device that just downloads shit? I wasn't a phone that can access that screen on my TV and send videos that sit on my file server, or can check 9p enabled sensors and display their status, our integrate with all sorts of crap around my house or at work.
Rio, acme, and rc would be an awful match for phone hardware, but the plan 9 kernel and 9p protocol would be very nice.
What actually happened was that a meta-OS - the web - drove broadband take-up, and broadband providers scrambled to improve the technology to meet demand.
The demand for super-bandwidth mobile services isn't there in anything like the same way. And there's no equivalent meta-OS for mobile.
But... at some point we're going to be moving to non-local storage and non-local processing, and Linux isn't really ideal for that.
My guess is that will happen when computing finally starts moving past concepts that were developed in the late 1960s. AI may well be a driver of a non-local distributed computing which isn't based on the cycles-as-utility or cycles-as-private-resource models we're stuck with now.
Is it too unrealistic to consider the possibility that the web could evolve into a single connected intelligent application that automatically load-balances and distributes cycles and storage across all connected devices?
This is fundamentally different from a world where you assume always-on connectivity. It's more like the old pre-Internet days where email and Usenet were stored and forwarded.
If you have a compute task to accomplish on a phone, there's a tradeoff whether doing an RPC versus computing it locally would use less power and have less latency. As phone CPU's get faster it becomes more feasible to do compute-only tasks locally. This also increases availability.
So I'd argue that the trend is more towards offline computing and data synchronization protocols, not always-connected computing.
Plan9 failed because lucent failed.
The fact the Gods of Unix moved on doesn't seem to bother people.
On the other hand, major Unices being more Plan 9-esque would actually bring them closer to the Unix philosophy that opponents of the aforementioned technologies frequently cite.
It doesn't really seem "dead" (though close to it), it's interesting to me that even 6 years after this post Plan 9 was still being ported.
To be honest, a fair amount of the good features have been ported from Plan 9 into Linux. I don't bother using Plan 9 personally because it doesn't have a lot of the support I need, and many Linux distros support what I need.
However, if there more general support I would definitely use it, it's pretty slick.
But they're only a (admittedly important, but insufficient) subset of the Plan 9 operating system.
 - http://swtch.com/plan9port/
 - https://en.wikipedia.org/wiki/Plan_9_from_User_Space
Avoiding cyclic dependencies might also be a good thing in terms of overall software design.
- But it [Unix] lacked an active data model
- Farber suggested this in 1978 and we all thought it made no sense
- He was right, as usual
Any articles on it I could read?
But no, I didn't add a page for him ...
Bottom line is unix is good enough and no one is interested in the effort/risk it'd take to develop something significantly better.
The last problem is a hurdle that that all good operating systems with fewer than a hundred million installs face. Driver support.
Plan9 with a Wayland style compositor supporting hardware acceleration could be a base for some cool new directions in UI. A Raspberry PI running Plan9 with a spiffy accelerated compositor and plan9ish file-framebuffer-windows would be enough to convince me to dive in and have a play around.
The problem here is that most of the plan9 community is too set in their ways to counter the dogmas around, say, Acme and three-button mouse usage (just to use an example that is UI-related but not strictly about the environment) or has moved on.
Mind you, plan9front is still being maintained (and fixed, including EFI and 64bit stuff), but people doing UX and graphics seem to be in short supply in that neck of the woods.
I blame the ultimate demise of commercial unix on infighting between HP, Sun, Cray, Digital, Tandem and everyone else who had a better idea of what UNIX should look like: i.e. how their UNIX was perfect in every way and safe to lock into because it addressed all your needs.
I remember impassioned arguments about whether HP-UX or Solaris was the better server to host Sybase or Oracle because the developers of said products developed on one first and ported to another, or so it was said.
When I tried to show Linux to my peers in the early 90's it was "Meh, proprietary hardware is better than PC hardware, why would we use that?" Eventually as we all know commercial Linux won the day over pretty much everything else.
I also tried to show people Plan 9 and was again shot down by people who lacked vision, but this time they were right. The only thing it seems most UNIX family members agree on is Plan 9's the red-headed cousin every UNIX vendor hates.
For me it had echoes of Apollo's open namespace concept on their OS. But as others have stated a) it didn't have any compelling reasons to adopt it over standard UNIX for an average business, b) it had a bunch of UI quirks that only a mother could love.
I still think we have things to learn from Plan 9 if you take the open namespace concept and wrap it in a container. My company (a Fortune 50) is getting rid of laptops, privileged remote access (no root over VPN) and even desktops (most everyone's hosted on virtual desktops now.)
Why not give me access to a desktop wrapped in an encrypted container? I boot their OS, it establishes contact with a server that verifies my boot-disk is uncorrupted and then downloads whatever I need to work inside the container, but once I'm done it's all destroyed until next time?
I can operate inside my employer's namespace but once the access is gone there are no local traces? shrug
Anyway back to Plan 9, it was good. It wasn't great enough to make anyone switch.
Also, its namespacing, and a few other opinionated ideas...
QNX is another great example of awesomeness squandered.