Slashdot Mirror


Driving Plan 9

Glenda_lives_on writes "OSnews has an alternative OS review on Plan 9. Plan 9 is a research OS produced by Bell Labs. It was open sourced a few years back, and has enjoyed a revival of sorts. Los Alamos National Labs is continuing to favor Plan 9 for their new generation of super computing because its the fastest thing out there. I have downloaded and ran Plan 9 before. In fact the Plan 9 live cd sits here on my desk. Its not an operating system for noobs however, and lacks some graphical refinement. Plan 9 is a very cool and a interesting test drive however. Its definitely worth the price of admission (free) for exploring, and education."

24 of 226 comments (clear)

  1. Plan 9 ISO Mirrors by ettlz · · Score: 5, Informative

    Before y'all go pulling down the ISO to try it out, the mirrors are listed at http://netlib.bell-labs.com/wiki/plan9/Mirrors/ind ex.html .

  2. Now YOU look stupid. by Anonymous Coward · · Score: 4, Informative

    Plan 9 is a reference to the Ed Wood movie, Plan 9 from Outer Space, often regarded as the worst movie of all time. Aliens raise the dead to finally prove to humans that they exist (because that's certainly the most obvious, effective way to do it).

  3. Plan 9 is cool by Anonymous Coward · · Score: 5, Informative

    I've never used it, but Plan 9 offers a radically different archival storage system called Venti.

    Basically it never deletes old blocks of data from the server. Blocks are write-once, identified by a really large hash (collisions are so improbable that the possibility can be totally ignored). This allows you to copy lots of redundant data to the server (such as periodic backups) without worrying about the storage space. If the blocks were ever copied there before and they have not changed, they won't take up any space!

    1. Re:Plan 9 is cool by ciroknight · · Score: 4, Informative

      Both are available today, and I can assure you Plan 9's Venti was first, and furthermore ZFS isn't really anything like it. Venti does data compression by removal of redundant data by (basically) writing a block, and then checksumming the block and using that sum to refer to the block in the future, so that if the software tries to write an identical block, it simply ignores the request. With an appropriate block size set, it can save lots and lots of space, however, it's very impractical as a day-to-day filesystem due to the datasets most people work with day-to-day (most of us work with lots of non-redundant data such as code files, video files, image files, etc.), though it would be a neat experiment to see what could be done with a modernized version of it.

      Lots of things like this were/are revolutionary about Plan 9, simply because they were given the ability to do it. Some of them are great ideas (like Venti in conjunction with a database server, if the database server was tailored to the file system and didn't do stupid things...), and some of them could still use a great deal of work. Either way, I welcome our Plan 9 overlords from Outer Space.

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    2. Re:Plan 9 is cool by inKubus · · Score: 3, Informative

      The whole OS is mainly designed to run across multiple computers on a network. It abstracts everything into a file, way more than unix. It's designed for large scale environments and not single user stuff.

      Also, there is a PDF detailing the Fossil archival server and Venti FS.

      It's totally cool.

      --
      Cool! Amazing Toys.
    3. Re:Plan 9 is cool by Anonymous Coward · · Score: 1, Informative

      If you used Venti directly to store all your files, it'd probably perform rather poorly. But on Plan 9, it works as merely an archival backup of the main filesystem called Fossil. You run directly off Fossil and do a daily push to Venti. Then, if you need to get a file that was deleted or whatever, you access Venti.

  4. The review is not so great by ems2 · · Score: 5, Informative

    The review is not so great in terms of accuracy i.e. there is no emacs (check out acme, sam, ed, and smacme instead) and the 640x480 resolution is nonsense. 9fans certainly isn't so grateful about this review.

    Check out the Plan 9 documentation if you are interested in understanding Plan 9.

    1. Re:The review is not so great by ems2 · · Score: 2, Informative

      You are wrong. You are asked what resolution you want. 640x480x8 is just the first option on the list.

  5. I'm a "Plan 9 from Bell Labs" user by DrSkwid · · Score: 5, Informative

    "Plan 9 from Bell Labs" is the proper name of the OS.

    Plan 9 is now community driven, albiet from a small community, mostly the same people that have been there all along.

    It has USB sound support and AC97 support is a new one on me.

    I use it still because the user environment is the best one I have encountered for text editing and interecting with the shell. Most users use VNC to get to their X11/Windows desktops where their web browser lives.

    Building a web browser from scratch is one of those never ending tasks that frankly, just isn't worth your while. That said there is Mothra - no tables, no css, no frames etc. that Tom Duff (yes that Tom Duff) wrote many moons ago and one of the community is beavering away at his project Abaco and has moderate success.

    One of the main tenets to Plan 9 is "everything is a file" and the system is built around the notion of a distributed name space in the shape of a directory tree rather than being a reflection of the disk contents. The canonical example of this is ftps where the remote ftp site is presented as a directory tree at /n/ftp

    Name spaces are process independent so you can build them per process which feels a bit like chrooting.

    Exporting a name space is part of the deal, this presents many gifts that were not deliberately shoe-horned in such as remote step debugging across architectures, sending sound to a remote soundcard, importing a remote machine's network stack instead of using a gateway (including non-plan9 machines via ssh), importing remote filesystems (including non plan 9 machines). All this is facilitated by the 9p protocol.

    As a micro/macro kernel hybrid all this is achieved in just 37 syscalls which is a source of amusement and a feeling of superiority when compared to Linux' 300+ (so many they are not even enumerated any more).

    Linux is derided in the mailing list ("For amateurs, by amateurs") as well as the failings of the other braindead OSes we have to deal with ("If only they did it like us").

    Linus has stopped by in 9fans to whine on about stuff and was seen off, Theo wanted our compilers when he didn't want the license (as imposed by Lucent lawyers) but since they have been dual licensed we've not seen him around.

    Inferno isn't plan 9, it's another product built on similar principles that was sold off by Lucent.

    Lucent's management of Plan 9 in hindsight could have prevented adoption when it was crucial - it was $300 per copy prior to v. 3 and once a free download had a "copies of all modifications must be sent to Lucent" clause and other annoying restrictions in it. These have been lifted now but they boat could already have sailed.

    The notion of distributed computing has gained ground in recent times and Plan 9 could have been at the forefront with distributed computing being built in from the start.

    All that said, Plan 9 was never intended as anything more than an experiment and some ideas have slowly crept into other products (or possibly independently invented) - notably Windows XP presenting their stuff as files/folders, ftpfs in Linux, single sign-on.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    1. Re:I'm a "Plan 9 from Bell Labs" user by ems2 · · Score: 2, Informative
      You can also get Plan 9's c compiler (by Ken Thompson) from Inferno. FYI, they are kept in sync. The only difference is the license used with the version bundled with Inferno. The license is based on MIT-template. The text goes as follows:
      This copyright NOTICE applies to all files in this directory and subdirectories, unless another copyright notice appears in a given file or subdirectory. If you take substantial code from this software to use in other programs, you must somehow include with it an appropriate copyright notice that includes the copyright notice and the other notices below. It is fine (and often tidier) to do that in a separate file such as NOTICE, LICENCE or COPYING. Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. Revisions Copyright © 2000-2005 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  6. Re:Zzzzzzz..... by Bobjects · · Score: 2, Informative

    What would really advance the state of the art is an "everything is an object" operating system.

    Smalltalk-80 fits that description pretty well. See:
    http://users.ipa.net/~dwighth/smalltalk/byte_aug81 /design_principles_behind_smalltalk.html

    Smalltalk-80's modern descendent is Squeak:
    http://www.squeak.org/

  7. Plan 9's web browsers by ems2 · · Score: 4, Informative

    First of all there is Charon from Inferno. It supports html, EMCAScript (1.1 IIRC), CSS, DOM (level 1 IIRC) and https. (See screenshot however this one is a bit outdated)

    Abaco is the most actively developed Plan 9 web browser. It supports most of html. DOM level 3 development has been started. Mozilla's Javascript engine has been ported to Plan 9 and can be used today for a Javascript shell. This will provide abaco with Javascript in the future. Work on CSS has started but I do not know what has been done or where it is heading. Abaco has been ported to Linux and friends via Plan 9 from Userspace. Package managers are encouraged to make packages of abaco for their systems. (See screenshot)

    Then there are webpage, links, mothra, and htmlfmt.

    Finally there are text web browsers for acme (htmlfmt for Plan 9 and see this for Inferno)

    In other news, SDL now works on Plan 9.

  8. Re:How does it compare with the SavaJe OS by ems2 · · Score: 4, Informative

    There is APE for POSIX support. And linuxemu for emulating linux binaries.

    I personally have not checked out Savaje OS. Inferno would be most comparable to such an OS. Inferno is based on many of Plan 9's ideas but with a new programming language, Limbo (famed for being the only other language than C Dennis Ritchie documented) and a virtual machine, Dis. Limbo can run on bare hardware without a host operating system with around 700KB of memory.

    Rob Pike explains the advantages of the Dis virtual machine. Unlike the .Net and Java virtual machines which are stack based Dis is register based. This allows it to run on bare hardware and doesn't require a (according to some heavyweight) operation to translate it from stack to register. Dis provides virtually infinite registers like Parrot. For more information read Pike's paper, The design of the Inferno virtual machine.

  9. Interesting reads. by ratatask · · Score: 2, Informative
  10. Re:Sounds like what The Hurd was supposed to be... by DrSkwid · · Score: 2, Informative

    Plan 9 predates The Hurd

    Erlang - don't think so. Limbo & Plan 9 C use CSP channels.

    Stripped down plan 9 for RTOS - not as far as I'm aware, it's used more for clustering. LANL use it there, they might be the people to ask.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  11. Re:Zzzzzzz..... by ratatask · · Score: 5, Informative

    >The "everything is a file" metaphor of Unix was revolutionary at the time, and Plan 9 taking it a little further really does little to advance the state of the art.

    Sorry, this is where you're wrong.
    Make the socket interface a filesystem, and all you do is mount a fileserver over that, to create
    a socks proxy/http proxy/whatever. All apps get the capability of
    doing networking over a proxy, transparently - no need for using libs or
    prelinking hacks that usually don't work.

    Have the ability to easily create fileservers in userspace, and create an mail
    filesystem that can handle imap/pop/local mboxes etc. Mail clients doesn't need
    to reimplement your favorite mail protocol in yet another broken and incompatible
    way, or adhere to 4 different libraries with 4 different concepts. Just read/write files and
    have the one fileserver do the job.

    Sharing files AND resources becomes easy too. Want to play sound on another computer ? import hostname:/dev/audio /dev

    Having all resources being files, you get a standard way of access control (add ACLs if you really need to), couple it with private
    namespaces, and you don't need the umpten hacks like freebsd jails, chroots, selinux, systrace, etc. Just use chmod/chown and set up a filesystem namespace only containing the resources (resources in this case is anything you request from the OS - networking interface, audio device, screen display, authentication privileges, or most other of the 400 syscalls or ioctls you might want to restrict access to in a read/change on traditional unixes.

  12. Re:/proc on steroids by ems2 · · Score: 2, Informative

    Linux got the idea for /proc from Plan 9. However, it a very dumbed down version of Plan 9's. One of the major differences is that Plan 9's /proc controls processes while Linux really does nothing but represent them to some degree. One example is that you either kill a process by writing 'kill' to its clt (control) file or delete its directory. Plan 9 requires less syscalls thanks to this design. Inferno also has this design to manage its processes. Imagine this with Plan 9's distributing ideas...

  13. Re:/proc on steroids by spitzak · · Score: 4, Informative

    Linux copied the idea of /proc *from* Plan9, so there is certainly some resemblance!

    Despite the limited nature of the copy (somebody else says that Linux version is pretty much read-only, I'm not sure) it shoud be obvious what a big win this is. Suddenly a whole lot of utilities like "ps" do not have to be recompiled to match the kernel. And you can peek into /proc directly, without using a program, and get useful information (such as what files are open or the executable name, I've done both of these plenty of times).

    The only other Plan-9 thing that is copied extensively is UTF-8 text encoding. This one is also a HUGE win, as suddendly we don't have to write two streams through all our programs for handiling Unicode and handling "legacy" ascii files, as they are now the same thing, as long as some (very minor) fixes are done to the "legacy" code. Plus UTF-8 seamlessly handled Unicode going past 65536 characters, while the "wide character" solution that Sun and HP and Dec and Microsoft struggled with for 20 years fell apart the moment this happened, by adding "surrogate characters" and thus deleting the *only* advantage it had over UTF-8.

    Considering how incredibly useful both of these ideas are, I would certainly like to see a lot more of Plan 9 brought out into the real world. There is a lot there!

  14. Plan9 on Qemu by int19h · · Score: 3, Informative


    If you wish to try out Plan 9 without burning a CD and rebooting, Free OS Zoo offers an image of Plan 9 (108M) that works fine with theQemu emulator.


    Step-by-step instructions for a Debian-based distro:

    1. sudo aptitude install wget unzip qemu
    2. wget http://www.oszoo.org/ftp/images/plan9_060327.zip
    3. unzip plan9_060327.zip
    4. qemu -net nic -net user plan9/plan9_compressed.img
    5. A window with Qemu will pop up. Press Return a few times, and you'll reach the commandline.


    Other tips:

    • Press Ctrl+Alt to toggle mouse-grab
    • Press Ctrl+Alt+f to toggle fullscreen
    • Note that Plan9 is intentionally relatively minimalistic, compared to Linux


    Good luck!

  15. To answer some of the authors questions by ems2 · · Score: 4, Informative

    1) The live cd is the install cd. This isn't Linux... Installation is done by an interactive rc script ("everything is a file") in a running Plan 9 with or without rio. Try and imagine how simple it is to automate a Plan 9 installation. Unlike Linux we don't need Red Hat to develop some complex standard for doing something that should be simple.

    2) The cd comes with all the official software. Everything but the stuff that can be found in /n/sources/extra/ or /n/sources/patches/. Or anything made or ported by anyone else that can be found in /n/sources/contrib/ and elsewhere. And it definitely is not missing anything that would be basic in any operating system.

    3) It does include ping. Ping is not just limited to IP so you will find multiple ping programs for different things in their respected directories. The ping for IP is in /bin/ip/ like the rest of the IP tools (on x86 the actual location for IP's ping is /386/bin/ip/ping. /386/bin/ is bound to /bin/ during boot up on x86. Likewise /alpha/bin/ is bound to /bin/ during boot up on alpha. etc.). You use IP ping like this: ip/ping $ipadr. If you want skip the ip/ part then bind /bin/ip/ping to /bin/ping.

    4) This all fits in 80MB. Plan 9's cd is small because it doesn't have bloat. (This includes: PDF/postscript reader, page; Word processor, troff; an advance shell, rc; a web server, httpd; plus thousands of other applications.)

    5) Why didn't you ask any of your questions on 9fans before coming to your assumptions?

    6) This isn't Linux there are rules (e.g. ip tools in /bin/ip/ and http tools in /bin/http/) we don't just dump everything where ever we feel like it. What is the point of having a hierarchy without using it?

  16. Plan 9 under Microsoft Virtual Server 2005 R2 by CodeArt · · Score: 2, Informative

    Plan 9 installs and runs without any problem with Plan 9 GUI under under Microsoft Virtual Server 2005 R2 running on Windows XP SP2. I have created virtual machine with 128MB of RAM. It boots directly from the latest Plan 9 ISO image. I haven't tested with Microsoft Virtual PC 2004 but I guess result would be the same. Both virtualization software can be now downloaded for free.

  17. Why objects are not used in Plan 9 by Anonymous Coward · · Score: 1, Informative

    The developers intentionally moved away from an everything is an object model for VERY good reasons. Files have well defined interfaces (read, write, etc) that make controlling your entire system with them far easier. In an object-based system, every object implements its own, non-uniform interface. If you want objects, look into Corba. It is much more complicated and not really more functional.

  18. Re:The notion of good research by Anonymous Coward · · Score: 1, Informative

    Rubish. EMACS is Editor MACroS. It was originally a set of TECO macros. People can't just backronym it.

  19. Re:/proc on steroids by Apotsy · · Score: 2, Informative
    If you're referring to surrogate pairs, those are a result of the insistence by Microsoft and IBM at including so many thousands of compatibility characters for their existing character sets. Everything currently in Unicode could have easily fit within 65k chars if it weren't for those two companies. The original vision of Unicode as pushed by engineers from Xerox and Apple (I know some of them) did not include surrogates.

    Also, you talk as though UTF-8 were inherently superior to UTF-16 because of the smaller space taken up by ASCII-rage characters. However, for data that is say ... east Asian, UTF-8 is actually larger (characters in the unified Han range take up 3 bytes instead of 2).

    Not everyone in the world speaks English, and UTF-8 is not optimal for everyone and every situation. There is more to life that ASCII compatibility.