be constructed independently, and the user may work simultaneously with programs that have heterogeneous namespaces. Namespaces may be used to create an isolated environment similar to chroot, but in a more secure way. Plan 9's union directory architecture inspired 4.4BSD and Linux union file system implementations, although the developers of the BSD union mounting facility found the non-recursive merging of directories in Plan 9 "too restrictive for general purpose use". Special virtual filesystem /proc Instead of having system calls specifically for process management, Plan 9 provides the file system. Each process appears as a directory containing information and control files which can be manipulated by the ordinary file IO system calls. The file system approach allows Plan 9 processes to be managed with simple file management tools such as ls and cat; however, the processes cannot be copied and moved as files. /net Plan 9 does not have specialised system calls or ioctls for accessing the networking stack or networking hardware. Instead, the file system is used. Network connections are controlled by reading and writing control messages to control files. Sub-directories such as and are used as an interface to their respective protocols. Unicode To reduce the complexity of managing character encodings, Plan 9 uses Unicode throughout the system. The initial Unicode implementation was ISO/IEC 10646-1:1993. Ken Thompson invented UTF-8, which became the native encoding in Plan 9. The entire system was converted to general use in 1992. UTF-8 preserves backwards compatibility with traditional null-terminated strings, enabling more reliable information processing and the chaining of multilingual string data with Unix pipes between multiple processes. Using a single UTF-8 encoding with characters for all cultures and regions eliminates the need for switching between code sets. Combining the design concepts Though interesting on their own, the design concepts of Plan 9 were supposed to be most useful when combined. For example, to implement a network address translation (NAT) server, a union directory can be created, overlaying the router's directory tree with its own . Similarly, a virtual private network (VPN) can be implemented by overlaying in a union directory a hierarchy from a remote gateway, using secured 9P over the public Internet. A union directory with the hierarchy and filters can be used to sandbox an untrusted application or to implement a firewall. In the same manner, a distributed computing network can be composed with a union directory of hierarchies from remote