Autor Thema: Hat euer OS einen Compiler?  (Gelesen 11482 mal)

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« am: 02. March 2006, 08:36 »
Hallo,
ich hab da mal eine Frage: Hat euer OS einen Compiler? Wenn ja, welche Programmiersprache?

Viele Grüße,
   Johannes

C#ris

  • Beiträge: 47
    • Profil anzeigen
    • http://www.xerxys.org
Gespeichert
« Antwort #1 am: 02. March 2006, 10:20 »
Du meinst, ob wir neben dem OS auch noch einen eigenen Compiler geschrieben haben, mit dem sich das OS kompilieren lässt?

Also bei unserem OS (www.xerxys.org) bisher keinen. Geplant ist aber definitiv ein optimierender Java-Compiler und ein JIT-Compiler innerhalb der Virtual Machine.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 02. March 2006, 11:26 »
Ne, ich meine einen Compiler, der auf eurem OS läuft ;)

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 02. March 2006, 11:36 »
Zitat von: JG
Ne, ich meine einen Compiler, der auf eurem OS läuft ;)
Also ich arbeite zur Zeit an einem ASM-Compiler (ich weiß das man den Assembler nicht Compiler nennt). Dieser soll die TASM-Syntax haben, also auch mein Betriebssystem-Quellcode assemblieren können. Natürlich werde ich die DOS/Windows erweiterungen weglassen, da ich die nicht brauche. Aber mir gefällt die Syntax vom TASM am besten, deswegen habe ich den auch für die OS-Programmierung genommen. Also soll mein Compiler mit ein paar Enderungen im Quellcode, den TASM-Quellcode assemblieren können. So sieht dann ungefähr der unterschied aus:

TASM:
code name
assume cs:code,ds:code,es:code

start:
org 0

xor ah,ah
mov si,offset msg
int 60h
mov ah,04h
int 60h

msg db "Hallo Welt ;)",00h

code ends

end start


EASM: (mein Compiler)
xor ah,ah
mov si,offset msg
int 60h
mov ah,04h
int 60h



org und assume kann man auch einfügen, sollen aber nicht pflicht sein. Ich muss zugeben das ich aber noch nicht weit bin.

bitmaster
In the Future everyone will need OS-64!!!

[MM]

  • Beiträge: 130
    • Profil anzeigen
    • www.mmcoding.eu
Gespeichert
« Antwort #4 am: 02. March 2006, 12:34 »
Also ich habe einen eigenen Compiler der mein OS Compiliert (und sich sebst auch) (siehe Thread "Eigener C++ Compiler"). Jedoch ist mein OS noch nicht soweit, dass man ihn dort benutzen könnte (oder überhaupt irgendwelche Programme)...

@bitmaster: Ich würde da von Assemblieren sprechen.

MM

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 02. March 2006, 14:12 »
Was ich mich frage: Ich will ja Programme für mein OS kompilieren (im moment natürlich noch nicht), aber dazu brauch ich einen Compiler. Aber für den Compiler brauch ich ja wieder einen Compiler  :roll:
Wie habt ihr das gelöst?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #6 am: 02. March 2006, 14:22 »
du kannst mit dem normalen C/C++ Compiler von Linux/Windows auch Programme für dein OS compilieren. Du musst nur die ganzen std-libs des HostOS (Linux/Windows) rauslassen  und stattdessen den Code gegen deine eigene speziell für dein OS erstellte std-lib linken.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 02. March 2006, 14:39 »
Ja, aber mein OS soll keine .exe Dateien haben ;)
Sondern ein eigenes Dateiformat..

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 02. March 2006, 15:41 »
Schreib den Compiler in einer portablen Sprache, die er selber unterstützt. Dann kannst du ihn mit einem Windows/Linux/was-auch-immer Compiler kompilieren und die EXE danach benutzen, um ihn in dein Format zu kompilieren. Für ein eigenes EXE Format bräuchtest du eigentlich auch nur einen neuen Linker, was viel einfacher ist als ein ganzer Compiler.

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 19. April 2006, 22:46 »
Da ich für mein OS FASM benutze und FASM mit sich selbst assembliert werden kann, werde ich ihn wohl mit einigen änderungen auf meinem OS zum laufen bringen können. Vorausgesetzt das mein OS irgendwann in einen benutzbaren zustand kommt. ;)

