
<html>
<!--
Edit ./^$/,s/<table border=0 cellspacing=0 cellpadding=0 width=100%/<Table/g
Edit ./^$/,s/<Table/<table border=0 cellspacing=0 cellpadding=0 width=100%/g
-->

<head>
<base href="http://swtch.com/plan9port/">
<title>Plan 9 from User Space</title>
</head>
<body bgcolor=#ffffff>
<Table>
  <tr height=10><td width=20><td><td width=20>
  <tr><td><td>
    <center>
      <img src="dist/spaceglenda100.png" alt="Space Glenda">
    </center>
    <Table><tr height=10><td></table>
    <center>
      <font size=+1><b>Plan 9 from User Space</b></font>
    </center>
    <Table><tr height=10><td></table>
    <center>
      <a href="man/man1/intro.html">overview</a>
      |
      <a href="screenshots/">screen shots</a>
      |
      <a href="man/">manual</a>
      |
      <a href="man/man1/install.html">install notes</a>
      |
      <a href="man/man1/cvs.html">cvs</a>
      |
      <a href="unix/">unix</a>
    </center>
    <Table><tr height=10><td></table>
    Plan 9 from User Space (aka plan9port)
    is a port of many Plan 9 programs from their native
    <a href="http://plan9.bell-labs.com/plan9/">Plan 9</a>
    environment to Unix-like operating systems.

    <Table><tr height=20><td></table>
    <b>supported systems</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        Linux <font size=-1>(x86 and PowerPC)</font>,
        FreeBSD <font size=-1>(x86)</font>,
        Mac OS X <font size=-1>(Power PC)</font>,
        SunOS <font size=-1>(Sparc)</font>.
    </table>

    <Table><tr height=20><td></table>
    <b>getting started</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        Start with the overview in
        <a href="man/man1/intro.html"><i>intro</i>(1)</a>.
        For information on installing the system, see
        <a href="man/man1/install.html"><i>install</i>(1)</a>.
    </table>

    <Table><tr height=20><td></table>
    <b>download</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        latest tree: <a href="plan9port.tgz">plan9port.tgz</a>
        <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/plan9port.tgz">date and checksums</a>)</font>
    </table>

    <Table><tr height=20><td></table>
    <b>acknowledgements</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>

        Most obviously, plan9port derives from
        <a href="http://plan9.bell-labs.com/plan9">Plan 9 from Bell Labs</a>
        and would not exist without the work of the Plan 9 team over the
        past many years.

        <Table><tr height=10><td></table>

        Rob Pike suggested the original X11 port of libdraw years ago,
        as part of drawterm, and strongly encouraged the Mac OS X work.
        He has also been a consistent source of good ideas to hide
        the ugliness of modern Unix.

        <Table><tr height=10><td></table>

        William Josephson handled
        <a href="man/man1/troff.html"><i>troff</i>(1)</a>
        (with Taj Khattra) and many of
        the supporting programs.  He also inspired the recent thread library
        clean-up and has ported a handful of applications.

        <Table><tr height=10><td></table>

        Andrey Mirtchovski and Axel Belinfante have done significant
        work dealing with X11 corner cases and fine-tuning
        <a href="man/man1/rio.html"><i>rio</i>(1)</a>.
        Axel never tires of finding bugs in the SunOS port.

        <Table><tr height=10><td></table>
        
        Latchesar Ionkov has contributed many fixes to tricky bugs.
        
        <Table><tr height=10><td></table>

        Many other people have provided help,
        ported programs, written bug reports,
        sent useful patches, and gotten plan9port running on new
        systems.
        
        <Table><tr height=10><td></table>

        Thanks to all.

    </table>

    <Table><tr height=20><td></table>
    <b>contact</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        Russ Cox <font size=-1>(<a href="mailto:rsc@swtch.com">rsc@swtch.com</a>)
    </table>


    <Table><tr height=20><td></table>
    <b>unix extracts</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        The UTF-8 library, the formatted print library,
        the buffered I/O library, the (Unicode-capable) regular expression
        library, and mk are available in packaging separate from plan9port.

        <Table><tr height=10><td></table>

        See <a href="http://swtch.com/plan9port/unix/">http://swtch.com/plan9port/unix/</a>.
    </table>

    <Table><tr height=20><td></table>
    <b>history</b>
    <Table>
      <tr height=10><td width=20><td>
      <tr><td><td>
        <a href="http://plan9.bell-labs.com/plan9dist/ureg.html">
          Sean Quinlan's 9pm
        </a> &#8722; a port of an earlier Plan 9 (including <a href="man/man1/sam.html"><i>sam</i>(1)</a>) to Windows
        <br>
        <a href="http://www.cs.usyd.edu.au/~matty/9term/">
          Matty Farrow's 9term
        </a> &#8722; a native X11 version that inspired <a href="man/man1/9term.html"><i>9term</i>(1)</a>
        <br>
        <a href="http://unauthorised.org/dhog/9wm.html">David Hogan's 9wm</a>
        and
        <a href="ftp://ftp.freefriends.org/arnold/Source/9menu.shar.gz">Arnold Robbins's 9menu</a> &#8722; precursor to
            <a href="man/man1/rio.html"><i>rio</i>(1)</a>
        <br>
        <a href="http://www.star.le.ac.uk/~tjg/rc/">Byron Rakitzis's rc</a> &#8722; a mostly-compatible clone of Plan 9's <a href="man/man1/rc.html"><i>rc</i>(1)</a>
        <br>
        <a href="http://www.cs.yorku.ca/~oz/wily/">Gary Capell's wily</a> &#8722; an <a href="man/man1/acme.html"><i>acme</i>(1)</a>-inspired editor
    </table>


  <tr height=10><td>
</table>

</body>
</html>
