Entwicklungsplattformen...

Wolfgang
Dozentin/Dozent
Beiträge: 359
Registriert: 21. Apr 2004 17:54

Entwicklungsplattformen...

Beitrag von Wolfgang »

Hallo zusammen,

wie in der Vorlesung angekündigt, dürft Ihr die Entwicklung der Assembler- und C-Programme auf Euren eigenen Systemen machen.
Zur Testierung (s. Folien) bringt Ihr ebenfalls Euren eigenen Laptop mit.
Die Anleitungen und Hinweise in Übung und Praktika werden aber ausschließlich für die RBG-Rechner gemacht.
Studierende, die gerne auf Windows und/oder Mac entwickeln wollen, finden in den einschlägigen Foren sicherlich Hilfe.

Ihr dürft natürlich auch im Forum gerne entsprechende HowTos veröffentlichen.

Schönen Sonntag noch, viele Grüße
Wolfgang

Hyst
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 5. Mai 2007 22:20

Re: Entwicklungsplattformen...

Beitrag von Hyst »

Guten Tag,

warum denn der Sinneswandel? Was ist denn aus:
Wolfgang hat geschrieben: Auf dem Aufgabenblatt zum ersten Praktikum (verfügbar ab 3.11.2010, 21:00 Uhr) wird es weitere Hinweise für andere Betriebssystemplattformen geben.

( http://d120.de/forum/viewtopic.php?f=17 ... 73#p121177 )
geworden?

Da ich nur im Nebenfach Informatik studiere habe ich keinen RBG Account, da man sich ja auch über die TU-ID ins webreg eintragen kann. Insofern würde ich offizielle Anleitungen für Windows sehr zu schätzen wissen, da alle versuche den Assambler Code aus der Vorlesung (Dirtte Vorlesung Folie 39) mit yasm (oder VS yasm) zu compilieren gescheitert sind.

Viele Grüße
Benjamin

LucasR
Kernelcompilierer
Kernelcompilierer
Beiträge: 474
Registriert: 9. Jun 2009 09:55

Re: Entwicklungsplattformen...

Beitrag von LucasR »

Hallo Benjamin,

ich sehe da im Moment keinen Sinneswandel - es wird einige Hinweise zu anderen Betriebssystemen geben. Darunter verstehe ich, dass 1-2 Zeilen Informationen und evtl ein Link da sein werden. Weitere Anleitungen zur Nutzung neben Debian (RBG-Poolrechner) werden wir aber aufgrund der großen Anzahl an Platformen nicht bieten, gleiches gilt dann auch für die Lösungsvorschläge. Dies ist übrigens ein großer Fortschritt gegenüber letztem Wintersemester, wo grundsätzlich nur Debian-Kompatibilität gefragt war. Wenn Ihr also auf einer anderen Platform arbeiten möchtet, so könnt ihr dies gerne tun, aber wir haben nicht die Kapazitäten, um dann überall Support zu bieten 8)

Meines Wissens nach ist es übrigens kein großer Aufwand zum RBG-Büro zu gehen und sich einen Account anlegen zu lassen :)

Gruß,
Lucas

Hyst
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 5. Mai 2007 22:20

Re: Entwicklungsplattformen...

Beitrag von Hyst »

Hallo Lucas,

danke für die Antwort. Wenn es Hinweise geben wird bin ich ja zufrieden. Ich habe mich nur über den Satz gewundert:
Wolfgang hat geschrieben: Die Anleitungen und Hinweise in Übung und Praktika werden aber ausschließlich für die RBG-Rechner gemacht.
Studierende, die gerne auf Windows und/oder Mac entwickeln wollen, finden in den einschlägigen Foren sicherlich Hilfe.
Da das in meinen Augen im Widerspruch dazu steht, dass auf dem ersten Praktikumsblatt Hinweise zu anderen Betriebssystemen stehen sollen. Allerdings reicht nur ein Link zur YASM Seite für mich leider nicht aus (den gibt es schließlich ja auch auf der Seite). Wie schon erwähnt habe ich versucht mit Hilfe der Yasm Doku und Google den Code aus der Vorlesung zu Compilieren. Leider ohne Erfolg (btw: Es wäre nett, wenn jemand der den Code auf Windows zum Laufen bekommen hat mir kurz erklären könnte wie er/sie das gemacht hat).

