Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:gforth-as-pid-one:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:gforth-as-pid-one:start [2014-09-01 21:11] – [Linux Syscalls aus GForth für ia86-32bit Linux] casprojects:gforth-as-pid-one:start [2014-10-21 16:17] (aktuell) – [gforth mit diet-libc bauen] cas
Zeile 79: Zeile 79:
  
 cr .( editor loaded ) cr cr .( editor loaded ) cr
 +</code>
 +
 +==== Tastaturbelegung ====
 +
 +Der Standard-Linux-Kernel startet mit einer Tastaturbelegung für US-amerikanische Tastaturen. Um eine deutsche Tastaturbelegung zu bekommen, sind folgende Optionen:
 +
 +  * beim Kompilieren des Linux-Kernels die Datei "drivers/tty/vt/defkeymap.map" anpassen. Die Keymap-Dateien finden im Linux unter "/usr/share/keymaps"
 +  * Unter GForth mittels der Syscalls die Funktion des Linux-Programmes "loadkeys" nachbauen, um die Linux-Tastaturtabelle zu setzen
 +  * Unter Forth einen neuen Tastaturtreiber schreiben, welcher die Zeichen von US-amerikanisch auf deutsche Tastatur anpasst.
 +
 +Ein einfacher Tastaturtreiber:
 +
 +<code>
 +\ german keyboard mapping
 +
 +create keytab $100 allot
 +keytab $100 erase
 +
 +: keytrans: char keytab + c! ;
 +: keyb-de key dup keytab + c@ dup if swap then drop ;
 +' keyb-de IS xkey
 +
 +\ Incomplete german keyboard mapping
 +char z keytrans: y
 +char y keytrans: z
 +char " keytrans: @
 +char ö keytrans: ;
 +char Ö keytrans: :
 +char ä keytrans: '
 +char Ä keytrans: "
 +char ü keytrans: [
 +char Ü keytrans: {
 +char ; keytrans: <
 +char : keytrans: >
 +char # keytrans: \
 +char * keytrans: }
 +char } keytrans: +
 +char ' keytrans: |
 +char ? keytrans: _
 +char ( keytrans: *
 +char ) keytrans: (
 +char - keytrans: /
 +char = keytrans: )
 +char & keytrans: ^
 +char / keytrans: &
 +char _ keytrans: ?
 </code> </code>
 ===== Linux Syscalls aus GForth für amd64-64bit Linux ===== ===== Linux Syscalls aus GForth für amd64-64bit Linux =====
Zeile 182: Zeile 228:
   * Frage: welche Minimalanforderungen an den Rechner hat gforth-na?   * Frage: welche Minimalanforderungen an den Rechner hat gforth-na?
   * Antwort: bei Benutzung eines (selbstkompilierten) 2.6.x Linux-Kernels: 386SX CPU mit 4 MB Hauptspeicher   * Antwort: bei Benutzung eines (selbstkompilierten) 2.6.x Linux-Kernels: 386SX CPU mit 4 MB Hauptspeicher
 +
 +===== gforth mit diet-libc bauen =====
 +
 +diet-libc ist eine minimale kleine C-Runtime Library mit der statisch gelinkte, kleine Binaries erzeugt werden koennen. Anbei die Schritte, um das aktuelle gforth aus Bernds git Repository mit der diet-libc zu bauen. 
 +
 +Der "make" Durchgang schlaegt beim kompilieren des gforth-itc fehl. An dieser Stelle ist aber das normale gforth binary schon gebaut und kann installiert werden.
 + 
 +<code>
 +# cd /usr/src
 +# wget http://www.fefe.de/dietlibc/dietlibc-0.33.tar.bz2
 +--2014-10-21 15:42:56--  http://www.fefe.de/dietlibc/dietlibc-0.33.tar.bz2
 +Resolving www.fefe.de (www.fefe.de)... 2001:4d88:ffff:ffff:d0:b723:863f:2, 31.15.64.162
 +Connecting to www.fefe.de (www.fefe.de)|2001:4d88:ffff:ffff:d0:b723:863f:2|:80... connected.
 +HTTP request sent, awaiting response... 200 Coming Up
 +Length: 626885 (612K) [application/octet-stream]
 +Saving to: ‘dietlibc-0.33.tar.bz2’
 +
 +100%[==================================================================================>] 626,885      531KB/  in 1.2s   
 +
 +2014-10-21 15:42:57 (531 KB/s) - ‘dietlibc-0.33.tar.bz2’ saved [626885/626885]
 +
 +# tar xvfj dietlibc-0.33.tar.bz2
 +# make
 +# install bin-i386/diet /usr/local/bin
 +# export CC="diet gcc"
 +# git clone https://github.com/forthy42/gforth.git
 +# cd gforth
 +# autoreconf -i
 +# ./configure
 +# make
 +</code>
 +
 +Der "make" Befehl schlaegt beim bauen von gforth-itc fehl, das normale "gforth" Programm konnte aber schon gebaut werden.
 +
 +<code>
 +# make install
 +# strip $(which gforth)
 +# file $(which gforth-0.7.9_20140402)
 +/usr/local/bin/gforth-0.7.9_20140402: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]=19f1d32b09820cd21bc9f2ee552491f51f878fd8, stripped
 +# ls -l $(which gforth-0.7.9_20140402)
 +-rwxr-xr-x 1 root root 143496 Oct 21 16:06 /usr/local/bin/gforth-0.7.9_20140402
 +</code>
 +
 ===== Links ===== ===== Links =====
  
projects/gforth-as-pid-one/start.1409598708.txt.gz · Zuletzt geändert: 2014-09-01 21:11 von cas