Operating Systems Principles SS2005: Difference between revisions
No edit summary |
|||
Line 26: | Line 26: | ||
Zu diesem Zweck haben wir eine Linux-Entwicklungsumgebung (Toolchain, ect.) aufgebaut. Nähere |
Zu diesem Zweck haben wir eine Linux-Entwicklungsumgebung (Toolchain, ect.) aufgebaut. Nähere |
||
Informationen dazu finden Sie unter [[Using_StandardizedDevelopmentEnvironment]]. |
Informationen dazu finden Sie unter [[Using_StandardizedDevelopmentEnvironment]]. |
||
Eine weitere Möglichkeit einen Cross-Compiler zu bauen ist folgende: |
|||
download crosstool von: |
|||
http://kegel.com/crosstool/crosstool-0.31.tar.gz |
|||
auspacken: |
|||
tar xzf crosstool-0.31.tar.gz |
|||
Im Verzeichnis crosstool-0.31 die Datei gcc-3.4.2-glibc-2.2.5.dat editieren und |
|||
LINUX_DIR von linux-2.6.8 auf linux-2.4.16 setzen. |
|||
Wenn man nicht mit root-Rechten unterwegs ist, dann noch in der Datei demo-mipsel.sh RESULT_TOP auf ein schreibbares Verzeichnis setzen. |
|||
Anschliessend noch ein beherztes "sh run-mipsel.sh" und los gehts.... |
|||
Der (Flash-)Speicher auf den WRTs ist nicht nur limitiert, sondern auch extrem langsam. Für den |
Der (Flash-)Speicher auf den WRTs ist nicht nur limitiert, sondern auch extrem langsam. Für den |
Revision as of 20:53, 24 April 2005
Lab 0: Hardware
Bei den Knoten in unserem Mesh-Netzwerk handelt es sich um Router der Firma Linksys (WRT54GS). Hierbei haben wir die vorhandene Firmware durch OpenWrt http://openwrt.org ausgetauscht. Nähere Informationen finden Sie dabei unter Programming_the_Linksys_WRT54GS_Wireless_Broadband_Router.
Für das Praktikum sei folgende sehr einfache Netztopologie für eine Multi-Hop Mesh-Netzwerk gegeben (siehe Abbildung):
Erkennbar hierbei ist, dass Knoten WRT1 direkt mit Knoten WRT2, jedoch nicht direkt mit Knoten WRT3 kommunizieren kann (er benötigt die Hilfe von Knoten WRT2). Als Routing-Protokoll haben wir das Dynamic Source Routing (http://www-2.cs.cmu.edu/~dmaltz/dsr.html ) Protokoll auf Layer 2 (Sicherungsschicht) prototypisch implementiert. Dieses soll auch im Praktikum verwendet werden.
Der Zugriff auf die Router erfolgt über telnet:
zubow@linux:~> telnet wrt1
Lab 1: Cross-Compilation
Dieses Praktikum soll Ihnen einen Einblick in die Entwicklung von Software für Embedded Devices (Cross-Compilation) geben. Hierbei werden Sie mit Hilfe von OpenWrt Software für WRT54GS entwickeln. Zu diesem Zweck haben wir eine Linux-Entwicklungsumgebung (Toolchain, ect.) aufgebaut. Nähere Informationen dazu finden Sie unter Using_StandardizedDevelopmentEnvironment.
Eine weitere Möglichkeit einen Cross-Compiler zu bauen ist folgende:
download crosstool von:
http://kegel.com/crosstool/crosstool-0.31.tar.gz
auspacken:
tar xzf crosstool-0.31.tar.gz
Im Verzeichnis crosstool-0.31 die Datei gcc-3.4.2-glibc-2.2.5.dat editieren und LINUX_DIR von linux-2.6.8 auf linux-2.4.16 setzen.
Wenn man nicht mit root-Rechten unterwegs ist, dann noch in der Datei demo-mipsel.sh RESULT_TOP auf ein schreibbares Verzeichnis setzen.
Anschliessend noch ein beherztes "sh run-mipsel.sh" und los gehts....
Der (Flash-)Speicher auf den WRTs ist nicht nur limitiert, sondern auch extrem langsam. Für den
Entwicklungsprozess kann man auf den WRTs Verzeichnisse via NFS mounten:
@wrt1:/# mount MY_NFS_SERVER:/share/ /mnt/share -o nolock
Lab 2: Click
http://www.pdos.csail.mit.edu/click/click.gif
Click ist ein vom MIT entwickelter modularer Software-Router. Mit Hilfe der umfangreichen Click-API lassen sich schnell neue Router-Konfigurationen entwickeln. Auch wir werden uns bei der Entwicklung auf Click stützen.
Lab 3: Address Resolution Protocol (ARP)
Das ARP-Protokoll ( http://www.erg.abdn.ac.uk/users/gorry/course/inet-pages/arp.html ) wird vom Internet-Protokoll (IPv4) dazu verwendet IP-Netzwerkadressen auf Hardware-Addressen (Data-Link-Protocol) abzubilden. Hierbei wird in aller Regel eine Anfrage mit Hilfe eines Broadcasts (ARP-Request) realisiert. Im Falle eines Multi-Hop Mesh-Netzwerkes ist dies jedoch keine praktikable Lösung. Eine Lösung hierfür könnten die aus dem Bereich der P2P-Netzwerke bekannten Distributed Hashtables ( http://www.infoanarchy.org/wiki/index.php/Distributed_hash_table ) darstellen.