PiDP-11: Replika počítače PDP-11 založená na Raspberry Pi

  • Autor: Lukáš Charvát
  • Publikováno: 10. 7. 2023
  • Štítky: #pdp11 #raspberrypi #pájení #retrocomputing
PiDP-11: Replika počítače PDP-11 založená na Raspberry Pi

Díky svému průkopnickému přínosu mají některé stroje v dějinách výpočetní techniky zvláštní místo. K nim bezpochyby patří počítač PDP-11 jakožto ikonické zařízení, které způsobilo převrat v způsobu, jakým lidé výpočetní techniku používají. Kvůli své bohaté historii a neutuchající popularitě není divu, že si nadšenci chtějí tento skvost historických počítačů znovu vytvořit. Jedním z nich je Oscar Vermeulen, který na svých stránkách Obsolescence Guaranteed přišel s projektem PiDP-11.

Projekt PiDP-11

Projekt PiDP-11 si klade za cíl oživit klasický počítač PDP-11 s jeho přepínači a ikonickým světelným panelem (angl. nazývaný blinkenlights). Stavebnice má asi dvoutřetinovou velikost originálu, při tom se ale věrně snaží napodobit vzhled počítače detailní skříní a přepínači. Jak napovídá název projektu, srdcem tohoto nostalgického je počítač Raspberry Pi (doporučuje se Pi 2, 3 nebo 4), na kterém běží upravený emulátor SIMH s podporou BlinkenBone, která umožnuje připojení emulátoru k panelu se světly.

I když nejsou povinné, světla a přepínače skutečně dovytvářejí kompletní zážitek z historického PDP-11.

Světelný panel a přepínače ve skutečnosti nejsou pro provoz PiDP-11 nutné, protože k provozu stačí Raspberry Pi a emulátor SIMH. Nicméně tyto estetické prvky vás spojí s pocitem používání původního hardwaru takovým způsobem, jaký samotný software nikdy nemůže nabídnout.

Sestavení hardwaru

Stavebnici PiDP-11 jsem dostal od kamarádů. Jelikož mé zkušenosti s pájením se omezují pouze na základní opravy modelových vláčků, pájení LED diod a přepínáčů jsem se trochu bál. Stavebnice ale naštěstí obsahuje praktické rámečky pro přesné zarovnání komponent. Následováním přehledně popsaných instrukcí na webu projektu se mi podařilo dokončit celou stavbu asi za šest hodin. Hotová a osazená PCB deska PiDP-11 září 64 blikajícími LEDkami, obsahuje dva otáčecí knoflíky a řadu unikátních přepínačů. To vše je připojeno k Raspberry Pi skrz GPIO piny. Upravená verze emulátoru SIMH dovoluje Raspberry Pi přesně zpracovávat vstup a výstup z panelu. Monitor lze připojit klasicky přes rozhraní HDMI. Je ale také možné využít SSH nebo jít tou pravou old-school cestou přes rozhraní RS-232. Ze zadní strany má krycí deska vystřižené otvory pro všechny tyto možnosti.

Konfigurace softwaru

PiDP-11 vyžaduje 32bitovou verzi operačního systému Raspberry Pi. Já si zvolil bězný Raspbian OS bez GUI. Kromě toho je základní nastavení poměrně jednoduché. Ve zkratce se očekává, že nastavíte svoje Raspberry Pi do bodu, kdy se úspěšně připojí k internetu a výchozí uživatel se jmenuje pi. Pak stačí nainstalovat software pidp11 pomocí následujících příkazů:

# Vytvoření pracovního adresáře pro pidp sudo mkdir /opt/pidp11 cd /opt/pidp11 # Získání a rozbalení instalačního balíčku sudo wget http://pidp.net/pidp11/pidp11.tar.gz sudo tar -xzvf pidp11.tar.cz # Provedení samotné instalace sudo /opt/pidp11/install/install.sh

Nyní můžete pokračovat ve stahování operačních systémů (včetně BSD 2.11, Unix V7 nebo DOS-11):

cd /opt/pidp11 sudo wget http://pidp.net/pidp11/systems.tar.gz sudo tar -xzvf systems.tar.gz

