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?


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.

  • 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 '16 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".

  • 4
    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
  • 3
    @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.


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.


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.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

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