
Operační systém Risc OS je jedním ze systémů, které fungují na minipočítači Raspberry Pi s procesorem ARM. Jedná se o jednouživatelský systém, který se nepodobá ani Windows ani Linuxu a má jen velmi malé HW nároky. Zajímavostí je například použití kooperativního multitaskingu pro simulaci běhu více programů současně.
Pro tento operační systém je k dispozici webový server WebJames a podporou PHP a databázového systému SQLite. Všechny komponenty lze doinstalovat pomocí nástroje PackMan. Díky tomu, že Docházka 3000 byla v minulosti portována na různé SQL servery a pro testovací účely byla vytvořena i verze pro SQLite, vznikl nápad zprovoznit jí právě v prostředí operačního systému Risc OS aktuální verze 5.19.
Od 31.10.2014 je tedy docházkový systém dostupný pro další operační systém. V současné době lze tedy Docházku 3000 provozovat na libovolné verzi Windows, dále na systémech Linux, ReactOS a nově Risc OS. Poslední dva systémy jsou ale spíše pro účely testování a jejich nasazení v ostrém provozu se spíše nepředpokládá.
U Risc OS zatím nejsou na rozdíl od ostatních systémů k dispozici ovladače pro on-line komunikaci s terminály. A tak na tomto systému lze využít pouze možnost importu dat z biometrických terminálů BM-Finger pomocí USB flash disku (flešky).
Několik poznatků z fungování Risc OS a provozu webového serveru na něm:
Jak již bylo uvedeno, Risc OS se hodně liší od Windows nebo Linuxu. Například když spustíte nějakou aplikaci, nenaběhne hned na ploše, ale nejprve skočí dolů do lišty do její pravé části. Až odtud je možné jí klikem zobrazit na ploše.
Jako webový prohlížeč je použite celkem funkční a pro docházku plně dostačující !NetSurf. Spustíte jej tedy tak, že na ploše na něj dvojkliknete levým tlačítkem myši. Jeho ikona se zobrazí vpravo dole na liště. Zde pak stačí jednoduchý klik opět levým tlačítkem a prohlížeč teprve naběhne na ploše.
Názvy spustitelných programů (aplikací) začínají vykřičníkem. Ve skutečnosti na disku nereprezentují přímo soubor, ale složku. Až v ní jsou všechny soubory potřebné pro běh aplikace.
V Risc OS se pro vyvolávání kontextových nabídek nepoužívá pravé tlačítko myši jako třeba ve Windows, ale tlačítko prostřední. Pokud jej Vaše myš nemá a má skrolovací kolečko, stačí zamáčknout toto kolečko dolů. Například ukončení OS (vypnutí) se provede tak, že prostředním tlačítkem kliknete pravo dole na ikonu "Maliny" a z nabídky vyberete Shutdown.
NFS klient SunFish a připojení sdílených disků
Pokud chcete nasdílet síťový disk (například z NAS diskového pole) pomocí NFS, nainstalujte si přes PackMana program !SunFish. Po instalaci jej najdete tak, že kliknete levou myší na dolní liště úplně vlevo na ikonu SD karty (označené :0), rozkliknete složku Apps, dále Disc a zde již rozkliknete !SunFish. Objeví se ikona ryby vlevo dole. Na ní kliknete prostředním tlačítkem a dáte Browse. Na ploše se otevře malé prázdné okno, do kterého kliknete opět prostředním tlačítkem a v menu najedete myší na šipečku vedle nápisu "Search for host". Zde do Hostname zadáte jméno nebo IP adresu NFS serveru a dáte Search. V malém okénku se zobrazí ikona NFS serveru. Tu rozkliknete a zobrazí se nabídka sdílených složek. Po rozkliknutí sožky buď uvedete ID uživatele pro přihlášení, nebo pokud je složka přístupná všem, stačí nechat hodnoty prázdné a kliknout na Save. Tím se složka otevře a už můžete procházet sdílené položky.
Existuje možnost, jak složku sdílenou přes NFS a SunFish navázat do souborového systému SD karty. Pak když běží SunFish, lze se k souborům dostat přes ikonu SD karty a vše tedy funguje podobně jako příkaz mount v Linuxu. Princip nastavení sdílení je ale poněkud jiný než jste zvyklí. Nejpreve je nutné v SunFish najít NFS server a zobrazit sdílené složky podobně jako ve výše uvedeném návodu. Složku ale nerozkliknete, ale kliknete na ní prostředním tlačítkem, dáte šipečku vedle Edit a volbu Name Export. Vyplníte jméno, pod kterým bude složka dostupná a dáte Save. To ale není všechno. Nyní rozkliknete vlevo dole ikonu SD karty a zobrazíte si složku (klidně hlavní), do které budete chtít sdílení vložit. Toto okno nechtě někde bokem na obrazovce, bude ještě potřeba. Teď spustíte textový editor !StrongED a napíšete několik řádků nutných pro vytvoření linkového odkazu. V příkladu budeme sdílet složku na NFS serveru s IP adresou 192.168.1.10 a složka se na něm jmenuje /mnt/hdb1 přičemž v SunFish jsme si jí pojmenovali jako l1hdb1. Ve StrongEd tedy napíšeme toto:
Protocol: NFS3
Server: 192.168.1.10
Export: /mnt/hdb1
Poté kliknete na ikonu modré diskety v menu StrongEd, do Name doplníte l1hdb1 a do Type kliknete prostředním tlačítkem a z nabídky vyberete SunFish. A jak vybrat složku, kam soubor uložit? Opět je to zcela specifické a postup nemá nic společného s Windows. Vidíte v okénku, kam jste napsali název pro sdílení a vybrali typ souboru, v pravo tu ikonku s rybou? Tak tu je teď potřeba levou myší "chytnout" a zatáhnout tam, kam chcete soubor uložit. Tedy žádné tlačítko pro procházení nebo něco podobného. Prostě ikonu souboru přetáhneme myší do požadovaného místa uložení. A to je právě okno, které jsme v předchozím odstavci měli nechat otevřené někde na boku. Do něj ikonu s rybou zatáhneme, čímž odkaz s definovaným sdílením (napsaným jako text ve StrongEd) připojíme do souborového systému. RiscOS je prostě specifický.
Risc OS jako NFS server
Pokud chcete v Raspberry Pi bežícím pod Risc OS se soubory na SD kartě pracovat po síti a tedy si kartu nasdílet přes NFS, nainstalujte si pomocí PackMana program MoonFish. Což je poměrně slušný NFS server. Po instalaci jej najdete přes levou dolní ikonu SD karty ve složce Apps / Disk / MoonFish a doporučujeme si jej přetáhnout jako zástupce na plochu jednoduše levou myší. Aby se tam ikona nacházela i po restartu Risc OS, klikněte někam do plochy prostředním tlačítkem myši, najeďte na šipečku vedle Save, název neměňte a klikněte OK.
Nyní již k samotnému nastavení sdílení, přesněji exportu SD karty přes NFS server MoonFish. Dvojklikem na ikonu MoonFish se jeho zástupce zobrazí na dolní liště vpravo. Na něj klikněte 1x levou myší a již naběhne okno na ploše. Zde klikněte na Add. Do položky Directory napiště :0 (opravdu dvojtečku a nulu, což je něco jako C:\ ve windows) a do položky Export As pak název, pod kterým bude možné složku z ostatních počítačů přes NFS připojit. Například /nfs a poté kliněte na Set. Do seznamu exportů se doplní :0 a nyní již lze z jiného PC tento disk připojit. Například z linuxu příkazem mount. Pokud má Raspberry Pi s Risc OS IP adresu třeba 192.168.1.15 a chcte je na linuxu připojit do připravené složky /mnt/riscos, stačí napsat příkaz mount takto:
mount -t nfs 192.168.1.15:/nfs /mnt/riscos
Tím si po síti připojíte SD kartu a můžete se soubory pracovat například z Linuxu přes Midnight Commandera.
Instalace webového serveru na Risc OS
Pokud chcete na Raspberry Pi s Risc OS provozovat web server s PHP a SQL databází, nabízíme postup podle kterého byla na tomto OS zprovozněna Docházka 3000.
Pomocí PackMan si nainstalujte balíčky WebJames, WebJames-Example Site, PHP-WebJames a PHP-Docs.
Po instalaci spustíte webový server !WebJames. Najdete jej na SD kartě (ikona vlevo dole) ve složce Apps / Web. Ikonu doporučujeme přetáhnout na plochu a nastaveníé plochy uložit (viz výše), aby byla po restartu po ruce pro nové spuštění.
Když spustíte webový prohlížeč !NetSurf a zadáte adresu http://127.0.0.1/ měla by naběhnout úvodní stránka. Na adrese http://127.0.0.1/info.php je výstup funkce phpinfo(), takže si můžete ověřit konfiguraci a také přítomnost ovladačů pro SQLite. Pokud budete chtít konfiguraci PHP upravit, naleznete sice na SD kartě soubor php.ini ve složce /Programing/php , ale tento se nečtě při startu WebJames. Musíte jej překopírovat do složky /!Boot/Choices a poté WebJames nebo celý Risc OS restartovat. Pak přes PHP info poznáte načtení změn konfigurace, pokud jste nějaké provedli.
Pozor, pokud využíváte MoonFish a se soubory na SD kartě pracujete po síti přes NFS sdílení například pomocí MidnightCommanderu na linuxu, jistě si všimnete, že některé soubory mají za jménema a příponou ještě čárku a nějaké další znaky. Risc OS neurčuje totiž typy souborů příponou, ale právě trojmístným hexadecimálním číslem za čárkou na konci souboru. Například u konfiguračního souboru php.ini vidíte v MC soubor takto: php.ini,ffd
Takže při kopírování je třeba název zachovat celý. Samotné skriptové PHP soubory zase mají koncovku ,18a takže když chcete vytvořit vlastní soubor PHP pro zpracování webserverem přes NFS sdílení, je třeba na to myslet. Když například chcete vytvořit PHP skrtipt pro test funkce SQLite, tak ve složce /Apps/Web/Site (což je složka pro webové stránky web serveru WebJames) vytvořte soubor test.php,18a
Pokud nepracujete z jiného počítače přes NFS, ale přímo například ve StrongEd v samotném RiscOS, nemusíte si čísla pamatovat a prostě při ukládání souboru přes ikonu diskety zadáte typ souboru PHP třeba výběrem z menu přes prostřední tlačítko myši (samotné uložení souboru viz návod pro SunFish - přetažení ikony vedle názvu souboru do cílové složky myší). On totiž samotný Risc OS hexačísla s čárkou nezobrazuje.
Zde je ukázka kódu pro připojení k databázi (datový soubor nemusí předem existovat), vytvoření tabulky, zapsání několika řádků do této tabulky a následně zobrazení tabulky v prohlížeči. Pro komunikaci s databází se používá PDO funkce v PHP.
<?
// Connect do databaze SQLite přes PDO driver
$db=new PDO ("sqlite:mojedatabaze.sql");
// Vytvoreni tabulky test1
$select="create table test1 (a int, b varchar(100))";
$db->exec($select);
// Zapis dat do tabulky test1
for ($i=1; $i<=5; $i++) {
$select="insert into test1 values ($i,'test".$i."')";
$count=$db->exec($select);
}
// Cteni dat z tabulky test1 a zobrazení
echo"<p><b>Tabulka1:</b><br>";
$select="select * from test1";
foreach ( $db->query($select) as $vysl ) {
echo $vysl["a"]." - ".$vysl["b"]."<br>";
}
// Odpojení databáze
$db=null;
?>
Kromě PDO funkcí PHP lze s databází pracovat i přes nativní SQLite funkce. Například takto:
<?
// Pripojeni k DB
$dbname="mojedatabaze.sql"
$db=sqlite_open($dbname);
// Zobrazeni obsahu tabulky
$select="select * from test1";
$vysl=sqlite_query($db,$select);
while ($result=sqlite_fetch_array($vysl)) {
for ($i=0; $i<sqlite_num_fields($vysl); $i++) {
$name=sqlite_field_name($vysl,$i);
echo $name." = ". $result[$name]."<br>";
}
}
// Odpojeni databaze
sqlite_close($db);
?>
Je dokonce možné mít databázi uloženou na sdíleném disku přes NFS třeba v NAS serveru. Ukázku, jak z RiscOS NFS disk připojit a "namountovat" do souborového systému najdete výše u popisu programu SunFish. Pokud již máte toto sdílení připojeno dle zmíněného návodu, stačí v PHP uvést příkaz pro připojení databáze v této formě:
$db=sqlite_open("/l1hdb1/mojedatabaze.sql");
nebo přes PDO takto:
$db=new PDO ("sqlite:/l1hdb1/mojedatabaze.sql");
Nastavení pevné IP adresy v Risc OS
Na ploše rozklikněte ikonu !Configure a v novém okně pak 1x klikněte na Network. Dále klikněte na Internet (zatrhněte Enable TCP...) a zvolte Interfaces. Přes tlačítko Configure zatrhněte v "Obtain IP address" volbu "manualy" a již můžete do horních políček dopsat statickou IP adresu a masku. poté dáte Set, Close a kliknete na ikonu Routing. Zde do Gateway doplníte bránu, pokud má mít Risc OS spojení ven do Internetu a opet dáte Set. Ještě je třeba doplnit v "Hostname" DNS server do položky "Primary name server" a opět Set. Tím je nastavena pevná IP adresa a spojení do internetu, pokud nemáte v síti DHCP server, který by síť nakonfiguroval sám. Bez spojení do internetu nelze v PackMan instalovat výše uvedené balíčky SunFish, MoonFish, WebJames, PHP atd.