Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.49",
%%%     date            = "06 January 2024",
%%%     time            = "06:29:50 MST",
%%%     filename        = "plan9.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "https://www.math.utah.edu/~beebe",
%%%     checksum        = "55735 3802 17646 170482",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "AT&T Plan 9; distributed operating system",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a bibliography of publications about
%%%                        the AT&T Plan 9 distributed operating system.
%%%
%%%                        This bibliography also includes selected
%%%                        papers on regular expression matching,
%%%                        because that subject was first applied to
%%%                        Unicode in the UTF-8 encoding (UTF-8 is
%%%                        another contribution of Plan-9), and because
%%%                        recent research at the Plan 9 group and at
%%%                        Google has extended early work by Ken
%%%                        Thompson (1968) on linear-time matching for
%%%                        complicated regular expressions.
%%%
%%%                        At version 1.49, the year coverage looked
%%%                        like this:
%%%
%%%                             1959 (   1)    1979 (   0)    1999 (   3)
%%%                             1960 (   1)    1980 (   0)    2000 (  27)
%%%                             1961 (   0)    1981 (   1)    2001 (   1)
%%%                             1962 (   0)    1982 (   0)    2002 (   5)
%%%                             1964 (   0)    1984 (   1)    2004 (   3)
%%%                             1965 (   0)    1985 (   0)    2005 (   2)
%%%                             1966 (   0)    1986 (   0)    2006 (   1)
%%%                             1967 (   1)    1987 (   1)    2007 (   4)
%%%                             1968 (   1)    1988 (   2)    2008 (   2)
%%%                             1969 (   0)    1989 (   0)    2009 (   2)
%%%                             1970 (   0)    1990 (   7)    2010 (   2)
%%%                             1971 (   0)    1991 (   6)    2011 (   0)
%%%                             1972 (   0)    1992 (   4)    2012 (   2)
%%%                             1973 (   0)    1993 (  10)    2013 (   0)
%%%                             1974 (   0)    1994 (   8)    2014 (   1)
%%%                             1975 (   0)    1995 (   6)    2015 (   0)
%%%                             1976 (   0)    1996 (  12)    2016 (   1)
%%%                             1977 (   0)    1997 (   3)
%%%                             1978 (   0)    1998 (   1)
%%%                             19xx (  16)
%%%
%%%                             Article:         42
%%%                             Book:             6
%%%                             InCollection:     1
%%%                             InProceedings:   21
%%%                             Manual:           1
%%%                             MastersThesis:    1
%%%                             Misc:             9
%%%                             Proceedings:     11
%%%                             TechReport:      46
%%%
%%%                             Total entries:  138
%%%
%%%                        Plan 9 borrows many ideas from UNIX, but is
%%%                        not a UNIX clone.  Like Microsoft Windows
%%%                        (NT, 2000, XP, and Vista), Plan 9 uses the
%%%                        16-bit Unicode character as its standard
%%%                        character set.
%%%
%%%                        Plan 9 is a trademark of AT&T.
%%%
%%%                        There is a Usenet newsgroup comp.os.plan9;
%%%                        it is archived at
%%%
%%%                            http://www.ecf.toronto.edu/plan9
%%%
%%%                        There is a frequently-asked questions (FAQ)
%%%                        list at
%%%                        http://www.ecf.toronto.edu/plan9/plan9faq.html.
%%%
%%%                        There is an FTP site at
%%%
%%%                            ftp://ftp.ecf.toronto.edu/pub/plan9
%%%
%%%                        Bell Labs maintains
%%%
%%%                            http://plan9.bell-labs.com/plan9/index.html
%%%
%%%                        which contains the Plan 9 papers and manuals.
%%%
%%%                        Pointers to Plan 9 documentation are found at
%%%
%%%                            http://plan9.bell-labs.com/sys/doc/
%%%
%%%                        Russ Cox maintains a Web site for Plan 9 and
%%%                        other projects, with pointers to
%%%                        documentation, and also to implementations of
%%%                        various regular-expression libraries:
%%%
%%%                            http://swtch.com/~rsc/
%%%
%%%                        The Plan 9 Foundation Web site is at
%%%
%%%                            http://p9f.org/
%%%
%%%                        On 21 March 2021, an e-mail message to the
%%%                        mailing list 9fans<at>9fans.net announced
%%%                        that Nokia has transferred the copyright of
%%%                        Plan 9 to the Plan 9 Foundation. This
%%%                        transfer applies to all of the Plan 9 from
%%%                        Bell Labs code, from the earliest days
%%%                        through their final release.  The code is
%%%                        available at links from that site.
%%%
%%%                        This bibliography has been collected from
%%%                        bibliographies in the author's personal
%%%                        files, and from the OCLC, IEEE INSPEC, and
%%%                        UnCover databases.
%%%
%%%                        Numerous errors in the sources noted above
%%%                        have been corrected.  Spelling has been
%%%                        verified with the UNIX spell and GNU ispell
%%%                        programs using the exception dictionary
%%%                        stored in the companion file with extension
%%%                        .sok.
%%%
%%%                        BibTeX citation tags are uniformly chosen as
%%%                        name:year:abbrev, where name is the family
%%%                        name of the first author or editor, year is a
%%%                        4-digit number, and abbrev is a 3-letter
%%%                        condensation of important title
%%%                        words. Citation tags were automatically
%%%                        generated by software developed for the
%%%                        BibNet Project.
%%%
%%%                        In this bibliography, entries are sorted
%%%                        first by ascending year, and within each
%%%                        year, alphabetically by author or editor,
%%%                        and then, if necessary, by the 3-letter
%%%                        abbreviation at the end of the BibTeX
%%%                        citation tag, using the bibsort -byyear
%%%                        utility.  Year order has been chosen to
%%%                        make it easier to identify the most recent
%%%                        work.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
@Preamble{
    "\hyphenation{
    }"
}

%%% ====================================================================
%%% Acknowledgement abbreviations:
@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|https://www.math.utah.edu/~beebe/|"}

%%% ====================================================================
%%% Institution abbreviations:
@String{inst-ATT-BELL           = "AT\&T Bell Laboratories"}
@String{inst-ATT-BELL:adr       = "Murray Hill, NJ, USA"}

