Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 05.01.2010, 16:20 Titel: Warum verschiedene Compiler?? |
|
|
hey ich wollte mal etwas Grundsätzliches fragen
Warum hat z.B. FREEBASIC verschiedene Compiler für verschiedene
Betriebssysteme?
Müsste nicht FB bei allen Betriebssystemen gleich laufen?
Und die Betriebssysteme werden doch meistens in C/C++ geschrieben
die dann auch compiliert werden, also mit einem Compiler der für garkein Betriebssystem ist, wie funktioniert das??
gruss |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 05.01.2010, 16:31 Titel: |
|
|
FB läuft auf allen Betriebssystemen gleich, das ist dem Compiler zu verdanken. Auch der Compiler ist auf jedem Betriebssytem annähernd gleich. Unterschiede gibt es da, wo das Betriebssytem ins Spiel kommt. Der Compiler selbst und alle seine erstellen Programme müssen sich an die Struktur des Betriebssystems halten..und die sind nunmal verschieden. So fängt eine ausführbare Datei unter Windows mit "MZ" an und unter Linux mit "elf". Diese Unterschiede ziehen sich durch das ganze Programm. |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 05.01.2010, 16:48 Titel: |
|
|
also würde ein FB-programm das mit dem Linux-Compiler compiliert ist
auf einem Computer laufen das vorher Windows drauf hatte aber jetzt keinen mehr??
das mit denn unterschieden in der struktur verstehe ich aber nich ganz |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 05.01.2010, 16:51 Titel: |
|
|
Die Compiler passen den Ausgabecode für das Betriebssystem an. Ein mit dem Windows-Compiler erstelles Programm läuft nicht unter Linux (WINE, CROSSOVER jetzt mal ausser acht gelassen).
Da sich Systemaufrufe gerade bei Dateioperationen oder primitiven Grafikausgaben von Betriebssystem zu Betriebssystem unterscheiden, gibt es die verschiedenen Versionen.
Egal welches Betriebssystem mal drauf war, es zählt nur, welches jetzt drauf ist.
Beispiele:
Anfang des Programms ist bei Windows MZ und bei Linux ELF
Dateirechte werden bei Linux mit CHMOD gesetzt, bei Windows sind die Dateisystemattribute anders organisiert
Bei Sprachen wie Java oder Python wird sogenannter Bytecode erzeugt. Dieser wird von einem Interpreter / virtuellen Prozessor ausgeführt, ist aber dennoch nicht ohne weiteres im Klartext lesbar. Dafür sind solche Sachen extrem langsam, laufen aber auf allen Plattformen für die es Interpreter / virtuelle Prozessoren gibt, gleich. Freebasic erzeugt eine native Binärcodedatei. _________________ you cannot kill what you did not create
Zuletzt bearbeitet von k4rsten am 05.01.2010, 16:58, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 05.01.2010, 16:56 Titel: |
|
|
Ein FB Programm läuft im besten Fall ohne Veränderungen auf Windows und Linux, muss aber mit entsprechendem Compiler, der für dieses System erstellt wurde, compiliert werden.
Alle Versionen des Compilers werden aus dem gleichen Sourcecode compiliert. Da gibts auch eine Anleitung von St_W..so am Rande bemerkt
Die Struktur bezeichnet, wie das Betriebssytem ein Programm verarbeitet. Wenn du ein Programm startest, muss es ja irgendwie in den Arbeitsspeicher gelangen und Zeit bekommen ausgeführt zu werden. Die Verwaltung übernimmt die OS und (fast) jede OS macht das anders. Dadurch ergeben sich Unterschiede für die Art, wie ein Programm sein muss, damit es in diesem Betriebssytem läuft.
Ein für Linux compiliertes Programm wird ohne Betriebssystem gar nicht laufen. Wenn du sehen willst, wie FB ohne Betriebssytem aussieht. Es gibt einen Betriebssystemkernel der auf FB beruht. Heißt "FROST". Einfach mal Suchfunktion bzw. bei Sourceforge suchen und im FreeBasic-Portal gibt es auch Code eines Kernels mit Compilier-Anleitung soweit ich mich erinnere. |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 05.01.2010, 17:00 Titel: |
|
|
ok
also die betriebssysteme haben verschiedene Strukturen usw. und deswegen die verschiedenen compiler
ok soweit klar vielen dank
gibt es noch mehr unterschiede von denen ich wissen sollte??  |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 05.01.2010, 17:02 Titel: |
|
|
Du kannst die Windows-API nicht unter Linux nutzen. Wenn du beispielsweise Fenster auf beiden OS´s darstellen willst, nimm GTK(mein Tipp) / QT /Tkinter, die sorgen für eine plattformübergreifende Darstellung. _________________ you cannot kill what you did not create |
|
Nach oben |
|
 |
qbay
Anmeldungsdatum: 08.06.2008 Beiträge: 84
|
Verfasst am: 05.01.2010, 17:06 Titel: |
|
|
ok vielen dank leute
aber garnich so einfach für mich^^ |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 05.01.2010, 19:12 Titel: |
|
|
Wenn du das ganze noch nicht gelernt hast oder nicht verstehst, schau dir doch das erste Kapitel von dem Java-Tutorial auf Gailer-Net.de an. Das ist allgemeingültig (also nicht nur Java) und vermittelt sehr gut das Hintergrundwissen für die Softwareentwicklung. _________________ you cannot kill what you did not create |
|
Nach oben |
|
 |
|