The standard Plan 9 shell, Rc, is described in mere ~500 lines of manpage, while Bash takes whooping ~5400 lines.
Oh, and there is no `dll hell' in P9 :-)
The standard Plan 9 shell, Rc, is described in mere ~500 lines of manpage, while Bash takes whooping ~5400 lines.
Oh, and there is no `dll hell' in P9 :-)
An example I remember from the UNIX to Plan 9 command translation page[1]:
UNIX Plan 9
head sed 10q
[1]: http://www.plan9.bell-labs.com/wiki/plan9/unix_to_plan_9_com... head -n 5 sed 5q
For most cases, head is not a shortcut. 10 is just a special case.Although, to my eyes, the most plan9-y way of implementing a home directory would be to have '/home' as your home directory no matter what, and have it default to a bind from /usr/$username.
Email (smtp+ssl, pop3+ssl, imap+ssl, greylisting + spam and virus scanning, virtual accounts authenticating against some central source like ldap) central authentication (windows domain, kerberos domain, something along those lines that can authenticate windows clients) file servers (again, windows clients, using central authentication) web servers (just simple static file serving and proxying dynamic content to app servers) database server (no postgresql for plan 9 still) app servers (pretty much no languages support plan 9, so our custom web apps are a no go right?)
As far as I know, I can't do any of those things with plan 9. Am I mistaken? Is there something I am not thinking of that I could use it for? Do people only use it in their own private little plan 9 only networks? It doesn't make much sense to offer plan 9 as an alternative to unix-like systems if it can't do 99.9% of the things unix-like systems are used for.
Plan 9 is a research os that was made to explore the rigorous implementation of a few key ideas. You're missing the point if your criticism of it is that it doesn't run your favorite database.
If you like the ideas that Plan 9 implements you should apply them to you favorite big and nasty, full-of-compromises, gets-real-work-done OS.
For example, a key idea in Plan 9 is that all resources, from files and networks, to a processes runtime environment, to compute clusters should be represented as an entry in a single hierarchical namespace that is accessed with file semantics(read(),write()).
This is a really cool approach. It makes interacting with resources really easy. You can use any tools that manipulate files. It allows easy remote sharing and manipulation.
Want to use a printer on a different machine? Mount the printer and go. Want to write to a remote screen? Mount the framebuffer and go. Want to administer a running daemon? Mount the directory that represents it and starting messing around.
You can also create your own resources in this namespace. An example was a computing cluster with a file interface. Want to run a program on the cluster? Just mount the file an write your binary to it.
It is a neat approach and I would recommend you check it out.
Edit: Also, Plan 9 has HTTP servers, CIFS support, central authentication (factotum), etc. I suggest you Google them.
I know plan 9 has factotum, but "google it" sure doesn't help me find a way to use it to authenticate windows clients. Or authenticate anything other than plan 9 for that matter. Aquarela doesn't even claim to work, and it is actually much worse in practice than it claims to be. And it can't be part of a domain can it?
I'm not trying to be critical here, but when I ask "what can I actually do with plan 9?" I am genuinely interested in a serious answer. Stuff like "well there's an unsupported kinda buggy thing that doesn't actually do what you need anyways" is just a less honest way of saying "you can't use it for anything".
You seem to seem to be looking for "an alternative to Unix." If that is the case, Plan 9 probably isn't what you're looking for. It is, however, useful in ways that Unix is not. It probably won't replace your specific Unix needs, though it largely replaces mine. Hope that clears that up.
Since plan 9 largely replaces your unixy needs, could you share with me what those needs are, so I can try to get a better idea of what I might be able to use it for. I am not looking for an alternative to unix, I am looking for any practical way I can put plan 9 to use, rather than just tinkering with it on an old spare machine for fun.
UNIX grew to the complexity it has because it was meant to be used. Plan 9 is not used because it was not allowed to acquire useful constructs.
This parting ways with "the UNIX way" was necessary and complete in order for the system to become what it is today. Some things could be improved and made more proper and UNIXy, but for the most part it's an incredibly useful and functional system. The OP article is spot-on with this realization.
In other words, the ideal UNIX (for example, Plan 9) can't compete in the real world, because the concepts behind it (the UNIX way) don't actually compete in the real world. It's based on a set of very interesting, very elegant, and mostly false precepts.
If you "know about it", then you would also now that you cannot use it for something like the things you mention. I cannot see how your questions are compatible with "knowing about it".
Even its developers doesn't use it now --although they have ported their favorite userland tools from it to other systems.
I did not interpret your post as a criticism. Why do you think I did?
> I would like to know how I can actually use it for something
You can use it as a source of ideas for implementing operating system and network services. That may not be useful for you, but everyone is not like you. Others have found it useful to use directly(coraid).