@String{inst-CSRC               = "Computing Sciences Research Center,
                                  Bell Laboratories"}
@String{inst-CSRC:adr           = "Murray Hill, NJ, USA"}

%%% ====================================================================
%%% Journal abbreviations:
@String{j-BYTE                  = "BYTE Magazine"}

@String{j-CACM                  = "Communications of the ACM"}

@String{j-COMP-SYS              = "Computing Systems"}

@String{j-COMPUT-SCI-ENG        = "Computing in Science and Engineering"}

@String{j-COMPUTER              = "Computer"}

@String{j-DATA-COMMUNICATIONS   = "Data communications"}

@String{j-DATAMATION            = "Datamation"}

@String{j-DDJ                   = "Dr. Dobb's Journal of Software Tools"}

@String{j-EUUG-NEWSLETTER       = "EUUG Newsletter"}

@String{j-IBM-JRD               = "IBM Journal of Research and Development"}

@String{j-IEEE-SOFTWARE         = "IEEE Software"}

@String{j-IEEE-TRANS-COMPUT     = "IEEE Transactions on Computers"}

@String{j-INFORMATION-WEEK      = "Information Week"}

@String{j-IRE-TRANS-ELEC-COMPUT = "IRE Transactions on Electronic Computers"}

@String{j-J-FUNCT-PROGRAM       = "Journal of Functional Programming"}

@String{j-LINUX-J               = "Linux Journal"}

@String{j-LOGIN                 = ";login: the USENIX Association newsletter"}

@String{j-OPER-SYS-REV          = "Operating Systems Review"}

@String{j-PC-WEEK               = "PC Week"}

@String{j-SECURITY              = "Security"}

@String{j-SPE                   = "Soft\-ware\emdash Prac\-tice and Experience"}

@String{j-UNIX-REVIEW           = "UNIX review"}

@String{j-UNIX-WORLD            = "UNIX/world"}

%%% ====================================================================
%%% Publisher abbreviations:
@String{pub-ACM                 = "ACM Press"}
@String{pub-ACM:adr             = "New York, NY 10036, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr              = "Reading, MA, USA"}

@String{pub-EUROPEN             = "EurOpen"}
@String{pub-EUROPEN:adr         = "Buntingford, Herts, UK"}

@String{pub-EUUG                = "EUUG"}
@String{pub-EUUG:adr            = "Buntingford, Herts, UK"}

@String{pub-HANSER              = "Carl Hanser"}
@String{pub-HANSER:adr          = "M{\"u}nchen, Germany"}

@String{pub-HB                  = "Harcourt Brace and Co."}
@String{pub-HB:adr              = "New York, NY, USA"}

@String{pub-IEEE                = "IEEE Computer Society Press"}
@String{pub-IEEE:adr            = "1109 Spring Street, Suite 300, Silver
                                  Spring, MD 20910, USA"}

@String{pub-MORGAN-KAUFMANN     = "Morgan Kaufmann Publishers"}
@String{pub-MORGAN-KAUFMANN:adr = "Los Altos, CA 94022, USA"}

@String{pub-ORA                 = "O'Reilly \& {Associates, Inc.}"}
@String{pub-ORA:adr             = "981 Chestnut Street, Newton, MA 02164, USA"}

@String{pub-UKUUG               = "UK Unix Users Group"}
@String{pub-UKUUG:adr           = "Buntingford, Herts, UK"}

@String{pub-USENIX              = "USENIX"}
@String{pub-USENIX:adr          = "Berkeley, CA, USA"}

%%% ====================================================================
%%% Bibliography entries:
%%%
%%% We include a couple of historical references to the 1958 film whose
%%% name was borrowed for this operating system.
@Article{Rabin:1959:FAT,
  author =       "M. O. Rabin and D. Scott",
  title =        "Finite automata and their decision problems",
  journal =      j-IBM-JRD,
  volume =       "3",
  number =       "??",
  pages =        "114--125",
  year =         "1959",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  MRclass =      "93.00 (02.00)",
  MRnumber =     "21 \#2559",
  bibsource =    "ftp://ftp.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 http://www.research.ibm.com/journal/",
  acknowledgement = ack-nhfb,
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  reviewer =     "J. McCarthy",
}

@Article{McNaughton:1960:RES,
  author =       "R. McNaughton and H. Yamada",
  title =        "Regular Expressions and State Graphs for Automata",
  journal =      j-IRE-TRANS-ELEC-COMPUT,
  volume =       "EC-9",
  number =       "1",
  pages =        "39--47",
  month =        mar,
  year =         "1960",
  CODEN =        "IRELAO",
  DOI =          "https://doi.org/10.1109/TEC.1960.5221603",
  ISSN =         "0367-9950",
  bibdate =      "Thu Jul 14 15:34:11 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5221603",
  acknowledgement = ack-nhfb,
  fjournal =     "IRE Transactions on Electronic Computers",
}

@Article{Deutsch:1967:OE,
  author =       "L. Peter Deutsch and Butler W. Lampson",
  title =        "An online editor",
  journal =      j-CACM,
  volume =       "10",
  number =       "12",
  pages =        "793--799, 803",
  month =        dec,
  year =         "1967",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Nov 25 18:20:16 MST 2005",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/unix.1.bib;
                 ftp://ftp.math.utah.edu/pub/tex/bib/cacm1960.bib;
                 http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1960.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "An online, interactive system for text editing is
                 described in detail, with remarks on the theoretical
                 and experimental justification for its form. Emphasis
                 throughout the system is on providing maximum
                 convenience and power for the user. Notable features
                 are its ability to handle any piece of text, the
                 content-searching facility, and the
                 character-by-character editing operations. The editor
                 can be programmed to a limited extent.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  keywords =     "QED text editor",
}

@Article{Thompson:1968:PTR,
  author =       "Ken Thompson",
  title =        "Programming Techniques: {Regular} expression search
                 algorithm",
  journal =      j-CACM,
  volume =       "11",
  number =       "6",
  pages =        "419--422",
  month =        jun,
  year =         "1968",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/363347.363387",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Nov 25 18:20:20 MST 2005",
  bibsource =    "http://dblp.uni-trier.de/db/journals/cacm/cacm11.html#Thompson68;
                 http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1960.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://patft.uspto.gov/",
  abstract =     "A method for locating specific character strings
                 embedded in character text is described and an
                 implementation of this method in the form of a compiler
                 is discussed. The compiler accepts a regular expression
                 as source language and produces an IBM 7094 program as
                 object language. The object program then accepts the
                 text to be searched as input and produces a signal
                 every time an embedded string in the text matches the
                 given regular expression. Examples, problems, and
                 solutions are also presented.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  keywords =     "match; regular expression; search",
  oldlabel =     "Thompson68",
  remark =       "The on-the-fly compilation of regular expressions to
                 IBM 7094 machine code is part of US Patent \#3568156,
                 awarded 9 August 1967 to Kenneth L. Thompson. This may
                 be the first instance of the use of regular-expression
                 pattern matching in text-editor software.",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Thompson68",
}

@Misc{Lugosi:1981:POS,
  author =       "Bela Lugosi",
  title =        "{Plan 9} from outer space",
  publisher =    "Nostalgia Merchant",
  address =      "Hollywood, CA, USA",
  year =         "1981",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "1 videocassette (78 min.)",
  acknowledgement = ack-nhfb,
  annote =       "VHS format; 3908. Videorecording of the motion
                 picture. ``Winner of the dubious `Golden Turkey Award'
                 for the worst picture of all time.'' Bela Lugosi, Lyle
                 Talbot, Tor Johnson, Vampira. Aliens invade the Earth
                 in flying saucers that look suspiciously like paper
                 plates, intent on conquering the Earth by resurrecting
                 the dead.",
  keywords =     "Feature films; Science fiction films.",
}

@Misc{Wood:1984:POS,
  author =       "Edward D. (Edward Davis) Wood and Tor Johnson and
                 Vampira and Tom Keene and Gregory Walcott",
  title =        "{Plan 9} from outer space",
  publisher =    "Goodtimes Home Video",
  address =      "New York, NY, USA",
  year =         "1984",
  ISBN =         "1-55511-689-2",
  ISBN-13 =      "978-1-55511-689-7",
  LCCN =         "????",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "1 videocassette (approx. 79 min.)",
  series =       "Sherlock Theatre: the best of the worst",
  acknowledgement = ack-nhfb,
  alttitle =     "Plan nine from outer space",
  annote =       "Videocassette release of the c1958 motion picture.
                 Recorded in LP mode. Executive producer, J. Edward
                 Reynolds; director of photography, William C. Thompson;
                 film editor, Edward D. Wood, Jr., Tor Johnson, Vampira,
                 Tom Keene, Gregory Walcott, Dudley Manlove, Mona
                 McKinnon, Bela Lugosi, John Breckinridge, Lyle Talbot.
                 Universally hailed as the worst movie ever made, it is
                 also one of the funniest. Aliens from outer space are
                 robbing graves in the San Fernando Valley and turning
                 the corpses into murdering zombies. VHS. 8311;
                 Goodtimes Home Video.",
  keywords =     "Comedy films; Feature films; Science fiction films.",
}

@Article{Pike:1987:TES,
  author =       "Rob Pike",
  title =        "The Text Editor sam",
  journal =      j-SPE,
  volume =       "17",
  number =       "11",
  pages =        "813--845",
  month =        nov,
  year =         "1987",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@InProceedings{Presotto:1988:PBL,
  author =       "David Leo Presotto",
  title =        "{Plan 9} from {Bell Labs} --- The Network",
  crossref =     "USENIX:1988:ECP",
  pages =        "15--21",
  month =        "Spring",
  year =         "1988",
  bibdate =      "Tue Feb 20 15:42:13 MST 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "AT\&T Bell Laboratories, Murray Hill",
}

@Article{Anonymous:1990:BUP,
  author =       "Anonymous",
  title =        "Beyond {Unix}: {Plan 9}",
  journal =      j-INFORMATION-WEEK,
  volume =       "293",
  pages =        "20--??",
  day =          "29",
  month =        oct,
  year =         "1990",
  CODEN =        "INFWE4",
  ISSN =         "8750-6874",
  ISSN-L =       "1938-3371",
  bibdate =      "Fri Aug 16 18:40:11 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  abstract =     "Bell Labs scientists are working with an internally
                 developed operating system that allows easier
                 distributed processing using networks with diskless
                 workstation nodes.",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Week",
}

@Article{Duff:1990:RSPa,
  author =       "T. Duff",
  title =        "Rc --- a shell for {Plan 9} and {Unix} systems",
  journal =      j-EUUG-NEWSLETTER,
  volume =       "10",
  number =       "3",
  pages =        "12--22",
  month =        "Autumn",
  year =         "1990",
  CODEN =        "EONLE8",
  ISSN =         "1011-4211",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "B6210L (Computer communications); C6150C (Compilers,
                 interpreters and other processors); C6115 (Programming
                 support); C5620 (Computer networks and techniques)",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "European UNIX Systems User Group, EUUG Newsletter",
  keywords =     "Bourne system; command interpreter; distributed
                 computing environment; distributed processing;
                 idiosyncratic syntax; Plan 9; program interpreters; rc;
                 shell; software; SunOS; systems; Tenth Edition; tools;
                 traditional; Unix; Unix systems",
  treatment =    "P Practical",
}

@InProceedings{Duff:1990:RSPb,
  author =       "T. Duff",
  booktitle =    "UKUUG. UNIX - The Legend Evolves. Proceedings of the
                 Summer 1990 UKUUG Conference",
  title =        "Rc -- a shell for {Plan 9} and {Unix} systems",
  publisher =    pub-UKUUG,
  address =      pub-UKUUG:adr,
  pages =        "21--33 (of xi + 260)",
  year =         "1990",
  ISBN =         "0-9513181-7-9",
  ISBN-13 =      "978-0-9513181-7-1",
  LCCN =         "????",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150C (Compilers, interpreters and other processors);
                 C6150J (Operating systems)",
  conflocation = "London, UK; 9-13 July 1990",
  corpsource =   "AT&T Bell Lab., Murray Hill, NJ, USA",
  keywords =     "command interpreter; Edition; multiprocessing
                 programs; Plan 9; program interpreters; rc; SunOS;
                 syntax; Tenth; Unix; Unix systems",
  treatment =    "P Practical",
}

@Article{Goos:1990:IPS,
  author =       "Anke Goos",
  title =        "Is {Plan 9} Sci-Fi or {UNIX} for the Future?",
  journal =      j-UNIX-WORLD,
  volume =       "7",
  number =       "10",
  pages =        "61--??",
  day =          "1",
  month =        oct,
  year =         "1990",
  ISSN =         "0739-5922",
  bibdate =      "Mon May 27 14:15:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  abstract =     "Bell Labs unveils its latest creation-a distributed
                 computing system that separates computation, file
                 services, and display in a system of servers.",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX/world",
}

@Article{Pike:1990:PBLa,
  author =       "R. Pike and D. Presotto and K. Thompson and H.
                 Trickey",
  title =        "{Plan 9} from {Bell Labs}",
  journal =      j-EUUG-NEWSLETTER,
  volume =       "10",
  number =       "3",
  pages =        "2--11",
  month =        "Autumn",
  year =         "1990",
  CODEN =        "EONLE8",
  ISSN =         "1011-4211",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "B6210L (Computer communications); C5620 (Computer
                 networks and techniques); C5630 (Networking
                 equipment)",
  corpsource =   "Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "European UNIX Systems User Group, EUUG Newsletter",
  keywords =     "CPU servers; distributed computing environment;
                 distributed processing; distributed systems; file; file
                 servers; general-; interconnections; local; name space
                 operations; Plan 9; protocols; purpose components;
                 reliability; security; servers; simplicity; single
                 file-oriented protocol; specialised components;
                 terminals",
  treatment =    "P Practical",
}

@InProceedings{Pike:1990:PBLb,
  author =       "R. Pike and D. Presotto and K. Thompson and H.
                 Trickey",
  booktitle =    "UKUUG. UNIX - The Legend Evolves. Proceedings of the
                 Summer 1990 UKUUG Conference",
  title =        "{Plan 9} from {Bell Labs}",
  publisher =    pub-UKUUG,
  address =      pub-UKUUG:adr,
  pages =        "1--9 (of xi + 260)",
  year =         "1990",
  ISBN =         "0-9513181-7-9",
  ISBN-13 =      "978-0-9513181-7-1",
  LCCN =         "????",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also \cite{Jacob:1996:AMD}.",
  acknowledgement = ack-nhfb,
  classcodes =   "B6210L (Computer communications); C6150J (Operating
                 systems); C5630 (Networking equipment); C5620 (Computer
                 networks and techniques)",
  conflocation = "London, UK; 9-13 July 1990",
  corpsource =   "AT&T Bell Lab., Murray Hill, NJ, USA",
  keywords =     "building blocks; CPU servers; distributed computing
                 environment; distributed processing; distributed
                 systems; file; file servers; file-oriented protocol;
                 interconnections; local name space; multiprocessing;
                 operations; Plan 9; programs; protocols; security;
                 servers; specialised components; terminals",
  treatment =    "P Practical",
}

@InProceedings{Presotto:1990:MSP,
  author =       "D. L. Presotto",
  booktitle =    "UKUUG. UNIX - The Legend Evolves. Proceedings of the
                 Summer 1990 UKUUG Conference",
  title =        "Multiprocessor Streams for {Plan 9}",
  publisher =    pub-UKUUG,
  address =      pub-UKUUG:adr,
  pages =        "11--19 (of xi + 260)",
  month =        "????",
  year =         "1990",
  ISBN =         "0-9513181-7-9",
  ISBN-13 =      "978-0-9513181-7-1",
  LCCN =         "????",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems)",
  conflocation = "London, UK; 9-13 July 1990",
  corpsource =   "AT&T Bell Lab., Murray Hill, NJ, USA",
  keywords =     "abstraction; input-output programs; kernel;
                 multi-threaded; multiprocessing programs;
                 multiprocessor; Plan 9 kernel; Streams; system call
                 interface; Unix",
  treatment =    "P Practical",
}

@Article{Pike:1991:DP,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Howard
                 Trickey",
  title =        "Designing {Plan 9}",
  journal =      j-DDJ,
  volume =       "16",
  number =       "1",
  pages =        "49--50, 52, 54, 56--60",
  month =        jan,
  year =         "1991",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "Contrary to what you might expect, tomorrow's
                 distributed computer systems may look a lot like Plan
                 9.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems); C5690 (Other data
                 communication equipment and techniques); C5620
                 (Computer networks and techniques); C5440
                 (Multiprocessor systems and techniques)",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "(computers); AT and T; bitmap; command interpreter;
                 compiler; CPU servers; distributed computing
                 environment; distributed processing; file;
                 file-oriented protocol; Gnot terminal; local name
                 space; multiprocessors; network servers; networking
                 software; operating system; operating systems;
                 operations; Plan 9; process file system; protocols;
                 screen; servers; window system",
  treatment =    "P Practical",
}

@Article{Pike:1991:DPC,
  author =       "Rob Pike and Dave Presotto and Ken Thompson",
  title =        "Designing {Plan 9}: contrary to what you might expect,
                 tomorrow's distributed computer systems may look a lot
                 like {Plan 9}",
  journal =      j-DDJ,
  volume =       "16",
  number =       "1",
  pages =        "49--??",
  day =          "1",
  month =        jan,
  year =         "1991",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon May 27 14:15:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@InProceedings{Pike:1991:PWS,
  author =       "R. Pike",
  booktitle =    "Proceedings of the Summer 1991 USENIX Conference,
                 Nashville, TN, USA, June 10--14, 1991",
  title =        "$ 8 {1 / 2} $, the {Plan 9} window system",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "257--266 (of x + 473)",
  year =         "1991",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "The Plan 9 window system, $ 8 1 / 2 $, is a
                 modest-sized program of novel design. It provides
                 textual I/O and bitmap graphic services to both local
                 and remote client programs by offering a multiplexed
                 file service to those clients. It serves traditional
                 UNIX files like {\tt /dev/tty} as well as more unusual
                 ones that provide access to the mouse and the raw
                 screen. Bitmap graphics operations are provided by
                 serving a file called {\tt /dev/bitblt} that interprets
                 client messages to perform raster operations. The file
                 service that $ 8 1 / 2 $ offers its clients is
                 identical to that it uses for its own implementation,
                 so it is fundamentally no more than a multiplexer. This
                 architecture has some rewarding symmetries and can be
                 implemented compactly.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6180G (Graphical user interfaces); C6150N
                 (Distributed systems); C6150J (Operating systems);
                 C6130B (Graphics techniques)",
  conflocation = "Nashville, TN, USA; 10-14 June 1991",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  keywords =     "8/sup 1///sub 2/; ASCII I/O; bitmap graphic services;
                 client messages; file; graphical user interfaces;
                 modest-sized; mouse; multiplexed file service;
                 multiplexer; multiplexing; multiprogramming; Plan 9
                 window system; program; programs; raster operations;
                 raw screen; remote client; service; traditional Unix
                 files; Unix",
  treatment =    "P Practical",
}

@InProceedings{Presotto:1991:PDS,
  author =       "D. Presotto and R. Pike and K. Thompson and H.
                 Trickey",
  title =        "{Plan 9}, a distributed system",
  crossref =     "EurOpen:1991:EUD",
  pages =        "43--50",
  year =         "1991",
  bibdate =      "Fri May 22 11:52:09 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems)",
  corpsource =   "Bell Labs., Holmdel, NJ, USA",
  keywords =     "access; file caching; network operating systems; per
                 process group name space; Plan 9; portable distributed
                 system; software portability; uniform; Unix",
  treatment =    "P Practical",
}

@Article{Quinlan:1991:CWF,
  author =       "S. Quinlan",
  title =        "A Cached {WORM} File System",
  journal =      j-SPE,
  volume =       "21",
  number =       "12",
  pages =        "1289--??",
  month =        dec,
  year =         "1991",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Fri Apr 30 10:31:10 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also \cite{Jacob:1996:AMD}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software---Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Dorward:1992:P,
  author =       "Sean Dorward and Rob Pike and Dave Presotto",
  title =        "{Plan 9}",
  journal =      j-UNIX-REVIEW,
  volume =       "10",
  number =       "4",
  pages =        "28--??",
  day =          "1",
  month =        apr,
  year =         "1992",
  CODEN =        "UNRED5",
  ISSN =         "0742-3136",
  bibdate =      "Mon May 27 14:15:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX review",
}

@InProceedings{Pike:1992:UNS,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Howard
                 Trickey and Phil Winterbottom",
  booktitle =    "Proceedings of the 5th workshop on ACM SIGOPS European
                 workshop: Models and paradigms for distributed systems
                 structuring",
  title =        "The Use of Name Spaces in {Plan 9}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "1--5",
  year =         "1992",
  DOI =          "https://doi.org/10.1145/506378.506413",
  bibdate =      "Fri Oct 18 18:11:54 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://www.informatik.hu-berlin.de/~mint/Library/Plan9/names.html",
  acknowledgement = ack-nhfb,
}

@InProceedings{Presotto:1992:PDS,
  author =       "D. Presotto and R. Pike and K. Thompson and H.
                 Trickey",
  booktitle =    "Proceedings of the USENIX Workshop on Micro-Kernels
                 and Other Kernel Architectures",
  title =        "{Plan 9}, a distributed system",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "31--37 (of 303)",
  year =         "1992",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems)",
  conflocation = "Seattle, WA, USA; 27-28 April 1992",
  corpsource =   "AT&T Bell Lab., Murray Hill, NJ, USA",
  keywords =     "distributed system; group name space; multi user
                 system; multiprogramming; network operating systems;
                 per process; Plan 9; uniform access",
  treatment =    "P Practical",
}

@TechReport{Gremeyer:1993:UIG,
  author =       "Petra Gremeyer and Axel T. Schreiner",
  title =        "It's ugly but it gets you there: a poor man's
                 installation guide for {Plan 9}",
  type =         "Technical report",
  number =       "31",
  institution =  "Fachbereich Mathematik\slash Informatik,
                 Universit{\"a}t Osnabr{\"u}ck",
  address =      "Osnabr{\"u}ck, Germany",
  pages =        "13",
  year =         "1993",
  bibdate =      "Tue Feb 12 14:32:07 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Pike:1993:HW,
  author =       "Rob Pike and Ken Thompson",
  title =        "Hello World",
  crossref =     "USENIX:1993:PWU",
  pages =        "43--50",
  month =        "Winter",
  year =         "1993",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 http://www.usenix.org/cgi-bin/sortbib.pl?-sA",
  URL =          "http://plan9.bell-labs.com/sys/doc/utf.pdf",
  abstract =     "Plan 9 from Bell Labs has recently been converted from
                 ASCII to an ASCII-compatible variant of the Unicode
                 Standard, a 16-bit character set. In this paper we
                 explain the reasons for the change, describe the
                 character set and representation we chose, and present
                 the programming models and software changes that
                 support the new text format. Although we stopped short
                 of full internationalization for example, system error
                 messages are in Unixese, not Japanese we believe Plan 9
                 is the first system to treat the representation of all
                 major languages on a uniform, equal footing throughout
                 all its software.",
  acknowledgement = ack-nhfb,
  keywords =     "16 Bit; 16-Bit character set; ASCII-compatible
                 variant; Character sets; Distributed OS text format;
                 Linguistics; Major languages; Network operating
                 systems; Plan 9; Programming; Programming models;
                 Software changes; Standards; Unicode",
  remark =       "This is the paper that first introduced the UTF-8
                 encoding of Unicode.",
}

@Article{Pike:1993:UNS,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Howard
                 Trickey and Phil Winterbottom",
  title =        "The Use of Name Spaces in {Plan 9}",
  journal =      j-OPER-SYS-REV,
  volume =       "27",
  number =       "2",
  pages =        "72--76",
  month =        apr,
  year =         "1993",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/names.html;
                 http://plan9.bell-labs.com/sys/doc/names.pdf;
                 http://plan9.bell-labs.com/sys/doc/names.ps",
  abstract =     "Plan 9 is a distributed system built at the Computing
                 Sciences Research Center of AT\&T Bell Laboratories
                 (now Lucent Technologies, Bell Labs) over the last few
                 years. Its goal is to provide a production-quality
                 system for software development and general computation
                 using heterogeneous hardware and minimal software. A
                 Plan 9 system comprises CPU and file servers in a
                 central location connected together by fast networks.
                 Slower networks fan out to workstation-class machines
                 that serve as user terminals. Plan 9 argues that given
                 a few carefully implemented abstractions it is possible
                 to produce a small operating system that provides
                 support for the largest systems on a variety of
                 architectures and networks. The foundations of the
                 system are built on two ideas: a per-process name space
                 and a simple message-oriented file system protocol.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems); C6120 (File
                 organisation)",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "Operating Systems Review",
  keywords =     "CPU; distributed system; fast networks; file
                 organisation; file servers; message-oriented file
                 system; network operating systems; operating;
                 per-process name space; Plan 9; production-quality
                 system; protocol; software development; system; user
                 terminals; workstation-class machines",
  treatment =    "P Practical",
}

@Article{Presotto:1993:MSPa,
  author =       "D. Presotto",
  title =        "Multiprocessor {STREAMS} for {Plan 9}",
  journal =      j-EUUG-NEWSLETTER,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "1993",
  CODEN =        "EONLE8",
  ISSN =         "1011-4211",
  bibdate =      "Fri Oct 18 18:50:27 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "European UNIX Systems User Group, EUUG Newsletter",
  xxnote =       "Check year: I found this citation, but an article of
                 the same title was published in 1990
                 \cite{Presotto:1990:MSP}.",
}

@InProceedings{Presotto:1993:MSPb,
  author =       "David Presotto",
  booktitle =    "USENIX Association. Proceedings of the Winter 1993
                 USENIX Conference",
  title =        "Multiprocessor Streams for {Plan 9}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "??--??",
  year =         "1993",
  bibdate =      "Fri Oct 18 19:00:54 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  bookpages =    "x + 530",
}

@InProceedings{Presotto:1993:ONP,
  author =       "D. Presotto and P. Winterbottom",
  booktitle =    "USENIX Association. Proceedings of the Winter 1993
                 USENIX Conference",
  title =        "The organization of networks in {Plan 9}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "271--280 (of x + 530)",
  year =         "1993",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/net/net.html;
                 http://plan9.bell-labs.com/sys/doc/net/net.pdf;
                 http://plan9.bell-labs.com/sys/doc/net/net.ps",
  abstract =     "In a distributed system networks are of paramount
                 importance. This paper describes the implementation,
                 design philosophy, and organization of network support
                 in Plan 9. Topics include network requirements for
                 distributed systems, our kernel implementation, network
                 naming, user interfaces, and performance. We also
                 observe that much of this organization is relevant to
                 current systems.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems)",
  conflocation = "San Diego, CA, USA; 25-29 Jan. 1993",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  keywords =     "distributed processing; distributed system;
                 distributed systems; kernel implementation; network
                 naming; network operating systems; network
                 requirements; network support; performance; user
                 interfaces",
  sponsororg =   "USENIX",
  treatment =    "P Practical",
}

@TechReport{Welch:1993:CTD,
  author =       "Brent Welch",
  title =        "A comparison of three distributed file system
                 architectures: {Vnode}, {Sprite}, and {Plan 9}",
  type =         "Technical report",
  number =       "CSL-93-18",
  institution =  "Xerox Corp., Palo Alto Research Center",
  address =      "Palo Alto, CA, USA",
  pages =        "18",
  month =        dec,
  year =         "1993",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "This paper compares three distributed file system
                 architectures: the vnode architecture found in SunOS,
                 the architecture used in the Sprite distributed file
                 system, and the architecture used in the Plan 9
                 distributed file system. The emphasis of the comparison
                 is on generalized support for remote access to file
                 system resources, which include peripheral devices and
                 IPC communication channels as well as regular files.
                 The vnode architecture is an evolution of structures
                 and interfaces used in the original, stand-alone UNIX
                 file system. The Sprite architecture provides a
                 network-wide shared name space and emphasizes a strong
                 separation of the internal naming and I/O interfaces to
                 easily provide remote access to a variety of resources.
                 The Plan 9 architecture relies on per-process name
                 spaces and is organized around a single file system
                 protocol, 9P, through which a variety of devices and
                 system services are accessed.",
  acknowledgement = ack-nhfb,
  keywords =     "Distributed parameter systems.",
}

@InProceedings{Zobel:1993:SLL,
  author =       "Justin Zobel and Alistair Moffat and Ron Sacks-Davis",
  title =        "Searching Large Lexicons for Partially Specified Terms
                 using Compressed Inverted Files",
  crossref =     "Agrawal:1993:VLD",
  pages =        "290--301",
  year =         "1993",
  bibdate =      "Fri Jan 12 07:50:33 MST 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 http://www.vldb.org/dblp/db/conf/vldb/vldb93.html",
  URL =          "http://www.vldb.org/dblp/db/conf/vldb/ZobelMS93.html",
  acknowledgement = ack-nhfb,
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/z/Zobel:Justin.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/m/Moffat:Alistair.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/s/Sacks=Davis:Ron.html",
  keywords =     "regular expressions; very large data bases; VLDB",
}

@TechReport{Kotsopoulos:1994:PSS,
  author =       "Steve Kotsopoulos",
  title =        "{Plan 9} System Setup Guide (Draft)",
  type =         "Technical report",
  institution =  "University of Toronto",
  address =      "Toronto, ON, Canada",
  day =          "9",
  month =        sep,
  year =         "1994",
  bibdate =      "Mon May 27 15:29:01 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://www.ecf.toronto.edu/plan9/9guide.ps",
  acknowledgement = ack-nhfb,
}

@InProceedings{Pike:1994:AUI,
  author =       "Rob Pike",
  title =        "{Acme}: a User Interface for Programmers",
  crossref =     "USENIX:1994:PWU",
  pages =        "223--234",
  year =         "1994",
  bibdate =      "Tue Feb 12 11:41:28 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/acme/acme.html;
                 http://plan9.bell-labs.com/sys/doc/acme/acme.pdf;
                 http://plan9.bell-labs.com/sys/doc/acme/acme.ps",
  abstract =     "A hybrid of window system, shell, and editor, Acme
                 gives text-oriented applications a clean, expressive,
                 and consistent style of interaction. Traditional window
                 systems support interactive client programs and offer
                 libraries of pre-defined operations such as pop-up
                 menus and buttons to promote a consistent user
                 interface among the clients. Acme instead provides its
                 clients with a fixed user interface and simple
                 conventions to encourage its uniform use. Clients
                 access the facilities of Acme through a file system
                 interface; Acme is in part a file server that exports
                 device-like files that may be manipulated to access and
                 control the contents of its windows. Written in a
                 concurrent programming language, Acme is structured as
                 a set of communicating processes that neatly subdivide
                 the various aspects of its tasks: display management,
                 input, file server, and so on.\par

                 Acme attaches distinct functions to the three mouse
                 buttons: the left selects text; the middle executes
                 textual commands; and the right combines context search
                 and file opening functions to integrate the various
                 applications and files in the system.\par

                 Acme works well enough to have developed a community
                 that uses it exclusively. Although Acme discourages the
                 traditional style of interaction based on typescript
                 windows teletypes its users find Acme's other services
                 render typescripts obsolete.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Presotto:1994:PDS,
  author =       "D. Presotto and R. Pike and K. Thompson and H.
                 Trickey",
  title =        "{Plan 9}: a Distributed System",
  crossref =     "Brazier:1994:DOS",
  pages =        "49--56",
  year =         "1994",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@MastersThesis{Rayome:1994:SSP,
  author =       "Jerry Kent Rayome",
  title =        "System security of the {Plan 9} distributed operating
                 system from {Bell Laboratories}",
  type =         "Thesis (M.S.)",
  school =       "California State University, Chico",
  address =      "Chico, CA, USA",
  pages =        "viii + 74",
  year =         "1994",
  bibdate =      "Sat Aug 17 16:33:52 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Computer security; Plan 9 (Computer system) --
                 Security measures.",
}

@Article{Welch:1994:CTD,
  author =       "B. Welch",
  title =        "A comparison of three distributed file system
                 architectures: {Vnode}, {Sprite}, and {Plan 9}",
  journal =      j-COMP-SYS,
  volume =       "7",
  number =       "2",
  pages =        "175--199",
  month =        "Spring",
  year =         "1994",
  CODEN =        "CMSYE2",
  ISSN =         "0895-6340",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6120 (File organisation); C6160B (Distributed DBMS);
                 C6150J (Operating systems); C6150N (Distributed
                 systems); C5640 (Protocols)",
  fjournal =     "Computing Systems",
  keywords =     "9; 9P file system; devices; distributed databases;
                 distributed file system architectures; file
                 organisation; file system resources; I/O; interfaces;
                 internal naming; IPC communication channels;
                 network-wide shared name space; per-process name
                 spaces; peripheral; Plan; procedure calls; protocol;
                 protocols; remote; remote access; Sprite; SunOS; system
                 services; telecommunication channels; Unix; UNIX file
                 system; vnode",
  treatment =    "G General Review; P Practical",
}

@InProceedings{Winterbottom:1994:ADB,
  author =       "Philip Winterbottom",
  title =        "{ACID}: a Debugger based on a Language",
  crossref =     "USENIX:1994:PWU",
  pages =        "??--??",
  year =         "1994",
  bibdate =      "Tue Feb 12 11:44:28 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/acidpaper.html;
                 http://plan9.bell-labs.com/sys/doc/acidpaper.pdf;
                 http://plan9.bell-labs.com/sys/doc/acidpaper.ps",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1995:APH,
  author =       "Anonymous",
  title =        "{AT\&T} plans to hold the line and maintain tight
                 controls on modifications to its new {Plan 9} operating
                 system",
  journal =      j-PC-WEEK,
  volume =       "12",
  number =       "30",
  pages =        "21--??",
  month =        jul,
  year =         "1995",
  ISSN =         "0740-1604",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "PC Week",
}

@Article{Anonymous:1995:WGPa,
  author =       "Anonymous",
  title =        "What's {GNU}?: {Plan 9} (part 1 of 2)",
  journal =      j-LINUX-J,
  volume =       "11",
  pages =        "??--??",
  month =        mar,
  year =         "1995",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue11/index.html;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://www.linuxjournal.com/issue11/gnu11.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:1995:WGPb,
  author =       "Anonymous",
  title =        "What's {GNU}?: {Plan 9} (part 2 of 2)",
  journal =      j-LINUX-J,
  volume =       "12",
  pages =        "??--??",
  month =        apr,
  year =         "1995",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://www.linuxjournal.com/issue12/index.html;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://www.linuxjournal.com/issue12/gnu12.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Pike:1995:PBL,
  author =       "Rob Pike and Dave Presotto and Sean Dorward and Bob
                 Flandrena and Ken Thompson and Howard Trickey and Phil
                 Winterbottom",
  title =        "{Plan 9} from {Bell Labs}",
  journal =      j-COMP-SYS,
  volume =       "8",
  number =       "3",
  pages =        "221--254",
  month =        "Summer",
  year =         "1995",
  CODEN =        "CMSYE2",
  ISSN =         "0895-6340",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/9.html;
                 http://plan9.bell-labs.com/sys/doc/9.pdf;
                 http://plan9.bell-labs.com/sys/doc/9.ps",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems); C6120 (File organisation);
                 C5640 (Protocols)",
  corpsource =   "AT&T Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "Computing Systems",
  keywords =     "9P; Bell Labs; cheap modern microcomputers;
                 environment; file system; multiprocessors; naming
                 services; naming system; network level protocol;
                 operating systems (computers); Plan 9; private
                 computing; protocols; remote systems; shared memory;
                 shared resources; system; time-sharing systems;
                 timesharing; UNIX; workstations",
  treatment =    "P Practical",
}

@Article{Robbins:1995:WGPa,
  author =       "Arnold Robbins",
  title =        "What's {GNU}? [{Plan 9 Part I}]",
  journal =      j-LINUX-J,
  volume =       "10",
  pages =        "??--??",
  month =        mar,
  year =         "1995",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Nov 16 11:13:05 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://interactive.linuxjournal.com/article/1012",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Robbins:1995:WGPb,
  author =       "Arnold Robbins",
  title =        "What's {GNU}? {Plan 9 Part II}",
  journal =      j-LINUX-J,
  volume =       "10",
  pages =        "??--??",
  month =        apr,
  year =         "1995",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://interactive.linuxjournal.com/article/0062;
                 http://portal.acm.org/citation.cfm?id=324810",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:1996:CEU,
  author =       "Anonymous",
  title =        "Cutting Edge --- Use {DMI} To Reduce Desktop Support
                 Costs Summer School for {IS} Professionals. {Java},
                 {Java} Everywhere. First {Plan 9}, Now {Inferno}. {Go}
                 Beyond {RAID-5}. {Downsizing} of {IS} Slows in
                 96. {How} To Link Relational and Object
                 Databases. {Brace} Yourself for a Price Hike for {ISDN}
                 Service",
  journal =      j-DATAMATION,
  volume =       "42",
  number =       "11",
  pages =        "10--??",
  month =        "????",
  year =         "1996",
  CODEN =        "DTMNAT",
  ISSN =         "0011-6963",
  bibdate =      "Fri Aug 16 13:12:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Datamation",
}

@Article{Anonymous:1996:NPS,
  author =       "Anonymous",
  title =        "A New Plan for Scalable Distributed Computing:
                 {AT\&T}'s {Plan 9}",
  journal =      j-DATA-COMMUNICATIONS,
  volume =       "25",
  number =       "1",
  pages =        "106--??",
  day =          "1",
  month =        jan,
  year =         "1996",
  CODEN =        "DACODM",
  ISSN =         "0363-6399",
  bibdate =      "Mon May 27 14:15:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  acknowledgement = ack-nhfb,
  fjournal =     "Data communications",
}

@Article{Anonymous:1996:PMM,
  author =       "Anonymous",
  title =        "{Plan 9}: Multi-media Mobile {OS}",
  journal =      j-SECURITY,
  volume =       "33",
  number =       "3",
  pages =        "64--??",
  month =        "????",
  year =         "1996",
  CODEN =        "SECUEU",
  ISSN =         "0890-8826",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Security",
}

@Article{Anonymous:1996:POS,
  author =       "Anonymous",
  title =        "{Plan 9}: From Outer Space to Kernel Space",
  journal =      j-IEEE-SOFTWARE,
  volume =       "13",
  number =       "3",
  pages =        "98--??",
  month =        may,
  year =         "1996",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
}

@Article{Bailey:1996:PA,
  author =       "David Bailey",
  title =        "{Plan 9} from {AT\&T}",
  journal =      j-UNIX-REVIEW,
  volume =       "14",
  number =       "1",
  pages =        "27--28",
  day =          "1",
  month =        jan,
  year =         "1996",
  CODEN =        "UNRED5",
  ISSN =         "0742-3136",
  bibdate =      "Tue Mar 11 22:37:17 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX review",
}

@Article{Bailey:1996:PUP,
  author =       "David Bailey",
  title =        "{PC UNIX} --- {Plan 9} From {AT\&T}",
  journal =      j-UNIX-REVIEW,
  volume =       "14",
  number =       "1",
  pages =        "27--??",
  month =        "????",
  year =         "1996",
  CODEN =        "UNRED5",
  ISSN =         "0742-3136",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX review",
}

@Article{Fennessy:1996:PBM,
  author =       "Quentin Fennessy",
  title =        "{Plan 9}: Bad Movie, Good Operating System",
  journal =      j-COMPUTER,
  volume =       "29",
  number =       "5",
  pages =        "117--119, 121--123",
  month =        may,
  year =         "1996",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon May 27 15:07:07 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Fillinich:1996:PFF,
  author =       "Paul Fillinich",
  title =        "{Plan 9}: Feature Film to Feature-Rich {OS}",
  journal =      j-BYTE,
  volume =       "21",
  number =       "3",
  pages =        "143--144",
  day =          "1",
  month =        mar,
  year =         "1996",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280",
  ISSN-L =       "0360-5280",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 UnCover library database",
  abstract =     "{Plan 9} from Bell Labs is a distributed and fairly
                 portable operating system. It could be playing soon in
                 a niche near you.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems); C6150N (Distributed
                 systems software); C6110J (Object-oriented
                 programming)",
  fjournal =     "BYTE Magazine",
  keywords =     "distributed operating system; file; network operating
                 systems; network software; object oriented;
                 object-oriented programming; operating systems
                 (computers); OS; Plan 9; portable distributed system;
                 programming; server system; software portability",
  treatment =    "P Practical",
}

@Article{Jacob:1996:AMD,
  author =       "Bruce L. Jacob and Peter M. Chen and Seth R. Silverman
                 and Trevor N. Mudge",
  title =        "An Analytical Model for Designing Memory Hierarchies",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "45",
  number =       "10",
  pages =        "1180--1194",
  month =        oct,
  year =         "1996",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/12.543711",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 19:47:14 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Simulates a storage hierarchy similar to that of Plan
                 9 \cite{Pike:1990:PBLb,Quinlan:1991:CWF}. See comment
                 \cite{Jacob:1997:CAM}.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=543711",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Korzeniowski:1996:NPO,
  author =       "Paul Korzeniowski",
  title =        "In the News: {Plan 9}: From Outer Space to Kernel
                 Space",
  journal =      j-IEEE-SOFTWARE,
  volume =       "13",
  number =       "3",
  pages =        "105--105",
  month =        may,
  year =         "1996",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Fri Aug 16 13:12:40 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
}

@Book{Pike:1996:PPMa,
  author =       "Rob Pike and others",
  title =        "{Plan 9} Programmer's Manual: Volume 1: The Manuals",
  publisher =    pub-HB,
  address =      pub-HB:adr,
  pages =        "????",
  year =         "1996",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Mon May 27 15:10:24 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/plan9/vol1.html",
  acknowledgement = ack-nhfb,
}

@Book{Pike:1996:PPMb,
  author =       "Rob Pike and others",
  title =        "{Plan 9} Programmer's Manual: Volume 2: The
                 Documents",
  publisher =    pub-HB,
  address =      pub-HB:adr,
  pages =        "????",
  year =         "1996",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Sat Mar 22 15:31:21 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/plan9/vol2.html",
  acknowledgement = ack-nhfb,
}

@Article{Jacob:1997:CAM,
  author =       "B. L. Jacob and P. M. Chen and T. N. Mudge and S. R.
                 Silverman",
  title =        "A comment on {``An analytical model for designing
                 memory hierarchies''}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "46",
  number =       "10",
  pages =        "1151--1151",
  month =        oct,
  year =         "1997",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/12.628401",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 10:08:49 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See \cite{Jacob:1996:AMD}.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=628401",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Kuehl:1997:NGP,
  author =       "B. Kuehl",
  title =        "{Die naechste Generation --- Plan 9}",
  journal =      "{Offene Systeme}",
  volume =       "12",
  pages =        "16--24",
  year =         "1997",
  ISSN =         "",
  LCCN =         "",
  bibdate =      "Sat Oct 28 16:30:35 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Proceedings of German UNIX User Group Jahrestagung 13
                 -- September 1997: Wiesbaden, Germany.",
  acknowledgement = ack-nhfb,
}

@Manual{Lucent:1997:LPL,
  title =        "The {Limbo} Programming Language",
  organization = "Lucent Technologies Inc",
  year =         "1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://inferno.lucent.com/inferno/",
  abstract =     "Limbo is a programming language intended for
                 applications running distributed systems on small
                 computers. It supports modular programming, strong type
                 checking at compile- and run-time, interprocess
                 communication over typed channels, automatic garbage
                 collection, and simple abstract data types. It is
                 designed for safe execution even on small machines
                 without hardware memory protection. In its initial
                 implementation for the Inferno operating system, object
                 programs generated by the Limbo compiler run using an
                 interpreter for a fixed virtual machine. Inferno and
                 its accompanying virtual machine run either stand-alone
                 on bare hardware or as an application under
                 conventional operating systems like Unix, Windows 95,
                 Windows NT, and Plan 9. For several architectures,
                 including Intel x86 and MIPS, Limbo object programs are
                 transformed on-the-fly into instructions for the
                 underlying hardware.",
}

@Book{Skocovski:1998:UPP,
  author =       "Ludek Skocovski",
  title =        "{UNIX, POSIX, Plan 9}",
  publisher =    "????",
  address =      "Brno, Czech Republic",
  pages =        "394",
  year =         "1998",
  ISBN =         "80-902612-0-5",
  ISBN-13 =      "978-80-902612-0-4",
  LCCN =         "",
  bibdate =      "Sat Oct 28 16:43:55 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "In Czech.",
  acknowledgement = ack-nhfb,
}

@Book{Bischof:1999:NPK,
  author =       "Hans-Peter Bischof and others",
  title =        "{Das Netzbetriebssystem Plan 9: Konzepte und
                 Programmierung}",
  publisher =    pub-HANSER,
  address =      pub-HANSER:adr,
  pages =        "viii + 242",
  year =         "1999",
  ISBN =         "3-446-18881-9",
  ISBN-13 =      "978-3-446-18881-5",
  LCCN =         "????",
  bibdate =      "Sat Oct 28 16:41:42 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@Book{Kernighan:1999:PP,
  author =       "Brian W. Kernighan and Rob Pike",
  booktitle =    "The Practice of Programming",
  title =        "The Practice of Programming",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xii + 267",
  year =         "1999",
  ISBN =         "0-201-61586-X",
  ISBN-13 =      "978-0-201-61586-9",
  LCCN =         "QA76.6 .K48 1999",
  bibdate =      "Fri Jan 21 06:58:06 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathcw.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$24.95, CAN\$37.50",
  URL =          "http://cm.bell-labs.com/cm/cs/tpop/code.html;
                 http://cseng.aw.com/bookdetail.qry?ISBN=0-201-61586-X&ptype=0;
                 http://tpop.awl.com",
  acknowledgement = ack-nhfb,
  remark =       "Section 9.2 discusses regular expressions.",
  shorttableofcontents = "Preface \\
                 1: Style / 1 \\
                 2: Algorithms and Data Structures / 29 \\
                 3: Design and Implementation / 61 \\
                 4: Interfaces / 85 \\
                 5: Debugging / 117 \\
                 6: Testing / 139 \\
                 7: Performance / 165 \\
                 8: Portability / 189 \\
                 9: Notation / 215 \\
                 Epilogue / 247 \\
                 Appendix: Collected Rules / 249 \\
                 Index / 253",
  tableofcontents = "Preface / ix \\
                 1: Style / 1 \\
                 1.1 Names / 3 \\
                 1.2 Expressions and Statements / 6 \\
                 1.3 Consistency and Idioms / 10 \\
                 1.4 Function Macros / 17 \\
                 1.5 Magic Numbers / 19 \\
                 1.6 Comments / 23 \\
                 1.7 Why Bother? / 27 \\
                 2: Algorithms and Data Structures / 29 \\
                 2.1 Searching / 30 \\
                 2.2 Sorting / 32 \\
                 2.3 Libraries / 34 \\
                 2.4 A Java Quicksort / 37 \\
                 2.5 O-Notation / 40 \\
                 2.6 Growing Arrays / 41 \\
                 2.7 Lists / 44 \\
                 2.8 Trees / 50 \\
                 2.9 Hash Tables / 55 \\
                 2.10 Summary / 58 \\
                 3: Design and Implementation / 61 \\
                 3.1 The Markov Chain Algorithm / 62 \\
                 3.2 Data Structure Alternatives / 64 \\
                 3.3 Building the Data Structure in C / 65 \\
                 3.4 Generating Output / 69 \\
                 3.5 Java / 71 \\
                 3.6 C++ / 76 \\
                 3.7 Awk and Perl / 78 \\
                 3.8 Performance / 80 \\
                 3.9 Lessons / 82 \\
                 4: Interfaces / 85 \\
                 4.1 Comma-Separated Values / 86 \\
                 4.2 A Prototype Library / 87 \\
                 4.3 A Library for Others / 91 \\
                 4.4 A C++ Implementation / 99 \\
                 4.5 Interface Principles / 103 \\
                 4.6 Resource Management / 106 \\
                 4.7 Abort, Retry. Fail? / 109 \\
                 4.8 User Interfaces / 113 \\
                 5: Debugging / 117 \\
                 5.1 Debuggers / 118 \\
                 5.2 Good Clues, Easy Bugs / 119 \\
                 5.3 No Clues, Hard Bugs / 123 \\
                 5.4 Last Resorts / 127 \\
                 5.5 Non-reproducible Bugs / 130 \\
                 5.6 Debugging Tools / 131 \\
                 5.7 Other People's Bugs / 135 \\
                 5.8 Summary / 136 \\
                 6: Testing / 139 \\
                 6.1 Test as You Write the Code / 140 \\
                 6.2 Systematic Testing / 145 \\
                 6.3 Test Automation / 149 \\
                 6.4 Test Scaffolds / 151 \\
                 6.5 Stress Tests / 155 \\
                 6.6 Tips for Testing / 158 \\
                 6.7 Who Does the Testing? / 159 \\
                 6.8 Testing the Markov Program / 160 \\
                 6.9 Summary / 162 \\
                 7: Performance / 165 \\
                 7.1 A Bottleneck / 166 \\
                 7.2 Timing and Profiling / 171 \\
                 7.3 Strategies for Speed / 175 \\
                 7.4 Tuning the Code / 178 \\
                 7.5 Space Efficiency / 182 \\
                 7.6 Estimation / 184 \\
                 7.7 Summary / 187 \\
                 8: Portability / 189 \\
                 8.1 Language / 190 \\
                 8.2 Headers and Libraries / 196 \\
                 8.3 Program Organization / 198 \\
                 8.4 Isolation / 202 \\
                 8.5 Data Exchange / 203 \\
                 8.6 Byte Order / 204 \\
                 8.7 Portability and Upgrade / 207 \\
                 8.8 Internationalization / 209 \\
                 8.9 Summary / 212 \\
                 9: Notation / 215 \\
                 9.1 Formatting Data / 216 \\
                 9.2 Regular Expressions / 222 \\
                 9.3 Programmable Tools / 228 \\
                 9.4 Interpreters, Compilers, and Virtual Machines / 231
                 \\
                 9.5 Programs that Write Programs / 237 \\
                 9.6 Using Macros to Generate Code / 240 \\
                 9.7 Compiling on the Fly / 241 \\
                 Epilogue / 247 \\
                 Appendix: Collected Rules / 249 \\
                 Index / 253",
}

@Article{Kernighan:1999:REL,
  author =       "Brian W. Kernighan and Rob Pike",
  title =        "Regular Expressions: Languages, Algorithms, Software",
  journal =      j-DDJ,
  volume =       "24",
  number =       "4",
  pages =        "19--22",
  month =        apr,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Mar 3 06:30:11 MST 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://www.ddj.com/ftp/1999/1999_04/regexp.txt;
                 http://www.ddj.com/ftp/1999/1999_04/regexp.zip",
  abstract =     "Regular expressions, one of the most broadly
                 applicable of programmer's tools, provide a compact and
                 expressive notation for describing patterns of text.
                 They are also algorithmically interesting, easy to
                 implement, and highly useful. Additional resources
                 include regexp.txt (listings) and regexp.zip (source
                 code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@TechReport{Anonymous:19xx:IPD,
  author =       "Anonymous",
  title =        "Installing the {Plan 9} Distribution",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "????",
  year =         "19xx",
  bibdate =      "Sat Oct 28 16:39:38 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.att.com/plan9/doc/install.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Anonymous:19xx:P,
  author =       "Anonymous",
  title =        "{Plan 9}",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "????",
  year =         "19xx",
  bibdate =      "Sat Oct 28 16:39:38 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.att.com/plan9/index.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Anonymous:19xx:PD,
  author =       "Anonymous",
  title =        "{Plan 9} Distribution",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "????",
  year =         "19xx",
  bibdate =      "Sat Oct 28 16:39:38 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.att.com/plan9/distrib.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Anonymous:19xx:PDE,
  author =       "Anonymous",
  title =        "{Plan 9} Distribution Errata List",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "????",
  year =         "19xx",
  bibdate =      "Sat Oct 28 16:39:39 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.att.com/plan9/errata.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Duff:19xx:RSP,
  author =       "Tom Duff",
  title =        "{Rc} --- A Shell for {Plan 9} and {UNIX} Systems",
  type =         "Computing Science Technical Report",
  number =       "158g",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "14",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Rc is a command interpreter for Plan 9. It also runs
                 on a variety of traditional systems, including SunOS
                 and the Tenth Edition. It provides similar facilities
                 to Bourne's {\tt /bin/sh}, with some small additions
                 and mostly less idiosyncratic syntax. This paper
                 introduces {\tt rc}'s highlights with numerous
                 examples, and discusses its design and why it varies
                 from Bourne's.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@Misc{Pike:19xx:HUP,
  author =       "Rob Pike",
  title =        "How to Use the {Plan 9} {C} Compiler",
  howpublished = "Web document",
  year =         "19xx",
  bibdate =      "Sat Jan 06 06:14:58 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://doc.cat-v.org/plan_9/4th_edition/papers/comp",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered.",
}

@TechReport{Pike:19xx:PBL,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Howard
                 Trickey",
  title =        "{Plan 9 from Bell Labs}",
  type =         "Computing Science Technical Report",
  number =       "158b",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "9",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Plan 9 is a distributed computing environment. It is
                 assembled from separate machines acting as CPU servers,
                 file servers, and terminals. The pieces are connected
                 by a single file-oriented protocol and local name space
                 operations. By building the system from distinct,
                 specialised components rather than from similar
                 general-purpose components, Plan 9 achieves levels of
                 efficiency, security, simplicity, and reliability
                 seldom realised in other distributed systems. This
                 paper discusses the building blocks, interconnections,
                 and conventions of Plan 9.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Pike:19xx:PEP,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Howard
                 Trickey and Tom Duff and Gerard Holzmann",
  title =        "{Plan 9}: The Early Papers",
  type =         "Computing Science Technical Report",
  number =       "158a",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "1",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This report reprints half a dozen early but still
                 current papers on Plan 9 from Bell Labs, a distributed
                 computing system being developed at the Computing
                 Science Research Center of AT\&T Bell Laboratories.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Pike:19xx:PSW,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Gerard
                 Holzmann",
  title =        "Process Sleep and Wakeup on a Shared-memory
                 Multiprocessor",
  type =         "Computing Science Technical Report",
  number =       "158f",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "6",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "The problem of enabling a `sleeping' process on a
                 shared-memory multiprocessor is a difficult one,
                 especially if the process is to be awakened by an
                 interrupt-time event. We present here the code for
                 sleep and wakeup primitives that we use in our
                 multiprocessor system. The code has been exercised by
                 months of active use and by a verification system.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Pike:19xx:PWS,
  author =       "Rob Pike",
  title =        "$ 8 1 \over 2 $, the {Plan 9} Window System",
  type =         "Computing Science Technical Report",
  number =       "158d",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "9",
  day =          "??",
  month =        "??",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "The Plan 9 window system, $ 8 1 \over 2 $ , is a
                 modest-sized program of novel design. It provides ASCII
                 I/O and bitmap graphic services to both local and
                 remote client programs by offering a multiplexed file
                 service to those clients. It serves traditional UNIX
                 files like {\tt /dev/tty} as well as more unusual ones
                 that provide access to the mouse and the raw screen.
                 Bitmap graphics operations are provided by serving a
                 file called {\tt /dev/bitblt} that interprets client
                 messages to perform raster operations. The file service
                 that $ 8 1 \over 2 $ offers its clients is identical to
                 that it uses for its own implementation, so it is
                 fundamentally no more than a multiplexer. This
                 architecture has some rewarding symmetries and can be
                 implemented compactly; indeed $ 8 1 \over 2 $ is
                 considerably {\em smaller\/} than most of its
                 clients.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Presotto:19xx:MSP,
  author =       "David Leo Presotto",
  title =        "Multiprocessor Streams for {Plan 9}",
  type =         "Computing Science Technical Report",
  number =       "158e",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "10",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This paper describes an implementation of Streams for
                 the Plan 9 kernel, a multi-threaded, multiprocessor
                 kernel with a system call interface reminiscent of
                 UNIX. Rather than port Dennis Ritchie's Streams to Plan
                 9, we changed the abstraction to fit more naturally
                 into the new environment. The result is a mechanism
                 that has similar performance and is internally easier
                 to program",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Presotto:19xx:PDS,
  author =       "Dave Presotto and Rob Pike and Ken Thompson and Howard
                 Trickey",
  title =        "{Plan 9}, A Distributed System",
  type =         "Computing Science Technical Report",
  number =       "158c",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "7",
  day =          "??",
  month =        "??",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Plan 9 is a computing environment physically
                 distributed across many machines. The distribution
                 itself is transparent to most programs giving both
                 users and administrators wide latitude in configuring
                 the topology of the environment. Two properties make
                 this possible: a per process group name space and
                 uniform access to all resources by representing them as
                 files.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@TechReport{Ritchie:19xx:IHQ,
  author =       "Dennis Ritchie",
  title =        "An incomplete history of the {QED} Text Editor",
  type =         "Report",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  year =         "19xx",
  bibdate =      "Tue Mar 27 15:10:56 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/who/dmr/qed.html",
  acknowledgement = ack-nhfb,
  keywords =     "regular expressions; Unicode; UTF-8",
}

@TechReport{Thompson:19xx:NCC,
  author =       "Ken Thompson",
  title =        "A New {C} Compiler",
  type =         "Computing Science Technical Report",
  number =       "158h",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "12",
  day =          "??",
  month =        "????",
  year =         "19xx",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This paper describes yet another series of C
                 compilers. These compilers were developed over the last
                 several years and are now in use on Plan 9. These
                 compilers are experimental in nature and were developed
                 to try out new ideas. Some of the ideas were good and
                 some not so good.",
  acknowledgement = ack-nhfb,
  URL =          "http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compiler.pdf",
  remark =       "Undated and unnumbered. Number taken from filename.",
}

@Misc{Thompson:19xx:PCC,
  author =       "Ken Thompson",
  title =        "{Plan 9} {C} Compilers",
  howpublished = "Web site",
  year =         "19xx",
  bibdate =      "Sat Jan 06 06:18:33 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://doc.cat-v.org/plan_9/4th_edition/papers/compiler",
  abstract =     "This paper describes the overall structure and
                 function of the Plan 9 C compilers. A more detailed
                 implementation document for any one of the compilers is
                 yet to be written.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered. Architectures covered are: AMD
                 29000, ARM 7500, DEC Alpha, Intel 386, Intel 960, MIPS,
                 Motorola 68000, Motorola 68020, Power PC, and SPARC.
                 From the last line: ``Originally appeared, in a different
                 form, in Proceedings of the Summer 1990 UKUUG
                 Conference, pp. 41-51, London, 1990.''",
}

@Misc{Thompson:19xx:BSP,
  author =       "Ken Thompson and Geoff Collyer",
  title =        "The 64-bit Standalone {Plan 9} File Server",
  howpublished = "Web site.",
  year =         "19xx",
  bibdate =      "Sat Jan 06 06:26:17 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://doc.cat-v.org/plan_9/4th_edition/papers/fs/",
  abstract =     "This paper is a revision of Thompson's The Plan 9 File
                 Server, and describes the structure and the operation
                 of the new 64-bit Plan 9 file servers. Some specifics
                 apply to the 32-bit Plan 9 file server Emelie, which
                 code is also the basis for the user level file server
                 kfs.\par

                 Collyer recently created a 64-bit version of Thompson's
                 32-bit file server, updating all file offsets, sizes
                 and block numbers to 64 bits. In addition, triple- and
                 quadruple-indirect blocks were implemented. File name
                 components were extended from 27 to 55 bytes. Further
                 work is planned, notably improved peripheral and
                 protocol support.",
  acknowledgement = ack-nhfb,
  remark =       "Undated and unnumbered.",
}

@TechReport{Anonymous:2000:IPD,
  author =       "Anonymous",
  title =        "Installing the {Plan 9} Distribution",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  year =         "2000",
  bibdate =      "Tue Feb 12 14:21:55 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/install.html;
                 http://plan9.bell-labs.com/sys/doc/install.pdf;
                 http://plan9.bell-labs.com/sys/doc/install.ps",
  acknowledgement = ack-nhfb,
}

@TechReport{Anonymous:2000:VP,
  author =       "Anonymous",
  title =        "The Various Ports",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "5",
  year =         "2000",
  bibdate =      "Tue Feb 12 14:23:11 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Comments about the architectures supported by Plan
                 9.",
  URL =          "http://plan9.bell-labs.com/sys/doc/port.html;
                 http://plan9.bell-labs.com/sys/doc/port.pdf;
                 http://plan9.bell-labs.com/sys/doc/port.ps",
  abstract =     "This document collects comments about the various
                 architectures supported by Plan 9. The system tries to
                 hide most of the differences between machines, so the
                 machines as seen by a Plan 9 user look different from
                 how they are perceived through commercial software.
                 Also, because we are a small group, we couldn't do
                 everything: exploit every optimization, support every
                 model, drive every device. This document records what
                 we have done. The first section discusses the
                 compiler/assembler/loader suite for each machine. The
                 second talks about the operating system implemented on
                 each of the various machines.",
  acknowledgement = ack-nhfb,
}

@TechReport{Cox:2000:GSP,
  author =       "Russ Cox",
  title =        "Getting Started with {Plan 9}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  year =         "2000",
  bibdate =      "Tue Feb 12 11:28:37 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/start.html;
                 http://plan9.bell-labs.com/sys/doc/start.pdf;
                 http://plan9.bell-labs.com/sys/doc/start.ps",
  acknowledgement = ack-nhfb,
}

@TechReport{Duff:2000:RPS,
  author =       "Tom Duff",
  title =        "{\tt rc} --- The {Plan 9} Shell",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "16",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:52:25 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/rc.html;
                 http://plan9.bell-labs.com/sys/doc/rc.pdf;
                 http://plan9.bell-labs.com/sys/doc/rc.ps",
  abstract =     "{\tt Rc} is a command interpreter for Plan 9 that
                 provides similar facilities to UNIX's Bourne shell,
                 with some small additions and less idiosyncratic
                 syntax. This paper uses numerous examples to describe
                 {\tt rc}'s features, and contrasts {\tt rc} with the
                 Bourne shell, a model that many readers will be
                 familiar with.",
  acknowledgement = ack-nhfb,
}

@TechReport{Flandrena:2000:PM,
  author =       "Bob Flandrena",
  title =        "{Plan 9} {Mkfiles}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "7",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:34:51 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/mkfiles.html;
                 http://plan9.bell-labs.com/sys/doc/mkfiles.pdf;
                 http://plan9.bell-labs.com/sys/doc/mkfiles.ps",
  abstract =     "Every Plan 9 source directory contains a file, called
                 mkfile, specifying the rules for building the
                 executable or library that is the product of the
                 directory. Mk(1) interprets the rules in the file,
                 calculates the dependencies, and executes an rc(1)
                 script to construct the product. If necessary
                 components are supplied by neighboring directories or
                 sub-directories, the mkfiles in those directories are
                 first executed to build the components before the local
                 construction proceeds.\par

                 Most application source directories produce one of four
                 types of product: a single executable, several
                 executables, a local library, or a system library. Four
                 generic mkfiles define the normal rules for building
                 each type of product. The simplest mkfiles need only
                 list the components and include the appropriate generic
                 mkfile to do the work. More complex mkfiles may supply
                 additional rules to augment, modify, or override the
                 generic rules.",
  acknowledgement = ack-nhfb,
}

@TechReport{Glick:2000:GLP,
  author =       "Paul Glick",
  title =        "Guide to the {\tt lp} Printer Spooler",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "8",
  year =         "2000",
  bibdate =      "Tue Feb 12 12:32:53 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/lp.html;
                 http://plan9.bell-labs.com/sys/doc/lp.pdf;
                 http://plan9.bell-labs.com/sys/doc/lp.ps",
  abstract =     "{\tt Lp} is a collection of programs used to provide
                 an easy-to-use interface for printing a variety of
                 document types on a variety of printers. {\tt Lp} is
                 the glue that connects various document language
                 translators and printer communication programs together
                 so that the users may have a consistent view of
                 printers. Most of the glue is shell script, which can
                 be easily modified. The user need not specify options
                 to get sensible output in most cases. {\tt Lp} is
                 described here so that others may make additions and
                 changes.",
  acknowledgement = ack-nhfb,
}

@TechReport{Holzmann:2000:US,
  author =       "Gerard J. Holzmann",
  title =        "Using {SPIN}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "27",
  year =         "2000",
  bibdate =      "Tue Feb 12 14:24:40 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/spin.html;
                 http://plan9.bell-labs.com/sys/doc/spin.pdf;
                 http://plan9.bell-labs.com/sys/doc/spin.ps",
  abstract =     "SPIN can be used for proving or disproving logical
                 properties of concurrent systems. To render the proofs,
                 a concurrent system is first modeled in a formal
                 specification language called PROMELA. The language
                 allows one to specify the behaviors of asynchronously
                 executing processes that may interact through
                 synchronous or asynchronous message passing, or through
                 direct access to shared variables.\par

                 System models specified in this way can be verified for
                 both safety and liveness properties. The specification
                 of general properties in linear time temporal logic is
                 also supported.\par

                 The first part of this manual discusses the basic
                 features of the specification language PROMELA. The
                 second part describes the verifier SPIN.",
  acknowledgement = ack-nhfb,
  keywords =     "PROMELA [Protocol Meta Language]; SPIN",
}

@TechReport{Hume:2000:MFP,
  author =       "Andrew G. Hume and Bob Flandrena",
  title =        "Maintaining Files on {Plan 9} with {Mk}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "14",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:35:41 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/mk.html;
                 http://plan9.bell-labs.com/sys/doc/mk.pdf;
                 http://plan9.bell-labs.com/sys/doc/mk.ps",
  abstract =     "{\tt Mk} is a tool for describing and maintaining
                 dependencies between files. It is similar to the UNIX
                 program make, but provides several extensions. {\tt
                 Mk}'s flexible rule specifications, implied dependency
                 derivation, and parallel execution of maintenance
                 actions are well-suited to the Plan 9 environment.
                 Almost all Plan 9 maintenance procedures are automated
                 using {\tt mk}.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Laurikari:2000:NTT,
  author =       "V. Laurikari",
  booktitle =    "{Seventh International Symposium on String Processing
                 and Information Retrieval, 2000. SPIRE 2000. 27--29
                 September 2000, A Curu{\~n}a, Spain. Proceedings}",
  title =        "{NFAs} with tagged transitions, their conversion to
                 deterministic automata and application to regular
                 expressions",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "181--187",
  year =         "2000",
  DOI =          "https://doi.org/10.1109/SPIRE.2000.878194",
  ISBN =         "0-7695-0746-8, 0-7695-0747-6 (case), 0-7695-0748-4
                 (microfiche)",
  ISBN-13 =      "978-0-7695-0746-0, 978-0-7695-0747-7 (case),
                 978-0-7695-0748-4 (microfiche)",
  LCCN =         "QA76.9.T48 I59 2000",
  bibdate =      "Tue Mar 27 15:05:43 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  bookpages =    "ix + 261",
}

@TechReport{Ossanna:2000:TUM,
  author =       "Joseph F. Ossanna and Brian W. Kernighan",
  title =        "Troff User's Manual",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "40",
  year =         "2000",
  bibdate =      "Tue Feb 12 14:26:42 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/troff.html;
                 http://plan9.bell-labs.com/sys/doc/troff.pdf;
                 http://plan9.bell-labs.com/sys/doc/troff.ps",
  abstract =     "{\tt Troff} and {\tt nroff} are text processors that
                 format text for typesetter- and typewriter-like
                 terminals, respectively. They accept lines of text
                 interspersed with lines of format control information
                 and format the text into a printable, paginated
                 document having a user-designed style. {\tt Troff} and
                 {\tt nroff} offer unusual freedom in document styling:
                 arbitrary style headers and footers; arbitrary style
                 footnotes; multiple automatic sequence numbering for
                 paragraphs, sections, etc; multiple column output;
                 dynamic font and point-size control; arbitrary
                 horizontal and vertical local motions at any point; and
                 a family of automatic overstriking, bracket
                 construction, and line-drawing functions.\par

                 {\tt Troff} produces its output in a device-independent
                 form, although parameterized for a specific device;
                 {\tt troff} output must be processed by a driver for
                 that device to produce printed output.\par

                 {\tt Troff} and {\tt nroff} are highly compatible with
                 each other and it is almost always possible to prepare
                 input acceptable to both. Conditional input is provided
                 to enable the user to embed input expressly destined
                 for either program. {\tt Nroff} can prepare output
                 directly for a variety of terminal types and is capable
                 of utilizing the full resolution of each terminal. {\tt
                 Nroff} is the same program as {\tt troff} ; in fact, on
                 Plan 9 {\tt nroff} is a shell script that calls {\tt
                 troff} with the {\tt N} argument.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:HUP,
  author =       "Rob Pike",
  title =        "How to Use the {Plan 9 C} Compiler",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "14",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:33:22 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/comp.html;
                 http://plan9.bell-labs.com/sys/doc/comp.pdf;
                 http://plan9.bell-labs.com/sys/doc/comp.ps",
  abstract =     "The C compiler on Plan 9 is a wholly new program; in
                 fact it was the first piece of software written for
                 what would eventually become Plan 9 from Bell Labs.
                 Programmers familiar with existing C compilers will
                 find a number of differences in both the language the
                 Plan 9 compiler accepts and in how the compiler is
                 used.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:HWL,
  author =       "Rob Pike and Ken Thompson",
  title =        "Hello World or {K$ \alpha $$ \lambda$$ \eta $$ \mu$
                 {\' {} $ \epsilon$}$ \rho$$ \alpha $} {$ \kappa $ o$
                 \sigma $$ \mu$$ \epsilon $} or \ldots{}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  year =         "2000",
  bibdate =      "Tue Feb 12 12:26:37 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Originally appeared, in a slightly different form, in
                 Proc. of the Winter 1993 USENIX Conf., pp. 43--50, San
                 Diego",
  URL =          "http://plan9.bell-labs.com/sys/doc/utf.html;
                 http://plan9.bell-labs.com/sys/doc/utf.pdf;
                 http://plan9.bell-labs.com/sys/doc/utf.ps",
  abstract =     "Plan 9 from Bell Labs has recently been converted from
                 ASCII to an ASCII-compatible variant of the Unicode
                 Standard, a 16-bit character set. In this paper we
                 explain the reasons for the change, describe the
                 character set and representation we chose, and present
                 the programming models and software changes that
                 support the new text format. Although we stopped short
                 of full internationalization for example, system error
                 messages are in Unixese, not Japanese we believe Plan 9
                 is the first system to treat the representation of all
                 major languages on a uniform, equal footing throughout
                 all its software.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:LFNa,
  author =       "Rob Pike",
  title =        "Lexical File Names in {Plan 9}, or Getting Dot-Dot
                 Right",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "11",
  year =         "2000",
  bibdate =      "Tue Feb 12 12:15:44 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/lexnames.html;
                 http://plan9.bell-labs.com/sys/doc/lexnames.pdf;
                 http://plan9.bell-labs.com/sys/doc/lexnames.ps;
                 https://9p.io/sys/doc/lexnames.html",
  abstract =     "Symbolic links make the Unix file system
                 non-hierarchical, resulting in multiple valid path
                 names for a given file. This ambiguity is a source of
                 confusion, especially since some shells work overtime
                 to present a consistent view from programs such as {\tt
                 pwd}, while other programs and the kernel itself do
                 nothing about the problem.\par

                 Plan 9 has no symbolic links but it does have other
                 mechanisms that produce the same difficulty. Moreover,
                 Plan 9 is founded on the ability to control a program's
                 environment by manipulating its name space. Ambiguous
                 names muddle the result of operations such as copying a
                 name space across the network.\par

                 To address these problems, the Plan 9 kernel has been
                 modified to maintain an accurate path name for every
                 active file (open file, working directory, mount table
                 entry) in the system. The definition of accurate is
                 that the path name for a file is guaranteed to be the
                 rooted, absolute name the program used to acquire it.
                 These names are maintained by an efficient method that
                 combines lexical processing such as evaluating {\tt ..}
                 by just removing the last path name element of a
                 directory with local operations within the file system
                 to maintain a consistently, easily understood view of
                 the name system. Ambiguous situations are resolved by
                 examining the lexically maintained names
                 themselves.\par

                 A new kernel call, {\tt fd2path}, returns the file name
                 associated with an open file, permitting the use of
                 reliable names to improve system services ranging from
                 {\tt pwd} to debugging. Although this work was done in
                 Plan 9, Unix systems could also benefit from the
                 addition of a method to recover the accurate name of an
                 open file or the current directory.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Pike:2000:LFNb,
  author =       "Rob Pike",
  title =        "Lexical File Names in {Plan 9}, or Getting Dot-Dot
                 Right",
  crossref =     "USENIX:2000:UAT",
  pages =        "85--92",
  year =         "2000",
  bibdate =      "Mon Oct 14 07:46:19 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "Symbolic links make the Unix file system
                 non-hierarchical, resulting in multiple valid path
                 names for a given file. This ambiguity is a source of
                 confusion, especially since some shells work overtime
                 to present a consistent view from programs such as {\tt
                 pwd}, while other programs and the kernel itself do
                 nothing about the problem.\par

                 Plan 9 has no symbolic links but it does have other
                 mechanisms that produce the same difficulty. Moreover,
                 Plan 9 is founded on the ability to control a program's
                 environment by manipulating its name space. Ambiguous
                 names muddle the result of operations such as copying a
                 name space across the network.\par

                 To address these problems, the Plan 9 kernel has been
                 modified to maintain an accurate path name for every
                 active file (open file, working directory, mount table
                 entry) in the system. The definition of accurate is
                 that the path name for a file is guaranteed to be the
                 rooted, absolute name the program used to acquire it.
                 These names are maintained by an efficient method that
                 combines lexical processing such as evaluating {\tt ..}
                 by just removing the last path name element of a
                 directory with local operations within the file system
                 to maintain a consistently, easily understood view of
                 the name system. Ambiguous situations are resolved by
                 examining the lexically maintained names
                 themselves.\par

                 A new kernel call, {\tt fd2path}, returns the file name
                 associated with an open file, permitting the use of
                 reliable names to improve system services ranging from
                 {\tt pwd} to debugging. Although this work was done in
                 Plan 9, Unix systems could also benefit from the
                 addition of a method to recover the accurate name of an
                 open file or the current directory.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:MPA,
  author =       "Rob Pike",
  title =        "A Manual for the Plan 9 assembler",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "10",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:40:07 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/asm.html;
                 http://plan9.bell-labs.com/sys/doc/asm.pdf;
                 http://plan9.bell-labs.com/sys/doc/asm.ps",
  abstract =     "There is an assembler for each of the MIPS, SPARC,
                 Intel 386, Intel 960, AMD 29000, Motorola 68020 and
                 68000, Motorola Power PC, DEC Alpha, and Acorn ARM. The
                 68020 assembler, 2a, is the oldest and in many ways the
                 prototype. The assemblers are really just variations of
                 a single program: they share many properties such as
                 left-to-right assignment order for instruction operands
                 and the synthesis of macro instructions such as MOVE to
                 hide the peculiarities of the load and store structure
                 of the machines.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:POU,
  author =       "Rob Pike",
  title =        "Plumbing and Other Utilities",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "16",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:49:37 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/plumb.html;
                 http://plan9.bell-labs.com/sys/doc/plumb.pdf;
                 http://plan9.bell-labs.com/sys/doc/plumb.ps",
  abstract =     "Plumbing is a new mechanism for inter-process
                 communication in Plan 9, specifically the passing of
                 messages between interactive programs as part of the
                 user interface. Although plumbing shares some
                 properties with familiar notions such as cut and paste,
                 it offers a more general data exchange mechanism
                 without imposing a particular user interface.\par

                 The core of the plumbing system is a program called the
                 plumber, which handles all messages and dispatches and
                 reformats them according to configuration rules written
                 in a special-purpose language. This approach allows the
                 contents and context of a piece of data to define how
                 it is handled. Unlike with drag and drop or cut and
                 paste, the user doesn't need to deliver the data; the
                 contents of a plumbing message, as interpreted by the
                 plumbing rules, determine its destination.\par

                 The plumber has an unusual architecture: it is a
                 language-driven file server. This design has distinct
                 advantages. It makes plumbing easy to add to an
                 existing, Unix-like command environment; it guarantees
                 uniform handling of inter-application messages; it
                 off-loads from those applications most of the work of
                 extracting and dispatching messages; and it works
                 transparently across a network.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:PSW,
  author =       "Rob Pike and Dave Presotto and Ken Thompson and Gerard
                 Holzmann",
  title =        "Process Sleep and Wakeup on a Shared-memory
                 Multiprocessor",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "6",
  year =         "2000",
  bibdate =      "Tue Feb 12 12:14:04 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Appeared in a slightly different form in Proceedings
                 of the Spring 1991 EurOpen Conference, Troms{\o},
                 Norway, 1991, pp. 161--166.",
  URL =          "http://plan9.bell-labs.com/sys/doc/sleep.html;
                 http://plan9.bell-labs.com/sys/doc/sleep.pdf",
  abstract =     "The problem of enabling a sleeping process on a
                 shared-memory multiprocessor is a difficult one,
                 especially if the process is to be awakened by an
                 interrupt-time event. We present here the code for
                 sleep and wakeup primitives that we use in our
                 multiprocessor system. The code has been exercised by
                 years of active use and by a verification system.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:PWS,
  author =       "Rob Pike",
  title =        "$ 8 {1 / 2} $, the {Plan 9} window system",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "10",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:46:53 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "World-Wide Web document. Originally appeared in
                 \cite{Pike:1991:PWS}.",
  URL =          "http://plan9.bell-labs.com/sys/doc/8%bd/8%bd.html;
                 http://plan9.bell-labs.com/sys/doc/8%bd/8%bd.pdf;
                 http://plan9.bell-labs.com/sys/doc/8%bd/8%bd.ps",
  abstract =     "The Plan 9 window system, $ 8 1 / 2 $, is a
                 modest-sized program of novel design. It provides
                 textual I/O and bitmap graphic services to both local
                 and remote client programs by offering a multiplexed
                 file service to those clients. It serves traditional
                 UNIX files like {\tt /dev/tty} as well as more unusual
                 ones that provide access to the mouse and the raw
                 screen. Bitmap graphics operations are provided by
                 serving a file called {\tt /dev/bitblt} that interprets
                 client messages to perform raster operations. The file
                 service that $ 8 1 / 2 $ offers its clients is
                 identical to that it uses for its own implementation,
                 so it is fundamentally no more than a multiplexer. This
                 architecture has some rewarding symmetries and can be
                 implemented compactly.",
  acknowledgement = ack-nhfb,
}

@Misc{Pike:2000:SSR,
  author =       "Rob Pike",
  title =        "System Software Research Is Irrelevant",
  howpublished = "Web talk slides.",
  day =          "21",
  month =        feb,
  year =         "2000",
  bibdate =      "Fri Jan 18 19:02:45 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://herpolhode.com/rob/utah2000.pdf",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2000:TES,
  author =       "Rob Pike",
  title =        "The Text Editor {\tt sam}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "30",
  day =          "7",
  month =        jun,
  year =         "2000",
  bibdate =      "Tue Nov 29 10:02:15 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/sam/sam.pdf",
  abstract =     "Sam is an interactive multi-file text editor intended
                 for bitmap displays. A textual command language
                 supplements the mouse-driven, cut-and-paste interface
                 to make complex or repetitive editing tasks easy to
                 specify. The language is characterized by the
                 composition of regular expressions to describe the
                 structure of the text being modified. The treatment of
                 files as a database, with changes logged as atomic
                 transactions, guides the implementation and makes a
                 general `undo' mechanism straightforward.\par

                 Sam is implemented as two processes connected by a
                 low-bandwidth stream, one process handling the display
                 and the other the editing algorithms. Therefore it can
                 run with the display process in a bitmap terminal and
                 the editor on a local host, with both processes on a
                 bitmap-equipped host, or with the display process in
                 the terminal and the editor in a remote host. By
                 suppressing the display process, it can even run
                 without a bitmap terminal.\par

                 This paper is reprinted from {\em Software Practice and
                 Experience}, Vol 17, number 11, pp. 813--845, November
                 1987. The paper has not been updated for the Plan 9
                 manuals. Although Sam has not changed much since the
                 paper was written, the system around it certainly has.
                 Nonetheless, the description here still stands as the
                 best introduction to the editor.",
  acknowledgement = ack-nhfb,
}

@TechReport{Presotto:2000:P,
  author =       "Dave Presotto and Phil Winterbottom",
  title =        "The {IL} protocol",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "5",
  year =         "2000",
  bibdate =      "Tue Feb 12 14:19:17 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://doc.cat-v.org/plan_9/4th_edition/papers/il/;
                 http://plan9.bell-labs.com/sys/doc/il/il.html;
                 http://plan9.bell-labs.com/sys/doc/il/il.pdf;
                 http://plan9.bell-labs.com/sys/doc/il/il.ps",
  abstract =     "To transport the remote procedure call messages of the
                 Plan 9 file system protocol 9P, we have implemented a
                 new network protocol, called IL. It is a
                 connection-based, lightweight transport protocol that
                 carries datagrams encapsulated by IP. IL provides
                 retransmission of lost messages and in-sequence
                 delivery, but has no flow control and no blind
                 retransmission.",
  acknowledgement = ack-nhfb,
}

@TechReport{Thompson:2000:PCC,
  author =       "Ken Thompson",
  title =        "{Plan 9 C} Compilers",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "11",
  year =         "2000",
  bibdate =      "Tue Feb 12 12:25:09 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Originally appeared, in a different form, in
                 Proceedings of the Summer 1990 UKUUG Conference, pp.
                 41--51, London, 1990.",
  URL =          "http://plan9.bell-labs.com/sys/doc/compiler.html;
                 http://plan9.bell-labs.com/sys/doc/compiler.pdf;
                 http://plan9.bell-labs.com/sys/doc/compiler.ps",
  abstract =     "This paper describes the overall structure and
                 function of the Plan 9 C compilers. A more detailed
                 implementation document for any one of the compilers is
                 yet to be written.",
  acknowledgement = ack-nhfb,
}

@TechReport{Thompson:2000:PFS,
  author =       "Ken Thompson",
  title =        "The {Plan 9} File Server",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "7",
  year =         "2000",
  bibdate =      "Tue Feb 12 12:34:09 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/fs/fs.html;
                 http://plan9.bell-labs.com/sys/doc/fs/fs.pdf;
                 http://plan9.bell-labs.com/sys/doc/fs/fs.ps",
  abstract =     "This paper describes the structure and the operation
                 of Plan 9 file servers. The specifics apply to our main
                 Plan 9 file server Emelie, but the code is also the
                 basis for the user level file server {\tt kfs}.",
  acknowledgement = ack-nhfb,
}

@TechReport{Trickey:2000:AAP,
  author =       "Howard Trickey",
  title =        "{APE} --- The {ANSI\slash POSIX} Environment",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "4",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:32:16 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/ape.html;
                 http://plan9.bell-labs.com/sys/doc/ape.pdf;
                 http://plan9.bell-labs.com/sys/doc/ape.ps",
  abstract =     "When a large or frequently-updated program must be
                 ported to or from Plan 9, the ANSI/POSIX environment
                 known as APE can be useful. APE combines the set of
                 headers and object code libraries specified by the ANSI
                 C standard (ANSI X3.159-1989) with the POSIX operating
                 system interface standard (IEEE 1003.1-1990, ISO
                 9945-1), the part of POSIX defining the basic operating
                 system functions. Using APE will cause slower
                 compilation and marginally slower execution speeds, so
                 if the importing or exporting happens only
                 infrequently, due consideration should be given to
                 using the usual Plan 9 compilation environment instead.
                 Another factor to consider is that the Plan 9 header
                 organization is much simpler to remember and use.",
  acknowledgement = ack-nhfb,
}

@TechReport{Winterbottom:2000:ADB,
  author =       "Phil Winterbottom",
  title =        "Acid: a Debugger Built From a Language",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "14",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:38:09 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Originally appeared in Proc. of the Winter 1994 USENIX
                 Conf., pp. 211--222, San Francisco, CA.",
  URL =          "http://plan9.bell-labs.com/sys/doc/acidpaper.html;
                 http://plan9.bell-labs.com/sys/doc/acidpaper.pdf;
                 http://plan9.bell-labs.com/sys/doc/acidpaper.ps",
  abstract =     "Acid is an unusual source-level symbolic debugger for
                 Plan 9. It is implemented as a language interpreter
                 with specialized primitives that provide debugger
                 support. Programs written in the language manipulate
                 one or more target processes; variables in the language
                 represent the symbols, state, and resources of those
                 processes. This structure allows complex interaction
                 between the debugger and the target program and
                 provides a convenient method of parameterizing
                 differences between machine architectures. Although
                 some effort is required to learn the debugging
                 language, the richness and flexibility of the debugging
                 environment encourages new ways of reasoning about the
                 way programs run and the conditions under which they
                 fail.",
  acknowledgement = ack-nhfb,
}

@TechReport{Winterbottom:2000:AM,
  author =       "Phil Winterbottom",
  title =        "{Acid} Manual",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "25",
  year =         "2000",
  bibdate =      "Tue Feb 12 11:36:41 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/acid.html;
                 http://plan9.bell-labs.com/sys/doc/acid.pdf;
                 http://plan9.bell-labs.com/sys/doc/acid.ps",
  abstract =     "Acid is a general purpose, source level symbolic
                 debugger. The debugger is built around a simple command
                 language. The command language, distinct from the
                 language of the program being debugged, provides a
                 flexible user interface that allows the debugger
                 interface to be customized for a specific application
                 or architecture. More over, it provides an opportunity
                 to write test and verification code independently of a
                 program's source code. Acid is able to debug multiple
                 processes provided they share a common set of symbols,
                 such as the processes in a threaded program.",
  acknowledgement = ack-nhfb,
  keywords =     "source level symbolic debugger",
}

@Article{Minnich:2001:PNL,
  author =       "Ronald G. Minnich",
  title =        "Private Namespaces For {Linux}",
  journal =      j-DDJ,
  volume =       "26",
  number =       "12",
  pages =        "23--24, 26, 28, 30",
  month =        dec,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:41 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://www.ddj.com/",
  abstract =     "Private namespaces let groups of processes construct
                 their own namespace. Ron implements them for Linux to
                 solve problems in both distributed and cluster
                 computing.",
  acknowledgement = ack-nhfb,
  annote =       "Describes an implementation for FreeBSD, GNU/Linux,
                 Solaris, and SunOS of the Plan 9 filesystem protocol.",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@InProceedings{Cox:2002:SP9,
  author =       "Russ Cox and Eric Grosse and Rob Pike and Dave
                 Presotto and Sean Quinlan",
  title =        "Security in {Plan 9}",
  crossref =     "USENIX:2002:PUS",
  pages =        "3--16",
  year =         "2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/auth.pdf;
                 http://www.usenix.org/publications/library/proceedings/sec02/cox.html",
  abstract =     "The security architecture of the Plan 9 operating
                 system has recently been redesigned to address some
                 technical shortcomings. This redesign provided an
                 opportunity also to make the system more convenient to
                 use securely. Plan 9 has thus improved in two ways not
                 usually seen together: it has become more secure {\em
                 and\/} easier to use.\par

                 The central component of the new architecture is a
                 per-user self-contained agent called {\tt factotum}.
                 {\tt Factotum} securely holds a copy of the user's keys
                 and negotiates authentication protocols, on behalf of
                 the user, with secure services around the network.
                 Concentrating security code in a single program offers
                 several advantages including: ease of update or repair
                 to broken security software and protocols; the ability
                 to run secure services at a lower privilege level;
                 uniform management of keys for all services; and an
                 opportunity to provide single sign on, even to
                 unchanged legacy applications. {\tt Factotum} has an
                 unusual architecture: it is implemented as a Plan 9
                 file server.",
  annote =       "Best conference paper award.",
}

@TechReport{Flandrena:2002:AAS,
  author =       "Bob Flandrena",
  title =        "Adding Application Support for a New Architecture in
                 {Plan 9}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "7",
  day =          "22",
  month =        may,
  year =         "2002",
  bibdate =      "Tue Nov 29 09:54:55 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/libmach.pdf",
  abstract =     "Plan 9 has five classes of architecture-dependent
                 software: headers, kernels, compilers and loaders, the
                 libc system library, and a few application programs. In
                 general, architecture-dependent programs consist of a
                 portable part shared by all architectures and a
                 processor-specific portion for each supported
                 architecture. The portable code is often compiled and
                 stored in a library associated with each architecture.
                 A program is built by compiling the
                 architecture-specific code and loading it with the
                 library. Support for a new architecture is provided by
                 building a compiler for the architecture, using it to
                 compile the portable code into libraries, writing the
                 architecture-specific code, and then loading that code
                 with the libraries.",
  acknowledgement = ack-nhfb,
}

@TechReport{Pike:2002:CPE,
  author =       "Rob Pike",
  title =        "Changes to the Programming Environment in the Fourth
                 Release of {Plan 9}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "6",
  day =          "22",
  month =        may,
  year =         "2002",
  bibdate =      "Tue Nov 29 10:00:49 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/prog4.pdf",
  acknowledgement = ack-nhfb,
}

@TechReport{Quinlan:2002:VNA,
  author =       "Sean Quinlan and Sean Dorward",
  title =        "{Venti}: a new approach to archival storage",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "13",
  day =          "2",
  month =        may,
  year =         "2002",
  bibdate =      "Tue Nov 29 10:06:07 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/venti/venti.pdf",
  abstract =     "This paper describes a network storage system, called
                 Venti, intended for archival data. In this system, a
                 unique hash of a block's contents acts as the block
                 identifier for read and write operations. This approach
                 enforces a write-once policy, preventing accidental or
                 malicious destruction of data. In addition, duplicate
                 copies of a block can be coalesced, reducing the
                 consumption of storage and simplifying the
                 implementation of clients. Venti is a building block
                 for constructing a variety of storage applications such
                 as logical backup, physical backup, and snapshot file
                 systems.\par

                 We have built a prototype of the system and present
                 some preliminary performance results. The system uses
                 magnetic disks as the storage technology, resulting in
                 an access time for archival data that is comparable to
                 non-archival data. The feasibility of the write-once
                 model for storage is demonstrated using data from over
                 a decade's use of two Plan 9 file systems.",
  acknowledgement = ack-nhfb,
}

@Article{McIlroy:2004:ESR,
  author =       "M. Douglas McIlroy",
  title =        "Enumerating the strings of regular languages",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "14",
  number =       "5",
  pages =        "503--518",
  month =        sep,
  year =         "2004",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796803004982",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:07:39 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.dartmouth.edu/~doug/nfa.ps.gz;
                 https://www.cambridge.org/core/product/1D46239B6CC6299AA385B3094EBC80E1",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  keywords =     "regular expressions; string matching",
  onlinedate =   "06 August 2004",
}

@InProceedings{Mirtchovski:2004:PIA,
  author =       "A. Mirtchovski and R. Simmonds",
  title =        "{Plan 9} --- an integrated approach to {Grid}
                 computing",
  crossref =     "IEEE:2004:IPD",
  pages =        "273--273",
  year =         "2004",
  DOI =          "https://doi.org/10.1109/IPDPS.2004.1303349",
  bibdate =      "Thu Nov 16 07:01:54 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "This paper describes the use of the ``Plan 9 from Bell
                 Labs''' distributed operating system as a grid
                 computing infrastructure. In particular it compares
                 solutions using the de facto standard middleware
                 toolkit for grids, Globus, to an environment
                 constructed using computers running the Plan 9
                 operating system. These environments are compared based
                 on the features they offer in the context of grid
                 computing: authentication, security, data management,
                 and resource discovery.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ballesteros:2005:TSC,
  author =       "F. J. Ballesteros and G. Guardiola and E. Soriano and
                 K. Leal",
  title =        "Traditional Systems Can Work Well for Pervasive
                 Applications. {A} Case Study: {Plan 9} from {Bell Labs}
                 Becomes Ubiquitous",
  crossref =     "IEEE:2005:TII",
  pages =        "295--299",
  year =         "2005",
  DOI =          "https://doi.org/10.1109/PERCOM.2005.49",
  bibdate =      "Thu Nov 16 07:00:27 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Minnich:2006:XNB,
  author =       "R. Minnich and A. Mirtchovski",
  booktitle =    "{2006 IEEE International Conference on Cluster
                 Computing: Cluster 2006: Barcelona, September
                 25th-28th, 2006}",
  title =        "{XCPU}: a new, 9p-based, process management system for
                 clusters and grids",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "1--10",
  year =         "2006",
  DOI =          "https://doi.org/10.1109/CLUSTR.2006.311843",
  ISBN =         "1-4244-0328-6",
  ISBN-13 =      "978-1-4244-0328-8",
  ISSN =         "1552-5244",
  ISSN-L =       "1552-5244",
  LCCN =         "QA76.58",
  bibdate =      "Mon Feb 16 06:15:35 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=4100332",
  acknowledgement = ack-nhfb,
  keywords =     "Plan 9; 9p",
}

@TechReport{Cox:2007:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching Can Be Simple And Fast",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        jan,
  year =         "2007",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp1.html",
  acknowledgement = ack-nhfb,
}

@InCollection{Kernighan:2007:REM,
  author =       "Brian W. Kernighan",
  title =        "A regular expression matcher",
  crossref =     "Oram:2007:BC",
  pages =        "1--8",
  year =         "2007",
  bibdate =      "Tue Mar 27 15:50:00 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@Article{Mirtchovski:2007:WSD,
  author =       "Andrey Mirtchovski and Latchesar Ionkov",
  title =        "Why Some Dead {OSes} Still Matter",
  journal =      j-LOGIN,
  volume =       "32",
  number =       "5",
  pages =        "5--12",
  month =        oct,
  year =         "2007",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  ISSN-L =       "1044-6397",
  bibdate =      "Fri Dec 7 11:34:31 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/usenix2000.bib;
                 https://www.usenix.org/publications/login",
  URL =          "https://www.usenix.org/publications/login/october-2007-volume-32-number-5/why-some-dead-oses-still-matter",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
  keywords =     "Mac OS X; Parallels Inc.; Plan 9 operating system",
}

@Article{Ganti:2008:PAL,
  author =       "Ashwin Ganti",
  title =        "{Plan 9} authentication in {Linux}",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "5",
  pages =        "27--33",
  month =        jul,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1400097.1400101",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Wed Aug 6 16:54:12 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "In Linux, applications like su and login currently run
                 as root in order to access authentication information
                 and set or alter the identity of the process. In such
                 cases, if the application is compromised while running
                 as a privileged user, the entire system can become
                 vulnerable. An alternative approach is taken by the
                 Plan 9 operating system from Bell Labs, which runs such
                 applications as a non-privileged user and relies on a
                 kernel-based capability device working in coordination
                 with an authentication server to provide the same
                 services. This avoids the risk of an application
                 vulnerability becoming a system vulnerability.\par

                 This paper discusses the extension of Linux
                 authentication mechanisms to allow the use of the Plan
                 9 approach with existing Linux applications in order to
                 reduce the security risks mentioned earlier. It
                 describes the port of the Plan 9 capability device as a
                 character device driver for the Linux kernel. It also
                 describes the port of the Plan 9 authentication server
                 and the implementation of a PAM module which allows the
                 use of these new facilities. {\em It is now possible to
                 restrain processes like login and su from the
                 uncontrolled setuid bit and make them run on behalf of
                 an unprivileged user in Linux}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
  keywords =     "authentication",
}

@Article{VanHensbergen:2008:HAR,
  author =       "Eric {Van Hensbergen} and Charles Forsyth and Jim
                 McKie and Ron Minnich",
  title =        "Holistic aggregate resource environment",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "1",
  pages =        "85--91",
  month =        jan,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1341312.1341327",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Fri Jun 20 17:19:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  abstract =     "Within a few short years, we can expect to be dealing
                 with multi-million-thread programs running on
                 million-core systems [16]. This will no doubt stress
                 the contemporary HPC software model which was developed
                 in a time when 512 cores was a large number. Historical
                 approaches have been further challenged by the
                 increased desire of developers and end users for
                 supercomputer light weight kernels (LWKs) to support
                 the same environment, libraries, and tools as their
                 desktops. As a result, the emerging workloads of today
                 are far more sophisticated than those of the last two
                 decades when much of the HPC infrastructure was
                 developed, and feature the use of scripting
                 environments such as Python, dynamic libraries, and
                 complex multi-scale physics frameworks. Complicating
                 this picture is the overwhelming management, monitoring
                 and reliability problem created by the huge number of
                 nodes in a system of that magnitude.\par

                 We believe that a re-evaluation and exploration of
                 distributed system principals is called for in order to
                 address the challenges of ultrascale. To that end we
                 will be evaluating and extending the Plan 9 [21]
                 distributed system on the largest machines available to
                 us, namely the BG/L [28] and BG/P [10] supercomputers.
                 We have chosen Plan 9 based on our previous experiences
                 with it in combination with previous research [17]
                 which determined Plan 9 was a `right weight kernel',
                 balancing trade offs between LWKs and more general
                 purpose operating systems such as Linux. To deal with
                 issues of scale, we plan on leveraging the use of the
                 high-performance interconnects by system services as
                 well as exploring aggregation as more of a first-class
                 system construct -- providing dynamic hierarchical
                 organization and management of all resources. Our plan
                 is to evaluate the viability of these concepts at scale
                 as well as create an alternative development and
                 execution environment which compliments the features
                 and capabilities of the existing system software and
                 run time options. Our intent is to broaden the
                 application base as well as make the system as a whole
                 more approachable to a larger class of developers and
                 end-users.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
}

@TechReport{Cox:2009:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching: the Virtual Machine
                 Approach",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        dec,
  year =         "2009",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp2.html",
  acknowledgement = ack-nhfb,
}

@Article{Ierusalimschy:2009:TPM,
  author =       "Roberto Ierusalimschy",
  title =        "A text pattern-matching tool based on {Parsing
                 Expression Grammars}",
  journal =      j-SPE,
  volume =       "39",
  number =       "3",
  pages =        "221--258",
  day =          "10",
  month =        mar,
  year =         "2009",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.892",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Mar 17 10:02:38 MDT 2010",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Lua scripting language; regular expressions",
  onlinedate =   "Jul 17 2008 12:12PM",
}

@TechReport{Cox:2010:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching in the Wild",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        mar,
  year =         "2010",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp3.html",
  acknowledgement = ack-nhfb,
}

@Misc{Cox:2010:REP,
  author =       "Russ Cox",
  title =        "{{\tt re2}}: an efficient, principled regular
                 expression library",
  howpublished = "Google Code project",
  day =          "2",
  month =        mar,
  year =         "2010",
  bibdate =      "Tue Mar 27 15:30:44 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://code.google.com/p/re2/",
  acknowledgement = ack-nhfb,
  remark =       "From the Web site: ``RE2 is a fast, safe,
                 thread-friendly alternative to backtracking regular
                 expression engines like those used in PCRE, Perl, and
                 Python. It is a C++ library.''",
}

@TechReport{Cox:2012:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching with a Trigram Index, or
                 {How Google Code} Search worked",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        jan,
  year =         "2012",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp4.html",
  acknowledgement = ack-nhfb,
}

@Misc{Stallman:2012:PEP,
  author =       "Richard Stallman",
  title =        "The Problems of the (Earlier) {Plan 9} License",
  howpublished = "Web essay.",
  day =          "10",
  month =        jun,
  year =         "2012",
  bibdate =      "Fri Jan 18 19:00:37 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "See \cite{Mirtchovski:2007:WSD} for comments on this
                 essay, and how its objections were resolved in newer
                 releases of Plan 9.",
  URL =          "http://www.gnu.org/philosophy/plan-nine.html",
  acknowledgement = ack-nhfb,
}

@Article{Mirtaheri:2014:MPB,
  author =       "Seyedeh Leili Mirtaheri and Ehsan Mousavi Khaneghah
                 and Amir Saman Memaripour and Lucio Grandinetti and
                 Mohsen Sharifi and Zarrintaj Bornaee",
  title =        "{Multics} and {Plan 9}: The Big Bangs in the
                 Distributed Computing System Universe",
  journal =      j-COMPUT-SCI-ENG,
  volume =       "16",
  number =       "5",
  pages =        "76--85",
  month =        sep # "\slash " # oct,
  year =         "2014",
  CODEN =        "CSENFA",
  DOI =          "https://doi.org/10.1109/MCSE.2014.3",
  ISSN =         "1521-9615 (print), 1558-366X (electronic)",
  ISSN-L =       "1521-9615",
  bibdate =      "Fri Feb 13 08:04:41 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  URL =          "http://csdl.computer.org/csdl/mags/cs/2014/05/mcs2014050076-abs.html",
  abstract-URL = "http://csdl.computer.org/csdl/mags/cs/2014/05/mcs2014050076-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5992",
}

@Misc{Trbovich:2016:ICB,
  author =       "Pete Trbovich",
  title =        "It Came From {Bell Labs}",
  howpublished = "Web site.",
  day =          "15",
  month =        nov,
  year =         "2016",
  bibdate =      "Sat Nov 26 10:09:01 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Plan 9 operating system",
  abstract =     "There was once an operating system that was intended
                 to be the successor to Unix. Plan 9 From Bell Labs was
                 its name, and playing with it for five minutes is like
                 visiting an alternate dimension where computers are
                 done differently. It was so ahead of its time that it
                 would be considered cutting edge, even today. Find out
                 the weird and woolly history to Plan Nine's inception
                 and eventual consignment as a footnote of operating
                 systems today.",
}


%%% ====================================================================
%%% Cross-reference entries must come last:
@Proceedings{USENIX:1988:ECP,
  editor =       "{USENIX Association}",
  booktitle =    "EUUG Conference Proceedings, Spring, 1988. London,
                 England",
  title =        "{EUUG} Conference Proceedings, Spring, 1988. London,
                 England",
  publisher =    pub-EUUG,
  address =      pub-EUUG:adr,
  pages =        "????",
  month =        "Spring",
  year =         "1988",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  location =     "London, England",
}

@Proceedings{EurOpen:1991:EUD,
  editor =       "{EurOpen}",
  booktitle =    "EurOpen. UNIX Distributed Open Systems in Perspective.
                 Proceedings of the Spring 1991 EurOpen Conference,
                 Troms{\o}, Norway, May 20--24, 1991",
  title =        "EurOpen. {UNIX} Distributed Open Systems in
                 Perspective. Proceedings of the Spring 1991 EurOpen
                 Conference, Troms{\o}, Norway, May 20--24, 1991",
  publisher =    pub-EUROPEN,
  address =      pub-EUROPEN:adr,
  pages =        "viii + 331",
  year =         "1991",
  ISBN =         "1-873611-00-5",
  ISBN-13 =      "978-1-873611-00-5",
  LCCN =         "????",
  bibdate =      "Fri May 22 11:28:47 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{USENIX:1992:PUW,
  editor =       "{USENIX}",
  booktitle =    "Proceedings of the {USENIX} Workshop on Micro-Kernels
                 and Other Kernel Architectures: 27--28 April, 1992,
                 Seattle, {WA}, {USA}",
  title =        "Proceedings of the {USENIX} Workshop on Micro-Kernels
                 and Other Kernel Architectures: 27--28 April, 1992,
                 Seattle, {WA}, {USA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "303",
  year =         "1992",
  ISBN =         "1-880446-42-1",
  ISBN-13 =      "978-1-880446-42-3",
  LCCN =         "QAX 32",
  bibdate =      "Sun Feb 18 07:46:09 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Alpha real time distributed kernel; Amoeba distributed
                 operating system; Birlix operating system; CHORUS
                 distributed OS; Computer architecture --- Congresses;
                 Computer organization --- Congresses; Data movement;
                 Distributed abstractions; IPC; KeyKOS nanokernel
                 architecture; Lightweight references; Mach 3.0;
                 Microkernel operating systems; Plan 9 distributed
                 system; QNX; Scalable operating system; Synthesis
                 kernel; Thread management; VMS",
  thesaurus =    "Network operating systems; Virtual storage",
}

@Proceedings{Agrawal:1993:VLD,
  editor =       "Rakesh Agrawal and Sean Baker and David Bell",
  booktitle =    "Very large data bases, {VLDB} '93: proceedings of the
                 19th International Conference on Very Large Data Bases,
                 August 24--27, 1993, Dublin, Ireland",
  title =        "Very large data bases, {VLDB} '93: proceedings of the
                 19th International Conference on Very Large Data Bases,
                 August 24--27, 1993, Dublin, Ireland",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  pages =        "xx + 712",
  year =         "1993",
  ISBN =         "1-55860-152-X",
  ISBN-13 =      "978-1-55860-152-9",
  LCCN =         "QA76.9.D3 I61 1993",
  bibdate =      "Sat Dec 7 13:05:35 MST 1996",
  bibsource =    "DBLP; http://dblp.uni-trier.de;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Co-sponsored by VLDB Endowment and Irish Computer
                 Society; in co-operation with the IEEE Technical
                 Committee on Data Engineering.",
  acknowledgement = ack-nhfb,
  keywords =     "data base management -- congresses",
}

@Proceedings{USENIX:1993:PWU,
  editor =       "{USENIX Association}",
  booktitle =    "Proceedings of the Winter 1993 {USENIX} Conference:
                 January 25--29, 1993, San Diego, California, {USA}",
  title =        "Proceedings of the Winter 1993 {USENIX} Conference:
                 January 25--29, 1993, San Diego, California, {USA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "x + 530",
  year =         "1993",
  ISBN =         "1-880446-48-0",
  ISBN-13 =      "978-1-880446-48-5",
  LCCN =         "QA 76.76 O63 U84 1993",
  bibdate =      "Sun Feb 18 07:46:09 MST 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  annote =       "Spine title: USENIX San Diego conference proceedings,
                 winter 1993. Running title: 1993 winter USENIX, January
                 25--29, 1993, San Diego, CA.",
  keywords =     "Computer networks --- Congresses; Operating systems
                 (Computers) --- Congresses; Programming (Electronic
                 computers) --- Congresses; UNIX (Computer file) ---
                 Congresses",
}

@Proceedings{Brazier:1994:DOS,
  editor =       "F. M. T. (Frances M. T.) Brazier and D. (Dag)
                 Johansen",
  booktitle =    "Distributed open systems",
  title =        "Distributed open systems",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "ix + 181",
  year =         "1994",
  ISBN =         "0-8186-4292-0, 0-8186-4291-2 (microfiche),
                 0-8186-4290-4 (paperback)",
  ISBN-13 =      "978-0-8186-4292-0, 978-0-8186-4291-3 (microfiche),
                 978-0-8186-4290-6 (paperback)",
  LCCN =         "QA76.9.D5 D5563 1994",
  bibdate =      "Mon May 27 14:32:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  note =         "Includes papers presented at a EurOpen conference held
                 in Troms{\o}, Norway in 1991, in addition to a number
                 of new papers. IEEE catalog number EH0373-1.",
  acknowledgement = ack-nhfb,
}

@Proceedings{USENIX:1994:PWU,
  editor =       "{USENIX Association}",
  booktitle =    "Proceedings of the Winter 1994 {USENIX} Conference:
                 January 17--21, 1994, San Francisco, California,
                 {USA}",
  title =        "Proceedings of the Winter 1994 {USENIX} Conference:
                 January 17--21, 1994, San Francisco, California,
                 {USA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "372",
  year =         "1994",
  ISBN =         "1-880446-58-8",
  ISBN-13 =      "978-1-880446-58-4",
  LCCN =         "QA 76.76 O63 U84 1994",
  bibdate =      "Sun Feb 18 07:46:09 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
  annote =       "Spine title: USENIX San Francisco conference
                 proceedings, winter 1994. Running title: 1994 winter
                 USENIX, January 17--21, 1994, San Francisco, CA.",
  keywords =     "Computer networks --- Congresses.; Operating systems
                 (Computers) --- Congresses; Programming (Electronic
                 computers) --- Congresses; UNIX (Computer file) ---
                 Congresses",
}

@Proceedings{USENIX:2000:UAT,
  editor =       "{USENIX}",
  booktitle =    "2000 USENIX Annual Technical Conference: San Diego,
                 CA, USA, June 18--23, 2000",
  title =        "2000 {USENIX} Annual Technical Conference: San Diego,
                 {CA}, {USA}, June 18--23, 2000",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "350",
  year =         "2000",
  ISBN =         "1-880446-22-7",
  ISBN-13 =      "978-1-880446-22-5",
  LCCN =         "",
  bibdate =      "Mon Oct 14 07:43:52 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{USENIX:2002:PUS,
  editor =       "{USENIX}",
  booktitle =    "Proceedings of the 11th USENIX Security Symposium
                 2002, August 5--9, 2002, San Francisco CA",
  title =        "Proceedings of the 11th {USENIX} Security Symposium
                 2002, August 5--9, 2002, San Francisco {CA}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "????",
  year =         "2002",
  ISBN =         "1-931971-00-5",
  ISBN-13 =      "978-1-931971-00-3",
  LCCN =         "????",
  bibdate =      "Tue Oct 15 07:55:57 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{IEEE:2004:IPD,
  editor =       "{IEEE}",
  booktitle =    "{18th International Parallel and Distributed
                 Processing Symposium: Santa Fe, New Mexico, April
                 26--30, 2004: proceedings}",
  title =        "{18th International Parallel and Distributed
                 Processing Symposium: Santa Fe, New Mexico, April
                 26--30, 2004: proceedings}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "lvi + 289",
  year =         "2004",
  ISBN =         "0-7695-2132-0 (paperback)",
  ISBN-13 =      "978-0-7695-2132-9 (paperback)",
  LCCN =         "QA76.58 .I583 2004",
  bibdate =      "Thu Nov 16 07:08:44 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://ieeexplore.ieee.org/xpl/RecentCon.jsp?punumber=9132",
  acknowledgement = ack-nhfb,
  meetingname =  "IPDPS (Conference) (18th: 2004: Santa Fe, NM)",
  remark =       "IEEE Computer Society Order Number P2132.",
}

@Proceedings{IEEE:2005:TII,
  editor =       "{IEEE}",
  booktitle =    "{Third IEEE International Conference on Pervasive
                 Computing and Communications Workshops: proceedings,
                 PerCom 2005 Workshops, 8--12 March, 2005, Kauai Island,
                 Hawaii}",
  title =        "{Third IEEE International Conference on Pervasive
                 Computing and Communications Workshops: proceedings,
                 PerCom 2005 Workshops, 8--12 March, 2005, Kauai Island,
                 Hawaii}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xxvi + 421",
  year =         "2005",
  ISBN =         "0-7695-2300-5 (paperback)",
  ISBN-13 =      "978-0-7695-2300-2 (paperback)",
  LCCN =         "QA76.5915 .I34 2005",
  bibdate =      "Thu Nov 16 07:08:24 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=9593",
  acknowledgement = ack-nhfb,
}

@Book{Oram:2007:BC,
  editor =       "Andrew Oram and Greg Wilson",
  booktitle =    "Beautiful code",
  title =        "Beautiful code",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxi + 593",
  year =         "2007",
  ISBN =         "0-596-51004-7 (paperback)",
  ISBN-13 =      "978-0-596-51004-6 (paperback)",
  LCCN =         "QA76.758 .B428 2007; QA76.758 .B43 2007; QA76.758 .B48
                 2007",
  bibdate =      "Tue Aug 5 17:53:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       "Theory in practice",
  URL =          "http://www.oreilly.com/catalog/9780596510046",
  acknowledgement = ack-nhfb,
  subject =      "Software engineering",
}