PalmOS

PalmOS wskrzeszony. System powraca na najsłabszym Raspberry Pi

4 minuty czytania
Komentarze

Dmitry Grinberg to majsterkowicz z dużym sentymentem do czasów dawno już minionych. Jego celem jest reaktywowanie systemu PalmOS na jak najsłabszym współczesnym urządzeniu, tak aby móc zbudować współczesnego odpowiednika palmptopa, który jest skrojony pod możliwości systemu, a nie coś, co spokojnie poradziłoby sobie ze znacznie bardziej rozbudowanym OS.

PalmOS na Raspberry Pi Pico

PalmOS
Chyba jedyna generacja, gdzie wszystkie 3 startery były równie fajne.

Zacznijmy jednak od samego PalmOS. W końcu w Polsce system ten był zawsze bardzo egzotyczny. Już same urządzenia klasy PDA nigdy nie były popularne w naszym kraju, a i tak dominował u nas Windows Pocket. Otóż PalmOS to system operacyjny stworzony przez firmę Palm, Inc. Swoją popularność zyskał w latach 90. i na początku lat 2000 jako platforma dla urządzeń klasy PDA. Oferował on trzy atuty, które z perspektywy dzisiejszych smartfonów są uznawane za standard: prosty interfejs graficzny, obsługę aplikacji i stosunkowo łatwą synchronizację z innymi urządzeniami. Oczywiście miał też pewne braki, jak brak wielozadaniowości w swoich wczesnych wersjach. Pamiętajmy jednak, że to system dla kieszonkowych komputerów z lat 90. Mowa więc o systemie, do którego nietrudno czuć sentyment. 

Dmitry w ramach projektu, który ochrzcił mianem rePalm  postanowił przywrócić życie temu systemowi na najsłabszym z Raspberry Pi, czyli na Raspberry Pi Pico. Ten najprostszy z komputerów jednopłytowych, którego głównym elementem jest mikrokontroler RP2040 ma trzy zalety: jest śmiesznie tani i można go kupić już za kilkanaście złotych, w sieci jest pełno dokumentacji na jego temat – zarówno tej oficjalnej, jak i stworzonej przez innych majsterkowiczów, oraz jego specyfikacja jest najbliższa tej, którą oferowały PDA w tamtym okresie. 

Oczywiście w sieci są projekty, które uruchamiają PalmOS na wydajniejszych modelach Raspberry Pi, czego przykładem jest poniższe nagranie. Jednak są one znacznie mniej… spektrakularne.

PalmOS na Raspberry Pi Pico zaczynał od emulatora

Oczywiście rePalm nie jest wcale aż prostym projektem, jak może się wydawać. Pamiętajmy, że PalmOS nie był systemem opracowanym pod architekturę ARM, dla której wsparcie pojawiło się dopiero wraz z PalmOS 5.0. Wcześniejsze wersje systemu pracowały jednak na rdzeniach z serii 68000. Natomiast projekt rePalm zakłada uruchomienie systemu na rdzeniach ARM Cortex-M0, czyli tych dedykowanych mikrokontrolerom np. w dyskach twardych. Samo to jest narzuceniem na siebie dużego wyzwania.

Nie można jednak utrudniać sobie życia w nieskończoność. Dlatego też początkowo projekt był testowany na emulatorze CortexEmu. Emulator ten symuluje działanie procesora Cortex-M0, co pozwoliło Grinbergowi na przeprowadzenie wstępnych testów z poziomu komputera, a nie prób na mikrokontrolerze. Jednak kiedy te zakończyły się powodzeniem, to nasz miłośnik PalmOS postanowił przejść o krok dalej. Wybór więc padł na Raspberry Pi Pico z powodów wspominanych wyżej. 

rePalm to więcej, niż port PalmOS

Grinberg nie zatrzymał się na prostym przeniesieniu systemu. Stworzył niestandardowe jądro, które spełnia wszystkie wymagania systemu PalmOS. W ten sposób nie mamy do czynienia z prostym portem, który się uruchamia i niewiele poza tym, a z czymś, co pozwala wykorzystać pełny potencjał zarówno systemu, jak i RP2040. Narzędzie to oferuje zaawansowane funkcje, takie jak możliwość wyłączenia przełączania zadań i zmuszenie do wstrzymania wątków. Jednak to nie wszystko: rePalm zawiera również precyzyjne timery, grupy zdarzeń, skrzynki pocztowe i inne funkcje, które są nierozerwalnie związane z PalmOS

PalmOS w niemal gotowym sprzęcie

Samo odpalenie systemu na Raspberry Pi to jednak wciąż nie wszystko. Dmitry postanowił pójść o jeszcze jeden krok dalej i zmontował coś, co jest tylko o krok od stania się prawdziwym PDA. Otóż podłączył do malinki 2,8-calowy ekran dotykowy o rozdzielczości 320 × 240, która w latach 2000 była jedną z typowych dla urządzeń tego typu. Ekran komunikuje się z mikrokontrolerem za pośrednictwem interfejsu SPI, co zapewnia szybką i stabilną komunikację. Teoretycznie wystarczyłoby więc tylko dodać jakiś akumulator jako źródło zasilania, oraz zamknąć to w obudowie, aby otrzymać nowoczesnego palmptopa.  Co więcej, każdy może go zbudować, ponieważ kod źródłowy systemu, oraz masa porad, jak zbudować to urządzenie są dostępne na oficjalnej stronie projektu. 

Źródło: dmitry.gr, YouTube fot: dmitry.gr, Wikimedia Commons/Stefano Palazzo

Motyw