MenuetOS wurde z.B. auch in FASM geschrieben und hat FASM auch auf dem System.
db 0x55AA

Noobtotal

  • Beiträge: 54
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 24. July 2006, 11:20 »
Zitat von: JG
Ja, aber mein OS soll keine .exe Dateien haben ;)
Sondern ein eigenes Dateiformat..


Compilier es zu rohem Binärformat. Dieses lädtst du nach nem Bootloader-Prinzip und springst hin. Wenn du nen Rücksprug-I(n0terrupt hast, in dem Programm, kommst du auch wieder zurück zum Kernel und hättest nebenbei ein primitives Single-Tasking geschrieben. DOS arbeitet eigentlich nach dem selben Prinzip :wink:  :lol:  :D  :)  :shock:

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #11 am: 24. July 2006, 13:37 »
Zitat von: Noobtotal
Compilier es zu rohem Binärformat.

Nein, ein Compiler macht eine Objektdatei normalerweise. Das ist meilenweit von einer Binärdatei entfernt. Unter Linux wird da normalerweise *.o verwendet und das ist vom Format her ELF.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

ST-225

  • Beiträge: 43
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 24. July 2006, 13:41 »
Ich glaub wenn ein OS einen eigenen Compiler/Assembler hat kann man es als 'freestanding' bezeichnen.

Jetzt aber mal eine dumme frage: wie/womit hat man den ersten assembler überhaupt assemblieren können ? Das ist irgendwie so eine frage wie 'was war zuerst da, das huhn oder das ei'  :wink:

Noobtotal

  • Beiträge: 54
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 24. July 2006, 13:42 »
@ bluecode:
Tja und danach:
ld Dingsbums.o OUTPUT_FORMAT ("binary")
Oder so :wink: !

@ ST-225:
Die ersten Assembler waren die Programmierer selbst.
Ein befreundter Programmierer, der schon sehr lang in der Szene ist, hat mir das erzählt. Man schrieb zuerst den Assembler-Code auf und übertrug ihn dann per Opcode Tabelle innen Hexeditor und dieser wurde geschrieben, indem man nicht Hex-Code sondern Binärcode geschrieben hat. Dieser wurde dann in einem ROM-Brenner aufs ROM des Computers übertragen und in den Rechner eingebaut. Das war dann sozusagen das BIOS. Allerdings musste man den Code für Hardware und so alles selbst tippen. Und da Speichermedien sehr teuer waren, wiederholte sich der Vorgang bei jedem Start. Allerdings bbesassen die Geräte damals meistens statisches RAM wodurch man es meistens nur bei nem total Reset wiederholen musste. Ungefähr so wars in der grauen Vorzeit. Dagegen wirkt DOS toppmodern!

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #14 am: 24. July 2006, 14:01 »
Zitat von: Noobtotal
ld Dingsbums.o OUTPUT_FORMAT ("binary")

Jo, aber du hast von Compilern geredet :roll: Da ist schon ein Unterschied.

edit: Wobei, jetzt wo dein Post nochmal durchles macht es sogar fast Sinn :lol: Ich hab statt "Compilier" "Compiler" gelesen und dacht ok, komische Gramatik und dann auch noch falsch  :lol: Evtl. sollte ich nicht gleich nach dem Aufstehen posten...
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Noobtotal

  • Beiträge: 54
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 25. July 2006, 18:32 »
Oder so wie ichs mach: Gleich nachm aufstehen ca. 7 Liter schwarzen Kaffee bei 200°C trinken! :lol:  :lol:  :lol:

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 25. July 2006, 18:36 »
Himmel......Klemmte deine Maus oder woher kommen diese vielen Smilies?

Noobtotal

  • Beiträge: 54
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 25. July 2006, 18:38 »
Welche vielen Smilies?

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #18 am: 25. July 2006, 18:47 »
Kaffee find ich nich so doll, ist ein Aufputschmittel und verfärbt die Zähne :?
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

Noobtotal

  • Beiträge: 54
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 25. July 2006, 18:50 »
Dann nimm halt Wasser. Die 200C° dürften reichen, oder? :?  :?:  :lol:  :lol:  :lol:

 

Einloggen