Natürlich ist der Aufwand nicht gerade groß zum RBG-Büro zu gehen. Doch wenn man die Möglichkeit von euch bekommt auf dem heimischen Rechner die Sachen zu programmieren und zu testieren, dann würde ich das doch auch gerne in Anspruch nehmen (Und SSH ist ja dann auch nur ein workaround). Denn ich finde es klasse, dass nicht grundsätzlich Debian-Kompatibilität gefragt ist. Das man nicht für jede Linux Distribution ein Tutorial schreiben möchte und das auch nicht kann ist mir klar. Für ein Windows Tutorial wäre ich trotzdem dankbar ;-)

Aber wenn es so ist wie du sagst, und 1-2 Zeilen Information auf dem Praktikumszettel stehen, mit dem ich YASM zum laufen bekomme, bin ich zufrieden und das Thema ist für mich gegessen.


viele Grüße
Benjamin

dstorck
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 26. Mär 2009 07:58

Re: Entwicklungsplattformen...

Beitrag von dstorck »

Hat jemand von euch es irgendwie hinzubekommen Assembler unter MAC laufen zu lassen? Ich habs mit über Xcode mit gcc versucht aber der ist nicht kompatibel. Jetzt gibts schon die Hausübung und in 2 Tagen kommt das erste Praktikum und das Ding läuft nicht, also organisatorisch finde ich das nicht ganz so optimal gelungen.

mfG

Benutzeravatar
Blub
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 244
Registriert: 24. Dez 2007 14:06

Re: Entwicklungsplattformen...

Beitrag von Blub »

dstorck hat geschrieben:Hat jemand von euch es irgendwie hinzubekommen Assembler unter MAC laufen zu lassen? Ich habs mit über Xcode mit gcc versucht aber der ist nicht kompatibel. Jetzt gibts schon die Hausübung und in 2 Tagen kommt das erste Praktikum und das Ding läuft nicht, also organisatorisch finde ich das nicht ganz so optimal gelungen.

mfG
im worst case kannst du auch über ssh auf die rbg rechner zugreifen und es unter Debian kompilieren, wenn es unter mac überhaupt nicht geht. Aber das wäre wohl wirklich nur worst case ^^
Tutor GDI II SS12
Tutor Trusted Systems WS11/12, Tutor GDI II SS11
Tutor Trusted Systems WS10/11, GDI I WS10/11
Tutor GDI II SS10, Tutor Trusted Systems WS09/10

Wolfgang
Dozentin/Dozent
Beiträge: 359
Registriert: 21. Apr 2004 17:54

Re: Entwicklungsplattformen...

Beitrag von Wolfgang »

Hallo zusammen,

wo ist das Problem, die RBG-Rechner zu benutzen.
Die waren sonst auch der verlangte Standard. Die Anleitung dazu steht auf dem 1. Übungsblatt.

Gruß WH

ohoffman
Erstie
Erstie
Beiträge: 22
Registriert: 21. Apr 2009 01:06

Re: Entwicklungsplattformen...

Beitrag von ohoffman »

Gibt es vielleicht für x86 auch einen Simulator, ähnlich wie es ihn für MIPS gibt?

siehe: http://courses.missouristate.edu/KenVollmar/MARS/

Grüße,
Oliver

patrik_s.stud.tu
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 12. Okt 2006 20:56

Re: Entwicklungsplattformen...

Beitrag von patrik_s.stud.tu »

@Hyst: Windows verhaellt sich grundsaetzlich anders in Interrupts und anderen Dingen, daher kann es sein dass der Quellcode nicht so direkt uebersetzbar ist.
@dstorck: Unter Mac wuerde ich dir erstmal von Xcode abraten. Das ist ein wenig Overkill. Verwende hier einen normalen Editor und nutzen yasm & gcc direkt.
@ohoffman: Soweit ich weiss ist kein direkter Simulator vorhanden. Es gibt aehnliche Systeme die leicht andere Syntax unterstuetzen, aber diese ist von unserer Seite nicht unterstuetzt.

