Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Plan 9 was developed by Bell Labs as a successor to Unix. Although for various reasons it never quite materialized as such, a fair amount of development still went into Plan 9.

My question is, what - if anything - from Plan 9 has made its way into modern Unix?

share|improve this question
from the paper: "the most dangerous enemy of a better solution is an existing codebase that is just good enough." – rahmu Apr 6 '12 at 14:03
up vote 13 down vote accepted

The clone(2) system call in linux is said to have been modeled after Plan 9's rfork(). (I personally don't see how the timing works out.)

This paper claims that Plan 9 inspired the "mount/filesystem namespace".

The /proc filesystem appears to have come to Plan 9 from 8th Edition Unix, rather than the other way around.

share|improve this answer
thanks for the correction. – LawrenceC Feb 28 '11 at 19:42
It seems that more and more pieces keep coming over but not enough to port native plan9 applications with 100% original functionality. – Joe Feb 7 at 13:28

The obvious one is probably UTF-8. But that's probably too obvious.

Al Viro's grand re-architecturing of the Linux VFS is heavily inspired by Plan9. Especially the shift from "Everything Is A File" to "… And Every File Is A Mount Point".

share|improve this answer
Could you briefly explain (or point me to a resource which explains) what is meant by "...and every file is a mount point"? – Mr. Shickadance Feb 28 '11 at 22:31
@Mr. Shickadance: Traditionally, you can only mount filesystems and you can only mount them on directories. On Linux, you can also mount directories on directories and files on files. So, in a sense, every directory and every file is a filesystem and every file (and not just every directory) is a mountpoint. Example: cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a – Jörg W Mittag Mar 1 '11 at 2:23

The /proc filesystem in Linux is a Plan 9 idea.

share|improve this answer

Union file systems, such as unionfs and aufs, were inspired by Plan9 union directory mounts.

For example, they are used on live CDs to merge /usr/bin from the CD with a writable file system, so that you can make changes to /usr/bin, even tho the CD is read-only.

Union file systems: Implementations, Part I on lwn.net

For example, if I understand the docs correctly, on Plan9, you could do:

bind -b /usr/bin /bin
bind -b /usr/local/bin /bin
bind -b /home/username/bin /bin

And all the files in all three directories would appear in /bin (in case of duplicate names, the one in the last-specified directory wins, due to the -b option).

I'm not sure if this is what Bruce means by "mount/filesystem namespace", or is something different.

You could probably also say that sshfs was inspired by Plan9's ftpfs.

share|improve this answer

In Plan 9, every "filesystem" is implemented by a userspace daemon. (Think FUSE.) These daemons all talk 9P (specifically 9P2000, the second revision of the protocol). 9P is essentially what holds the different parts of the system together.

The v9fs project implements a Linux kernel driver for the 9P protocol. According to the Plan 9 wiki page on it, it is in the mainline kernel as of kernel 2.6.14.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.