Praktikum ASP Blatt 2 6. LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung



Ähnliche Dokumente
T1 Setup und erste Schritte

Installation und Inbetriebnahme von Microsoft Visual C Express

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Informatik I Tutorial

Professionelle Seminare im Bereich MS-Office

Was meinen die Leute eigentlich mit: Grexit?

Informatik 1 Tutorial

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Praktikum Rechnerarchitektur

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Erstellen einer digitalen Signatur für Adobe-Formulare

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Microsoft Access 2013 Navigationsformular (Musterlösung)

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Microsoft Access 2010 Navigationsformular (Musterlösung)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Verbinden. der Firma

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein.

Version 0.3. Installation von MinGW und Eclipse CDT

IntelliRestore Seedload und Notfallwiederherstellung

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

Sicherer Datenaustausch mit EurOwiG AG

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Anleitung für Kunden zum Umgang mit verschlüsselten s von der LASA Brandenburg GmbH

Gezielt über Folien hinweg springen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Professionelle Seminare im Bereich MS-Office

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

POP -Konto auf iphone mit ios 6 einrichten

Anleitung Abwesenheitsmeldung und -Weiterleitung (Kundencenter)

10. Kryptographie. Was ist Kryptographie?

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Einrichtung eines -postfaches

Hex Datei mit Atmel Studio 6 erstellen

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

1 Vom Problem zum Programm

Die Installation von D-Link WLAN Karten unter Windows Vista

Anleitung Thunderbird Verschlu sselung

Die Post hat eine Umfrage gemacht

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

4D Server v12 64-bit Version BETA VERSION

UserManual. Handbuch zur Konfiguration einer FRITZ!Box. Autor: Version: Hansruedi Steiner 2.0, November 2014

Programmierkurs Java

Durchführung der Datenübernahme nach Reisekosten 2011

EASYINSTALLER Ⅲ SuSE Linux Installation

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Step by Step Webserver unter Windows Server von Christian Bartl

Web Interface für Anwender

Anleitung. Einrichten Ihres Postfaches. Mail (Mac OS X)

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Anleitung. Schritt für Schritt: iphone und ipad. Richten Sie Ihr -Konto mit Ihrem iphone oder ipad Schritt für Schritt ein.

Zählen von Objekten einer bestimmten Klasse

Kurzeinführung Excel2App. Version 1.0.0

Sichere . der. Nutzung des Webmail-Systems der Sparkasse Germersheim-Kandel zur sicheren Kommunikation per

Handout Wegweiser zur GECO Zertifizierung

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

SWE12 Übungen Software-Engineering

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein. Automatische Wordpress Installation

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

MWSoko Erste Schritte

Primzahlen und RSA-Verschlüsselung

Fotos in Tobii Communicator verwenden

Einführung in die Programmierung

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

DLLs (dynamic loaded libraries) mit MingW erstellen

ELViS. Bedienungsanleitung für Bewerber/Bieter. Angebotsabgabe mit qualifizierter Signatur und Softwarezertifikat

PeDaS Personal Data Safe. - Bedienungsanleitung -

Wie Sie mit Mastern arbeiten

YouTube: Video-Untertitel übersetzen

ACDSee Pro 3-Tutorials: Versenden von Bilder an eine FTP-Site

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Seriendruck mit der Codex-Software

Profilwechsel Sicherheitsdatei (alt) nach Sicherheitsdatei (neu)

Neue Kennwortfunktionalität. Kurzanleitung GM Academy. v1.0

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Embedded So)ware. Einrichten der Arbeitsumgebung

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Bauteilattribute als Sachdaten anzeigen

Technische Analyse der Zukunft

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Nicht über uns ohne uns

e-books aus der EBL-Datenbank

So funktioniert das online-bestellsystem GIMA-direkt

Leichte-Sprache-Bilder

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Outlook Express: Einrichtung Account

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Zeichen bei Zahlen entschlüsseln

Leitfaden zur Nutzung des System CryptShare

Abwesenheitsnotiz im Exchange Server 2010

Anleitung für die Registrierung und das Einstellen von Angeboten

Transkript:

Praktikum ASP Blatt 2 6 LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung T1 Organisatorisches T1.1 Handhabung der Boards 26.10.2015-30.10.2015 Arbeitsblatt 2 Vergessen Sie bitte nicht, am Ende ihrer Arbeit mit dem BeagleBoard xm die Stromversorgung auszustecken. Zuvor können Sie ihr BeagleBoard xm durch Eingabe des Befehls 1 s ystemctl poweroff in ein Terminal beenden. Sofern Sie sich nicht in einer root-shell befinden, müssen Sie dazu Ihr Passwort eingeben. Achten Sie bitte auch darauf, die microsd-karten nicht direkt aus dem BeagleBoard xm zu ziehen, sondern durch drücken gegen die Feder im microsd-karten-slot ausgeben zu lassen.

