Plan 9: nieznany system operacyjny sprzed lat 90. zmienia dzisiejszy internet
Wanix – pełne Linux w przeglądarce, bez serwera
Pamiętasz czasy, gdy odpalenie Linuksa w chmurze oznaczało wydanie horrendalnych pieniędzy na VPS? A co gdybyś mógł uruchomić pełne środowisko Alpine Linux dosłownie w zakładce przeglądarki, nie angażując żadnego serwera?
Właśnie tym zajmuje się Wanix. I szczerze? Po kilku godzinach zabawy jestem pewien, że to projekt warty uwagi każdego developera.
Co to w ogóle jest Wanix?
Wanix to środowisko wzorowane na Unixie, które działa całkowicie po stronie klienta – w Twojej przeglądarce. Możesz myśleć o tym jak o miniaturowym systemie operacyjnym zainspirowanym Plan 9, zamkniętym w jednej stronie internetowej.
Co dostajesz out of the box? Przestrzenie nazw per-proces, działającą powłokę (rc, czyli ta sama co w Plan 9) oraz słynną filozofię „wszystko jest plikiem". Wszystko odizolowane, wszystko client-side, wszystko Twoje.
Cała magia opiera się na niestandardowych web components. Potrzebujesz terminala? Wstaw <wanix-term>. Shell? <wanix-task>. Czujesz się ambitnie? <wanix-vm> odpali Ci pełną maszynę wirtualną z Linuksem (dzięki v86). Cały ekosystem komunikuje się przez system przestrzeni nazw, który brzmi znajomo, jeśli kiedykolwiek miałeś do czynienia z Plan 9.
Dlaczego Plan 9? Naprawdę?
Tu robi się ciekawie. Plan 9 from Bell Labs to następca Uniksa, wypuszczony w połowie lat 90. Nigdy nie podbił komercyjnego rynku, ale wprowadził kilka idei, które wyprzedzały swoją epokę:
- Przestrzenie nazw per-proces – każdy proces widzi własną wersję systemu plików
- Katalogi unijne – możesz nałożyć wiele źródeł filesystemu w jedno widok
- Wszystko jest plikiem – urządzenia, procesy, połączenia sieciowe – wszystko dostępne przez filesystem
Te koncepcje były rewolucyjne w 1995 roku. W 2024 są idealne do webdevu. Dlaczego? Bo współczesny internet coraz częściej wymaga uruchamiania skomplikowanej logiki po stronie klienta, zachowując przy tym ścisłą izolację. Model przestrzeni nazw z Plan 9 daje Ci dokładnie to – drobnoziarnistą kontrolę nad tym, co każdy „proces" (czy raczej task) może widzieć i do czego ma dostęp.
Gdzie to się przydaje w praktyce?
Dość teorii. Co konkretnie możesz z tym zrobić?
Odizolowane środowiska developerskie: Wyobraź sobie kompletne workspace deweloperskie zamknięte w zakładce przeglądarki. Edytujesz pliki w interfejsie przypominającym VS Code, odpalasz komendy build w prawdziwym shellu – i nic nie ruszasz na swoim lokalnym sprzęcie. Idealne do pair programmingu, tymczasowych stanowisk albo dawania contractorom dostępu do odizolowanych przestrzeni kodowania.
Testowanie między przeglądarkami bez chmury: Odpalasz różne środowiska Linuksowe i testujesz swoje oprogramowanie na różnych konfiguracjach – wszystko lokalnie. Koniec z czekaniem na CI runners albo płaceniem za browser testing services.
Operacje na plikach w stylu local-first: Workbench Wanixa daje Ci pełne IDE oparte na przestrzeniach nazw. Ale najlepsze? To nie są tylko lokalne pliki. Możesz edytować pliki na zdalnych przestrzeniach nazw. Nałóż lokalną przestrzeń na zdalną i nagle łączysz się z cudzym środowiskiem, współpracując w czasie rzeczywistym przez filesystem.
Edukacyjne sandboxy: Ucz Unix, administrację systemem albo fundamenty kontenerów bez obaw, że student przypadkowo (albo celowo) zepsuje produkcyjne systemy. Sandboxem jest sama zakładka przeglądarki.
Jak to technicznie działa?
Dla ciekawskich: Wanix łączy kilka technologii w całkiem elegancki sposób.
- WebAssembly – pozwala uruchamiać kod natywny w przeglądarce
- Niestandardowe web components – abstrakcyjne tagi
<wanix-*>ukrywające złożoność - Bindowanie przestrzeni nazw – montujesz pliki, archiwa, nawet inne przestrzenie nazw do swojego środowiska
- 9P przez WebSocket – ten sam protokół, którego Plan 9 używał w 1995 roku, teraz napędza zdalny dostęp do przestrzeni nazw
Piękno tkwi w prostocie. Trzy tagi i masz działający shell. Pięć tagów i dostajesz pełne IDE z dostępem do terminala. Komponenty składają się naturalnie, zgodnie z unixową filozofią „rób jedną rzecz dobrze".
Co to oznacza dla webdevu?
Obserwujemy ciekawą zmianę. Przez lata trend brzmiał „wszystko do chmury". Ale rośnie świadomość, że obliczenia client-side mają swoje zalety: mniejsze opóźnienia, brak kosztów serwera, lepsze wsparcie offline, prywatność (dane nigdy nie opuszczają Twojej maszyny).
Wanix stoi twardo w paradygmacie local-first. Nie zastąpi tradycyjnego hostingu – bądźmy szczerzy – ale eksploruje przestrzeń, do której klasyczne architektury nie mają łatwego dostępu. Jeśli budujesz narzędzia dla developerów, aplikacje collaborative albo platformy edukacyjne, ten kierunek zasługuje na Twoją uwagę.
Faceci od Plan 9 rozwiązywali problemy distributed computingu w 1995, z którymi wciąż się mierzymy. Okazuje się, że przyszłość czasem wygląda bardzo znajomo.
Chcesz poeksperymentować? CDN sprawia, że dodanie Wanixa do dowolnej strony jest banalnie proste. Ale ostrzegam: jak raz odpalisz Linuksa w przeglądarce, możesz się znaleźć w bardzo interesującej dziurze.