Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Plan 9 from Bell Labs
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Software for Plan 9 == {{Further|List of Plan 9 applications}} As a benefit from the system's design, most tasks in Plan 9 can be accomplished by using [[ls]], [[Cat (Unix)|cat]], [[grep]], [[cp (Unix)|cp]] and [[rm (Unix)|rm]] utilities in combination with the [[rc shell]] (the default Plan 9 shell). [[Factotum (software)|Factotum]] is an [[authentication server|authentication]] and [[key management]] server for Plan 9. It handles authentication on behalf of other programs such that both [[secret key]]s and implementation details need only be known to Factotum.<ref name="auth-paper" /> === Graphical programs === [[File:Plan 9 from Bell Labs (with acme).png|thumb|right|Plan 9 running [[acme (text editor)|acme]] and rc]] Unlike [[Unix]], Plan 9 was designed with graphics in mind.<ref name="not_dead" /> After booting, a Plan 9 terminal will run the [[rio (windowing system)|rio]] windowing system, in which the user can create new windows displaying [[Rc (Unix shell)|rc]].<ref name="osnews-investigating" /> Graphical programs invoked from this shell replace it in its window. The [[plumber (Plan 9)|plumber]] provides an [[inter-process communication]] mechanism which allows system-wide hyperlinking. [[sam (text editor)|Sam]] and [[acme (text editor)|acme]] are Plan 9's text editors.<ref name="usethis-interview-russ-cox" /> === Storage system === Plan 9 supports the [[Kfs]], [[PAQ|Paq]], [[Cwfs]], [[File Allocation Table|FAT]], and [[Fossil (file system)|Fossil]] file systems. The last was designed at Bell Labs specifically for Plan 9 and provides snapshot storage capability. It can be used directly with a hard drive or backed with [[Venti (software)|Venti]], an archival file system and permanent data storage system. === Software development === The distribution package for Plan 9 includes special compiler variants and programming languages, and provides a tailored set of libraries along with a windowing [[user interface]] system specific to Plan 9.<ref name="Dixon2004" /> The bulk of the system is written in a dialect of C ([[ANSI C]] with some extensions and some other features left out). The compilers for this language were custom built with portability in mind; according to their author, they "compile quickly, load slowly, and produce medium quality object code".<ref name="auug-new-c-compiler" /> A [[concurrent programming language]] called [[Alef (programming language)|Alef]] was available in the first two editions, but was then dropped for maintenance reasons and replaced by a [[Thread (computing)|threading]] library for C.<ref>{{cite web|last=Pike|first=Rob|title=Rio: Design of a Concurrent Window System|url=http://doc.cat-v.org/plan_9/3rd_edition/rio/rio_slides.pdf|access-date=8 March 2013}}</ref><ref>{{man|2|thread|Plan 9}}</ref> === Unix compatibility === Though Plan 9 was supposed to be a further development of Unix concepts, compatibility with preexisting Unix software was never the goal for the project. Many [[command-line utilities]] of Plan 9 share the names of Unix counterparts, but work differently.<ref name="unix-plan9-command-translation" /> Plan 9 can support [[POSIX]] applications and can emulate the [[Berkeley socket interface]] through the [[ANSI/POSIX Environment]] (APE) that implements an [[runtime environment|interface]] close to [[ANSI C]] and [[POSIX]], with some common extensions (the native Plan 9 C interfaces conform to neither standard). It also includes a POSIX-compatible shell. APE's authors claim to have used it to port the [[X Window System]] (X11) to Plan 9, although they do not ship X11 "because supporting it properly is too big a job".<ref name="docs-ape" /> Some Linux binaries can be used with the help of a "linuxemu" (Linux emulator) application; however, it is still a work in progress.<ref name="linuxemu" /> Vice versa, the [[Vx32]] virtual machine allows a slightly modified Plan 9 kernel to run as a user process in Linux, supporting unmodified Plan 9 programs.{{r|vx32}}
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Plan 9 from Bell Labs
(section)
Add topic