Praktikum ASP Blatt 2 7 T2 Wiederholung der theoretischen Grundlagen T2.1 Von-Neumann-Architektur Diskutieren Sie mit Ihrem Tutor und den Teilnehmern Ihrer Praktikumsgruppe das Von-Neumann-Konzept hinsichtlich seiner fünf Bestandteile. Ziehen Sie dazu Vergleiche zum modernen Rechner und überlegen Sie, inwieweit das damals vorgestellte Konzept in modernen Rechnerarchitekturen heute noch Gültigkeit besitzt. Die folgende Grafik kann Ihnen dabei als Gedächtnisstütze dienen: Befehle (Programm) E/A-Geräte (Benutzer), Peripherie

Praktikum ASP Blatt 2 8 T2.2 Die ARM-Architektur Machen Sie sich abermals mit den aus der Vorlesung bekannten Grundprinzipien der ARM-Architektur vertraut 2. Diskutieren Sie vorallem die von der Architektur definierten Aufgaben der Register r13-r15 sowie die Statusregister. Sprechen Sie auch über die Funktionsweise der Befehle add, mov, ldr, str, cmp, blx, b, push, pop und deren bedingte Entsprechungen, welche zusätzlich Suffixe wie eq, neq, le oder gt verwenden. Was ist der Unterschied zwischen den zwei Ausführungsmodi THUMB und ARM? T3 Von der Hochsprache zum Maschinenprogramm Ziel dieser Aufgabe wird es sein, ein generelles Verständnis für die Kette zu entwickeln, welche von einem Programm während des Kompilierungsvorgangs durchlaufen wird. Außerdem soll vermittelt werden, wo das Praktikum Aspekte der Systemnahen Programmierung und seine Inhalte einzuordnen sind. Betrachten Sie dazu zunächst das folgende Bild: 1. 2. 3. 4. Präprozessor Compiler Linker 1. Erklären Sie kurz die Grafik und erläutern Sie die einzelnen Schritte. Gehen Sie exemplarisch von folgendem C-Quelltext aus: 1 # include < s t d i o. h> 2 3 # i f d e f unix 4 i n t x = 2 1 ; 5 # e l s e 6 i n t x = 1 2 ; 7 # endif 8 9 i n t main ( i n t argc, char argv ) { 10 x = 2 ; 11 p r i n t f ( " The answer i s %d\n", x ) ; 12 return 0 ; 13 } 2 Alle architekturrelevanten Auskünfte über den Prozessor und die Assemblerbefehle erhalten Sie in der Online-Dokumentation http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc. dui0068b/cacbjbdg.html

Praktikum ASP Blatt 2 9 2. Versuchen Sie nun, die obigen Schritte am Beispiel der Aufgabe T3 von Blatt 1 nachzuvollziehen. Sie sollen dadruch ein Gefühl dafür entwickeln, was in DS-5 während der Softwareentwicklung im Hintergrund geschieht. DS-5 ist die Entwicklungsumgebung, welche von ARM für die Cortex-A Serie entwickelt wird. Die Verwendung von DS-5 wird auf dem kommenden Übungsblatt vorgestellt. Kompilieren Sie also das Beispielprogramm von Hand auf der Konsole. Loggen Sie sich dazu mittels SSH auf das BeagleBoard xm ein und erstellen Sie im Verzeichnis /home/alarm/gauss_ssh die Datei gauss.c (wenn noch nicht vorhanden): 1 cd ~/gauss_ ssh 2 touch gauss. c Verwenden Sie sodann Ihren Lieblingstexteditor (nano, vi oder den grafischen gnome-text-editor), um in der Datei gauss.c das folgende Programm abzuspeichern (sofern noch nicht in einer vorangegangenen Übung geschehen): 1 # include < s t d i o. h> 2 3 i n t main ( i n t argc, char argv ) { 4 i n t sum = 0 ; 5 i n t i = 0 ; 6 7 f o r ( i = 1 ; i <= 1 0 0 ; i ++) { 8 sum += i ; 9 } 10 11 p r i n t f ( " Die Summe a l l e r natü r l i c h e n Zahlen " \ 12 " von 1 b i s 100 b e t r ä gt %d.\n", sum) ; 13 14 return 0 ; 15 } Listing 1: gauss.c Kompilieren Sie die Datei mit dem Befehl 1 gcc gauss. c und machen Sie sich anhand der Abbildung oben klar, welche Punkte der Kette zu welchen Zeitpunkt durchlaufen wurden. Welche Rolle spielt die Datei mit dem Namen a.out dabei? Versuchen Sie die Ausgabe des folgenden Befehls zu verstehen: 1 nm g a. out

