MyOS ändern

serverinc

Grünschnabel
Hallo zusammen.
in den Thema "Ein eigenes kleines Betriebssystem funktioniert nicht" wurde ein Archiv namens "MyOS.rar" hochgeladen.
jetzt meine frage:
wie kann ich den code ändern?
z.b. Die stelle mit der BETA Version soll raus und die Farbe soll etwas anders sein.
Wie stelle ich das an?
ich würde mich über antworten, Anregungen und Tipps freuen.
 

sheel

I love Asm
Willkommen bei tutorials.de :)

Kennst du dich mit C aus?

Die Stelle mit "Beta" ist in der Datei boot\loader\start.c

Gruß
 

serverinc

Grünschnabel
Also ich kenne mich ein wenig mit C++ aus.
ist da denn so ein Großer unterschied.
Also wenn ich in der start.c den code ändere, müsste ich das nur noch kompilieren.
Aber muss ich nicht auch die iso Image ändern? -Wie tue ich das?
 

sheel

I love Asm
Also ich kenne mich ein wenig mit C++ aus.
ist da denn so ein Großer unterschied.
Nein. Hast du dir die Datei einmal angeschaut?
Sie sieht zwar auf den ersten Blick aufgrund der Interrupts und eingebundenen Assemblersachen etwas verwirrend aus, aber ein printf wirst du doch wohl ändern können...

Also wenn ich in der start.c den code ändere, müsste ich das nur noch kompilieren.
Aber muss ich nicht auch die iso Image ändern? -Wie tue ich das?

Eine Makefile ist dabei, auch ein Programm cdmake (mit Quelltext) im Ordner tools...was braucht man mehr?
 

serverinc

Grünschnabel
Klar kann ein printf ändern.
Ich hab mir die Datei noch nicht angesehen.

Nur ich weis nicht was ich mit dem Makefile machen soll.
Bei dem cdmake Programm gehe ich mal davon aus das ich das Ausführen muss.
 

sheel

I love Asm
Ein Makefile besteht aus Anweisungen, wie welche Dateien kompiliert werden sollen.
Statt jede datei einzeln zu kompilieren (und dabei immer aufpassen muss, welche datei welche anderen braucht, damits geht) startet man einmal das Makefile, das alles ordentlich kompiliert und dann auch cdmake startet.

Vorteil: Man muss es nur einmal schreiben, danach nur noch starten und fertig
Nachteil: Man braucht ein eigenes Programm, das solche Makefiles abarbeiten kann.

Wenn du so ein Programm nicht hast, musst du
entweder dir eins installieren (und auch ggf. bestimmte Compiler, für die das Makefile geschrieben wurde, oft der gcc)
oder eben alles einzeln kompilieren und dann selbst cdmake ausführen.
Sowas strapaziert die Nerven, vor allem wenn den Code jemand anderes geschrieben hat und man sich in der Struktur nicht auskennt.

Gruß
 

serverinc

Grünschnabel
Ich habe das ebnend mal mit gcc ausprobiert.
(mit der gcc.exe von Dev C++) also funktioniert hat das nicht. Oder gibt es da einen Speziellen code?
Kannst du mir ein alternatives Programm empfehlen?

MfG
 

sheel

I love Asm
Zuerst einmal: gcc ist nicht von DevC++
DevC++ ist nur eine grafische "Erweiterung" davon, von anderen Herstellern, und veraltert (weil nicht mehr weiterentwickelt).

Und was genau hast du probiert, was hat nicht funktioniert, welche Fehlermeldungen etc?
Und was ist für dich "spezieller Code"?

Ist dir klar, das gcc nur für den C-Teil ist, und nicht für Assembler und Makefiles.
Man kann eben kein Betribssystem ohne Assembler schreiben.
Möglichkeiten dafür wären NASM, MASM etc...
 

serverinc

Grünschnabel
Ich weis das DevC++ total veraltet ist.
Ich habe die gcc.exe aus dem bin Ordner verwendet.
Versucht habe ich es auf verschiedenen wegen....
Rein theoretisch müsste ich ja nur die start.c kompilieren und dann die cdmake.exe ausführen.

Das man kein OS ohne Assembler schreiben kann ist mir bewusst.
 

sheel

I love Asm
Rein theoretisch müsste ich ja nur die start.c kompilieren und dann die cdmake.exe ausführen.

Nein, so einfach ist es eben nicht (leider).

Wenn du nur die start.c wie ein normales Programm kompilierst, würdest du auch nur ein normales Windows/Linux-Programm bekommen.
Vorausgesetzt, du gibst dem Linker alle anderen vorkompilierten Files, die die start.c braucht.
Vorausgesetzt in der start.c oder irgendeiner der dazugelinkten Dateien wäre ein main.
Da gbts aber keins.

Du musst zuerst jede C-Datei kompilieren, aber nicht linken.
Dann auch jede Assembler-Datei übersetzen.
Dann über noch drei Hilfsprogramme einen Binärsalat bekommen, den du dann mit cdmake wegschreiben kannst...die genauen Programmaufrufe findet man in der Makefile.

Gruß