Plan 9: An Operating System Decades Ahead of Its Time
In the world of operating systems (OS), familiar names like Windows, macOS, or Linux often dominate the conversation. However, for those willing to look beyond the mainstream, there are a plethora of intriguing options. One such option is Plan 9 from Bell Labs. Although initially developed in the late 1980s, Plan 9 represents a different and potentially transformative approach to OS design. Here, we will delve into the features, pros, and cons of Plan 9, as well as speculate on its potential to shape the future of operating systems.
Table of Contents
1. What is Plan 9?
2. Plan 9 Features that are Used Today
3. Literature specifically dedicated to the Plan 9
What is Plan 9?
Plan 9 is an operating system developed by Bell Labs, the same team behind Unix, and it represents a continuation of Unix’s philosophies of simplicity, coherence, and powerful, compositional tools. Unlike most popular operating systems today, Plan 9 was designed to function as a distributed system, where resources are shared across a network of computers.
Plan 9 Features that are Used Today
While Plan 9 itself might not be in widespread use, its impact can be seen in various aspects of modern computing, demonstrating its continued relevance and the forward-thinking nature of its design.
While Plan 9 may not have achieved mainstream adoption, its ideas and features have been influential and are evident in various forms in today’s technological landscape. Here are some of the ways Plan 9 features are used today:
1. Distributed Systems and Cloud Computing: Plan 9’s design as a distributed operating system, where resources are shared seamlessly across a network of machines, has significant parallels with the principles of cloud computing. Today, many services and platforms employ distributed systems to enhance scalability and resource efficiency.
2. “Everything is a File” Philosophy: The notion of treating everything as a file has influenced various aspects of other operating systems. In Linux, for example, devices and some types of inter-process communication can be accessed through a file-like interface.
3. Namespace and Filesystem: Plan 9’s approach to namespaces, where each process can have its own view of the system’s resources, is seen in container technologies such as Docker. This concept allows for strong process isolation and improves security.
4. UTF-8 Encoding: Plan 9 was one of the first operating systems to use UTF-8 as its internal representation for text. Now, UTF-8 is widely used as a standard for text encoding on the internet and in many modern operating systems.
5. Influence on Programming Languages: Plan 9 has influenced the design of modern programming languages. Notably, Google’s Go language was designed by Robert Griesemer, Rob Pike, and Ken Thompson, all of whom had worked on Plan 9. The language incorporates many of the ideas and experiences from Plan 9, including its focus on simplicity, clarity, and efficiency.
6. Plan 9’s 9P Protocol: The 9P protocol, Plan 9’s network protocol to access hierarchical file systems, has found use in modern software. An example is the Linux kernel, which includes support for 9P, enabling it to communicate with Plan 9 servers and other 9P servers like the Inferno operating system.
While Plan 9 itself might not be in widespread use, its impact can be seen in various aspects of modern computing, demonstrating its continued relevance and the forward-thinking nature of its design.
Literature specifically dedicated to Plan 9
While the pool of literature specifically dedicated to the Plan 9 operating system isn’t as vast as those for popular operating systems like Linux or Windows, there are still some noteworthy resources for anyone interested in diving deeper into this innovative OS. Here are a few notable English language books and resources on the topic:
1. “The Plan 9 from Bell Labs Operating System” by Francisco J Ballesteros: This book provides a comprehensive look at Plan 9, covering everything from the basics to more advanced topics. The author’s approach is practical, making it a good choice for both beginners and experienced users.
2. “Inferno Programming with Limbo” by Phillip Stanley-Marbell: While not directly about Plan 9, this book is about the Inferno operating system, which was designed by many of the same engineers and shares many principles with Plan 9. The book is particularly useful for understanding the Limbo programming language, which shares similarities with Plan 9’s C and Alef languages.
3. “Plan 9 from Bell Labs” by Rob Pike, Dave Presotto, Sean Dorward, and Bob Flandrena: This is a collection of the original papers about Plan 9, published by the system’s creators. It’s an invaluable resource for understanding the original motivations and design principles behind the system.
4. “Plan 9 from User Space”: This isn’t a book but an open-source project that ports many Plan 9 tools to Unix-like operating systems. It’s a great resource for understanding how Plan 9’s concepts can be applied to other systems.
While these resources should provide a good foundation, much of the information and knowledge about Plan 9 is found in online resources and community forums. The official Plan 9 website provides a wealth of documentation, and the 9fans mailing list is a great place to connect with other Plan 9 users and enthusiasts.