Wir koennen leider nicht alle Platformen unterstuetzen und deswegen steht fuer euch auch der Pool zur Verfuegung. Es ist leider bei einer so maschinennahen Programmiersprache schwierig eine andere Loesung zu finden. Aushelfen koenntet ihr euch unter anderem selbst indem ihr euch gegenseitig Tutorials postet. Der erste Ansatz mit dem Skript fand ich persoenlich super!

dstorck
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 26. Mär 2009 07:58

Re: Entwicklungsplattformen...

Beitrag von dstorck »

@patrik_s.stud.tu
gcc hatte ich über die Shell benutzt. Wie kann ich denn yasm überhaupt auf den Mac bekommen?

patrik_s.stud.tu
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 12. Okt 2006 20:56

Re: Entwicklungsplattformen...

Beitrag von patrik_s.stud.tu »

MacPorts bietet sich fuer sowas grundsaetzlich an. Wenn du es installiert hast: sudo port install yasm

Andreas P.
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 21. Okt 2009 16:29

Re: Entwicklungsplattformen...

Beitrag von Andreas P. »

Yasm habe ich auch ohne Port installieren können, aber leider fehlen mir die richtigen angepassten Befehle um den Code aufm Mac zum laufen zu bringen ... yasm übersetzt es in was ich möchte, egal ob elf oder mach-o(mac-typsich?!), aber beim gcc haderts...

Hätte jemand ne Lösung?

mfG

patrik_s.stud.tu
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 12. Okt 2006 20:56

Re: Entwicklungsplattformen...

Beitrag von patrik_s.stud.tu »

Auszug aus dem kommenden Prak1.pdf:

yasm -f macho32 datei.asm
gcc -arch i386 -o datei datei.o

Unter der Annahme, dass euer Code _main enthaelt und ihr unter Mac OS X arbeitet.

Andreas P.
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 21. Okt 2009 16:29

Re: Entwicklungsplattformen...

Beitrag von Andreas P. »

patrik_s.stud.tu hat geschrieben:Auszug aus dem kommenden Prak1.pdf:

yasm -f macho32 datei.asm
gcc -arch i386 -o datei datei.o

Unter der Annahme, dass euer Code _main enthaelt und ihr unter Mac OS X arbeitet.
Das löst das Problem nicht ganz.
Zunächst funktionierts lediglich mit
yasm -f macho32 -p gas datei.asm
Zudem musste man
printf in _printf
ändern (wobei hier der spätere Fehler die Ursache hat?!), erst danach lies es sich bei mir mit gcc kompilieren, doch kommt beim Aufrufen des Programms nun folgende Fehlermeldung:
Segmentation fault
Also steckt i-wo noch der Wurm...

Der Code bis jetzt:

Code: Alles auswählen

.data
intout: .string "Wert %d\n"

.text 
.globl _main

_main: 
# Wert fuer die Berechnung 
movl $13, %eax # 13 == 0b1101

# ... Hier Ihren Code einfuegen ...

# Wert im %eax ausgeben 
pushl %eax 
pushl $intout 
call _printf

# Exit 
movl $1, %eax 
int $0x80
mfG

patrik_s.stud.tu
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 12. Okt 2006 20:56

Re: Entwicklungsplattformen...

Beitrag von patrik_s.stud.tu »

Kurz und knapp:
pushl $0
pushl $0
pushl %eax
pushl $intout
call _printf

Mac OS X hat hier was eigenes an sich, ich konnte an dieser Stelle den Unterschied nicht genau erklaeren.

Genau diese Probleme sind der Grund warum wir nicht, oder nur rudimentaer, Support fuer andere Platformen bieten. Es existiert nicht die Zeit alle X-Kombinationen auszuprobieren und an dieser Stelle habe ich nur geantwortet, weil ich selbst durch das Prozedere durch bin. Nun arbeite ich aber auch auf den Poolrechner, weil es sonst keine Programme in den Muloes waeren, die ihr direkt nutzen koennt.

Antworten

Zurück zu „Archiv“