Praktikum ASP Blatt 2 10 3. Kompilieren Sie die Datei gauss.c nun mit folgendem Befehl: 1 gcc s t a t i c gauss. c Was hat sich verändert? An welcher Stelle der Kette von oben ist die Veränderung aufgetreten? Was lässt sich hinsichtlich von Größe, Portabilität und Kompatibilität der Datei a.out im Vergleich zwischen den beiden Kompilierungsvorgängen sagen? Welche Ausgabe liefert der Befehl ls -lh a.out für beide Versionen von a.out (mit und ohne -static kompiliert)? 4. Kompilieren Sie gauss.c abermals mit dem Parameter -static und führen Sie danach noch den folgenden Befehl aus: 1 s t r i p a. out Was ändert sich an der Datei a.out? (Verwenden Sie nm und ls.) 5. Wir kehren zurück zur dynamisch gelinkten Binärdatei und wollen nun den Assemblercode untersuchen. Verwenden Sie dazu den Befehl 1 objdump d a. out und versuchen Sie, die Schleife aus der Hochsprache im Assemblercode zu lokalisieren. Sehen Sie Optimierungspotential? Was geschieht mit dem Assemblercode, wenn Sie beim Kompilieren eine der Optionen -O0, -O1 oder -O2 verwenden? Hinweis: Die Ausgabe von objdump ist der Assemblercode des Programms im Format <adresse>: opcode_bytes opcode_mnemonic. Die Repräsentation des Programms findet sich ausschließlich in opcode_mnemonic. Verwenden Sie zur Orientierung die Folien aus der Vorlesung! 6. Sie sollten nun ein erstes grobes Bild davon haben, wie aus einer Hochsprache ein Maschinenprogramm wird. Ihnen sollte außerdem klar geworden sein, wie Assemblercode verwendet wird und was beim Kompilieren (mit gcc oder im Entwicklungsstudio DS-5 ) im Hintergrund geschieht. Klären Sie alle verbleibenden Fragen mit Ihrem Tutor.

Praktikum ASP Blatt 2 11 H1 Monoalphabetische Chiffren Die in der ersten Hausaufgabe behandelte ROT13-Verschlüsselung ist ein spezieller Fall der Klasse der sogenannten monoalphabetischen Substitutionschiffren. Wir werden in dieser Hausaufgabe die Implementierung von ROT13 etwas sicherer machen. 1. Implementieren Sie (sofern noch nich geschehen) eine Funktion ROT13 in C, mit der folgenden Signatur: void rot13(char *input); 2. Programmieren Sie eine weitere Funktion rotn, welche zusätzlich zur verschlüsselnden Zeichenkette auch noch einen Parameter n erhält, der angibt, um wie viele Stellen im Alphabet rotiert werden soll. void rotn(char *input, int n); 3. Wie viele Schlüssel sind bei der rotn-chiffre möglich? Wie viele Bit Sicherheit garantiert Ihnen das erweiterte Verfahren? Die Formel zum Bestimmen der Sicherheit in Bits ist S = log 2 (N) wobei N genau der Anzahl aller möglichen Schlüssel entspricht. Bewerten Sie das Ergebnis anhand der Tatsache, dass durchschnittliche Heimcomputer derzeit Schlüsselräume von der Größe 2 40 (für weitaus kompliziertere Chiffren) problemlos vollständig durchsuchen können. 4. Wie Sie sicherlich bemerkt haben, ist die Idempotenzeigenschaft für die Funktion ROT13 nicht mehr gegeben. (rotn(rotn(geheim, 7), 7)!= GEHEIM) Finden Sie eine Zuordnung y = f(x) zwischen dem Schlüssel x der zum Verschlüsseln verwendet wurde, und dem Schlüssel y, der zum Entschlüsseln des Geheimtextes verwendet werden muss. Definieren Sie zwei Makros #define ENCRYPT_ROTN(X, Y) und #define DECRYPT_ROTN(X, Y), die die Transformation des Schlüssels verstecken, sodass für Ver- und Entschlüsselung der gleiche Schlüssel Y verwendet werden kann: DECRYPT_ROTN(ENCRYPT_ROTN(X, Y), Y) 5. Entschlüsseln Sie folgenden, mit ROTN verschlüsselten Geheimtext ohne Kenntnis des geheimen Schlüssels n. (Es handelt sich um ein Palindrom.) Wduqh qlh hlqhq Udw. Es besteht keine Verpflichtung, diese Hausaufgaben abzugeben. Sie dienen lediglich der Übung und werden in der folgenden Tutorstunde besprochen.