Plan 9 — операционная система, разработанная Bell Labs (позже Lucent Technologies, затем подразделение в Alcatel-Lucent, в настоящее время – подразделение Nokia) с конца 1980-х гг. Система создавалась с учётом таких новых реалий, как локальные и глобальные вычислительные сети и рабочие станции. Идеология UNIX — «Всё есть файл» легла в основу системы.
В 2000 году система вышла с открытыми исходными кодами и в 2002 году под свободной лицензией (Lucent Public License), одобренной OSI.
В феврале 2014 года Калифорнийский университет в Беркли получил от компании Alcatel-Lucent право публикации исходного кода Plan 9 под GNU GPLv2.
Plan 9 имеет компактный код, и таким образом теоретически может быть портирована на любую процессорную архитектуру, поддерживающую аппаратный MMU.
На момент января 2024 года с сайта Bell Labs можно загрузить четвёртую версию, которая собрана для x86.
Другими недавними операционными системами, вдохновлёнными Plan 9, являются Harvey OS и Jehanne OS.
В марте 2021 года права на операционную систему переданы фонду Plan 9.
Система построена на трёх основных принципах:
- Все ресурсы представлены как файлы и доступны в иерархической файловой системе.
- Локальные и удалённые ресурсы не различаются, для доступа к ним реализован стандартный протокол 9P.
- Каждая группа процессов имеет собственное пространство имён, собранное из файловых иерархий, предоставленных различными ресурсами.
В отличие от современных операционных систем, в которых пользователь получает доступ к персональному компьютеру или рабочей станции, в Plan 9 пользователь получает доступ к распределённой вычислительной среде и имеет возможность конфигурировать своё рабочее пространство. Так, /dev/mouse для процесса — это мышь на компьютере, с которого этот процесс запущен, причём это может быть не тот компьютер, на котором исполняется процесс.
Основным языком программирования является диалект языка ANSI Си, отличающийся встроенной поддержкой Unicode и рядом других полезных расширений, таких как формирование структур и инициализация массивов. Реализованы кроссплатформенная компиляция и отладка, успешно портированы Perl, Python, Scheme, noweb, Haskell, Newsqueak, Go и ML.
В Plan 9 активно используется UnionFS — вспомогательная файловая система для Linux и FreeBSD, производящая каскадно-объединённое монтирование других файловых систем. Это позволяет файлам и каталогам изолированных файловых систем, известных как ветви, прозрачно перекрываться, формируя единую связанную файловую систему. Каталоги, которые имеют тот же путь в объединённых ветвях, будут совместно отображать содержимое в объединённом каталоге новой виртуальной файловой системы.