blog.michalt.pl

Plan 9 - czyli trochę zapomniany uniksowy ciąg dalszy

19.04.2022 23:17 Tech

Bardzo podoba mi się plikowa abstrakcja w systemach uniksowych. Często na przykład można spotkać się z określeniem, że w uniksopodobnym Linuksie wszystko jest plikiem. W formie plików prezentowane w systemie są między innymi urządzenia, procesy, gniazda, katalogi, specyficzne byty typu null lub zero i tak dalej. W systemie operacyjnym Plan 9 plikową reprezentację otrzymały również ekrany systemu okienkowego. Postanowiłem cofnąć się z Wami trochę do przeszłości i odrobinę przyjrzeć temu niewątpliwie ciekawemu projektowi i pogmerać w nim.



Glenda - Plan 9 logo

Zacznijmy od historii

Plan 9 zrodził się pod koniec lat 80-tych w Bell Labs i został zainicjowany przez grupę niezwykle utalentowanych i zasłużonych ludzi: Kena Thompsona, Roba Pike’a, Dave’a Presotto i Howarda Trickay’a. Miał on być kontynuacją najlepszych Uniksowych koncepcji i według wielu opinii nią się stał. Pierwsze wydanie ukazało się w 1992 roku, a ostatnie niestety dawno bo w 2004. Maskotką projektu jest króliczek o imieniu Glenda.



Ciekawostki implementacyjne

Najważniejszą z nich jest to, że Plan9 podarował światu system kodowania UTF-8. Jak już wcześniej wspomniałem, plikowej reprezentacji doczekały się również ekrany systemu okienkowego. System został napisany w języku C i oparty jest na hybrydowym jądrze. Istotna różnica w stosunku do Unix pojawia się w bibliotece standardowej języka C. We wcześniejszych wersjach zamiast biblioteki standardowego wejścia/wyjścia stdio, zastosowano bibliotekę bio. Z czasem dodano obok stdio.
Można tu spotkać także alternatywny wariant programu Make o nazwie Mk, który wykorzystuje pliki mkfile. Środowisko graficzne, a właściwie menedżer okien nosi nazwę Rio i jest dosyć prymitywny.



Czas na trochę zabawy

Plan 9 - instalator

Po rozruchu obrazu systemu pojawią się 2 opcje, pierwsza dotyczy instalacji systemu, druga pozwala na pracę w trybie LiveCD. Sam instalator nie jest zbyt trudny i tuż po tekstowej części przechodzi do… Również tekstowego instalatora, ale obudowanego w okienko.
Zarówno w trybie live jak i po instalacji, domyślnym użytkownikiem jest Glenda.


Pierwszym problemem z jakim możecie się zetknąć podczas uruchamiania systemu jest rozdzielczość. Aby wylistować listę trybów wystarczy wpisać w terminal:

aux/vga -m vesa -p

Ja osobiście użyłem i polecam: 1600x1200x32
Co ciekawe, katalog użytkownika znajduje się w folderze /usr, podobnie rzecz ma się w systemach z rodziny BSD, na przykład we FreeBSD, z tą różnicą że w systemie spod znaku diabełka katalog domowy znajduje się w /usr/home i dla zgodności niektórych aplikacji istnieje twarde dowiązanie do niego z poziomu katalogu /home. Różnica pojawia się również w przypadku symbolu tyldy – Plan 9 nie wiąże go z katalogiem domowym użytkownika.



Plan 9 - pulpit

Po uruchomieniu wita nas dosyć prymitywny pulpit na którym znajdziemy terminal wyświetlający powitalny tekst, w tle aplikację gnot, która wyświetla wykorzystanie zasobów, aplikację z datą, godziną i nazwą zalogowanego użytkownika oraz edytor tekstu acme.

Zarządzanie oknami odbywa się w dość specyficzny i prymitywny sposób. Trzeba najechać na pusty obszar myszą (czasem menu kontekstowe działa na aplikacjach – nie wiem od czego to zależy), kliknąć prawy przycisk, a następnie wykonaną akcję przeprowadzić poprzez kliknięcie prawym klawiszem w wybrane okno aplikacji.

Wszystko niestety jest bardzo usterkowe. W którekolwiek okno byśmy nie kliknęli, będzie ono działać w trybie edycji i w miejsce wyświetlanej treści możemy wprowadzić tekst. Terminal również działa dosyć niestabilnie i boryka się z tym samym problemem.



Aplikacje

Nie zabrakło grep, awk, sed oraz wielu innych znanych uniksowych aplikacji. Gdy zabłądzimy w odmęty niewiedzy, podobnie jak w innych Uniksach, tu również pomoże nam man. Dzięki ps wyświetlimy listę procesów, ale brak tu między innymi uname, ping lub less.

Co ciekawe, znajdziemy tu bardzo stare, historyczne aplikacje, w tym m.in. troff do formatowania tekstu i yacc – narzędzie wspomagające tworzenie kompilatorów języków programowania. Są tu również scp i ssh, jednak nie udało mi się połączyć z żadnym hostem – problem z połączeniem sieciowym. Nie znalazłem kompilatora, a menedżera pakietów nawet się nie spodziewałem. Pełna lista aplikacji znajduje się w katalogu /bin – zachęcam do eksploracji.



Podsumowując

Polecam wszystkim chętnym chcącym zetknąć się z historycznym Uniksem. Na moich komputerach niestety nie udało mi się uruchomić żadnego innego staruszka - próbowałem między innymi z Unix System V. Wiele rzeczy w Plan 9 nie chciało ruszyć i wiele nie działało poprawnie. Szkoda, że projekt nie jest dalej rozwijany. Istnieje bardziej zaawansowana kontynuacja jego koncepcji w postaci Inferno, ale jest to inny system operacyjny. Nie rozwija się on zbyt dynamicznie, ale w jego repozytorium widać commity z końca 2021 roku https://bitbucket.org/inferno-os/inferno-os/commits.

Zainteresowanych gmeraniem w Plan 9 zapraszam na stronę projektu z której można pobrać obraz systemu: https://9p.io/plan9/download.html