Возрождение легенды: Как Plan 9 из 90-х меняет веб прямо сейчас
Wanix: Plan 9 приходит в твой браузер
Помнишь времена, когда чтобы запустить Linux VM, нужно было поднимать дорогой облачный инстанс? А что если я скажу, что прямо сейчас можно загрузить полноценное Alpine Linux окружение прямо в браузерной вкладке, без единого запроса к серверу?
Именно это делает Wanix. И честно говоря, после того как я с ним поигрался, я уверен — это проект, за которым стоит пристально следить.
Что такое Wanix?
По сути, Wanix — это Unix-подобная среда на базе WebAssembly, которая работает целиком в браузере. Представь себе маленькую операционную систему в стиле Plan 9, живущую внутри веб-страницы. Здесь есть per-process namespaces, нормальная оболочка (rc — оболочка из Plan 9) и легендарная философия «всё — это файл». Всё изолировано, всё на клиенте, всё твоё.
Магия работает через несколько кастомных веб-компонентов. Нужен терминал? Вставляешь <wanix-term>. Хочешь shell? <wanix-task>. Чувствуешь себя смелым? <wanix-vm> поднимает Linux VM через v86. Всё общается между собой через систему namespace, которая кажется до жути знакомой, если ты хоть раз трогал Plan 9.
Почему именно Plan 9? Серьёзно?
Тут начинается самое интересное. Plan 9 from Bell Labs — это наследник Unix от той самой лаборатории, выпущенный в середине 90-х. Коммерчески он не взлетел, но принёс идеи, которые были безумно прогрессивными:
- Per-process namespaces — каждый процесс видит свою версию файловой системы
- Union directories — можно наложить несколько источников файлов в одно представление
- Всё — файл — устройства, процессы, сетевые соединения доступны через файловую систему
В 1995 году это было радикально. В 2024 — это идеально подходит для веб-разработки. Почему? Потому что современный веб всё больше нуждается в запуске сложной логики на клиенте с жёсткой изоляцией. Namespace-модель Plan 9 даёт exactly that — тонкий контроль над тем, что каждый «процесс» (или в нашем случае task) видит и может делать.
Реальные сценарии использования
Хватит теории. Что конкретно можно делать с этим?
Изолированные среды разработки: Представь, что поднимаешь полноценное рабочее пространство прямо в браузере. Редактируешь файлы в VS Code-подобном редакторе, запускаешь билд-команды в настоящем shell — и всё это без касания локальной машины. Идеально для парного программирования, временных рабочих окружений или предоставления доступа подрядчикам в изолированные пространства.
Кросс-браузерное тестирование без облака: Загружаешь разные Linux окружения и тестируешь софт против разных конфигураций — и всё локально. Никаких очередей в CI и оплат сервисов для browser testing.
Локально-первые файловые операции: Workbench даёт полноценную IDE поверх namespace Wanix. Но тут самое вкусное — работать можно не только с локальными файлами. Можно редактировать файлы в удалённых namespace. Наложил локальный namespace на удалённый — и вот ты уже работаешь в чужом окружении, коллабишь в реальном времени через файловую систему.
Образовательные песочницы: Преподаёшь Unix, сисадминство или основы контейнеризации без страха, что студенты случайно (или намеренно) сломают продакшен. Sandbox — это сама браузерная вкладка.
Техническая реализация
Для тех, кому интересно, Wanix работает через хитрое сочетание технологий:
- WebAssembly — запускает нативный код в браузере
- Кастомные веб-компоненты — абстрагируют сложность (
<wanix-*>теги) - Namespace binding — позволяет монтировать файлы, архивы и даже другие namespace в своё окружение
- 9P over WebSocket — для доступа к удалённым namespace. Да, тот самый протокол, который Plan 9 использовал в 1995 году
Красота в простоте. Три тега — получаешь работающий shell. Пять тегов — полноценная IDE с терминальным доступом. Компоненты складываются естественно, следуя Unix-философии «делай одно дело хорошо».
Что это значит для веб-разработки
Мы наблюдаем интересный сдвиг. Годы迭 шёл тренд «переносим всё в облако». Но сейчас растёт понимание, что клиентские вычисления имеют свои преимущества: меньше задержка, нет серверных затрат, лучше офлайн-поддержка, приватность (данные не покидают машину).
Wanix стоит ровно в этом локально-первом направлении. Он не заменяет облачный хостинг — давайте будем реалистами — но исследует пространство, куда традиционная архитектура не может легко добраться. Если ты строишь инструменты для разработчиков, коллаборативные приложения или образовательные платформы, этот подход заслуживает твоего внимания.
Ребята из Plan 9 решали проблемы распределённых вычислений в 1995 году, над которыми мы до сих пор думаем. Оказывается, будущее иногда очень похоже на прошлое.
Хочешь поэкспериментировать? CDN позволяет добавить Wanix на любую страницу буквально в пару строк. Но честное предупреждение: когда ты впервые загрузишь Linux VM в браузере, можешь обнаружить себя в очень интересной кроличьей норе.