Emulátor SIMH běží v relaci programu screen. V Raspbianu bez grafického rozhraní se ve výchozím nastavení po restartu a loginu uživatele ocitnete v bootovacím menu PDP-11. V případě spuštění Raspbianu do grafického rozhraní je pak potřeba otevřít terminálové okno a zadat ./pdp.sh, abyste se připojili k již běžící relaci v programu screen. To je také nutné udělat, pokud opustíte program screen pomocí kombinace kláves CTRL+a a d.

Zavedení operačního systému na PiDP-11

Po zapnutí PiDP-11 se spustí malá demo aplikace nazvaná IDLED, která způsobí, že světelný panel začne blikat. Výběrem octalové hodnoty na přepínačích (např. 1002 demo aplikaci blinky nebo 0102 pro BSD 2.11) a stisknutím voliče adres pak spustíte některý z nainstalovaných operačních systémů. Pokud používáte vždy jen jeden operační systém, můžete přepínače nastavit tak, aby se příště aplikace IDLED přeskočila a PiDP-11 rovnou přešlo do zvoleného systému.

Konfigurace přepínačů pro spuštění demo aplikace blinky (001 - 000 - 000 - 010).

Na výše uvedeném obrázku je vidět konfigurace přepínačů pro spuštění demonstrační aplikace zvané blinky. Aplikace je v bootovací nabídce uvedena pod číslem 1002, a proto je třeba nastavit přepínače octalově jako 001 - 000 - 000 - 010.

Program Hello World v jazyce C v BSD 2.11

Osobně jsem si z dostupných operačních systémů nejvíce užil s BSD 2.11. PiDP-11 se standardně spouští v režimu jednoho uživatele. Když v něm ale pak stisknete CTRL+d, přejdete do režimu více uživatelů. Při prvním spuštění a ideálně každých dalších 5 spuštění byste však měli provést kontrolu disku. Jak to udělat? Prostě nabootujte jako obvykle do režimu jednoho uživatele, dokud se nezobrazí tato výzva:

erase, kill ^U, intr ^C #

Nyní proveďte úplnou kontrolu pomocí programu fsck a nechte disky pročistit.

fsck -p -t scratch

Po krátké chvíli by se měla zobrazit tato nebo podobná zpráva.

/dev/ra0a: 64 files, 2812 used, 5012 free

Pokud je vše v pořádku nebo něco bylo opraveno automaticky, zobrazí se výzva # a nyní můžete přejít do víceuživatelského režimu (stisknutím CTRL+d). Jak se tam dostane, přihlaste se jako root (bez hesla).

Konečně je čas zkompilovat náš první program na BSD 2.11! A jak jinak než v editoru vi! Samozřejmě je možné soubory upravovat i bez přímého použití vi (např. tak, že místo toho nahrajete soubor z jiného počítače do svého Pi přes SSH nebo FTP), ale každý (nejen historický) nadšenec jistě spustí právě editor vi. Stačí vytvořit a přepnout se do nějakého pracovního adresáře (např. /root/hello), a pak začít editovat soubor hello.c pomocí vi:

#include <stdio.h> int main() { printf("Ahoj, svete!\n"); return 0; }

Nyní zkompilujte kód pomocí kompilátoru cc, spustíme binární soubor ./a.out a máte vytištěné první "Ahoj, svete!" z počítače PDP-11 běžícím na platformě Rasberry Pi:

cc hello.c ./a.out Ahoj, svete!

Závěr

Autor projektu PiDP-11 Oscar Vermeulen skutečně dává do stavebnice každý kousek svého nadšení --- od špičkově provedeného pouzdra a předního panelu až po rozsáhlé značení na desce plošných spojů, které usnadňuje sestavení. Navíc pokud vás už PDP-11 nebaví, můžete se v případě potřeby vždy snadno přepnout zpět do Raspbianu. A jelikož emulátor SIMH vaše Raspberry Pi příliš nezatěžuje, PiDP-11 pravděpodobně zvládne i další serverové úlohy. Předpokládám, že u mnoha uživatelů PiDP-11 plní druhotnou funkci souborových nebo mediálních serverů. Díky své flexibilitě, pozornosti věnované detailům a respektu k historii výpočetní techniky je PiDP-11 nutností pro každého, koho fascinuje technika ze "staré školy".

Zdroje

  • PiDP-11 projekt: Popis projektu a návod.
  • BSD 2.11: Doplňková četba BSD verze 2.11 speciálně připravené pro PiDP-11.