Forum: Compiler & IDEs C- Kernel macht keine Ausgabe


von Manuel O. (idecmos)


Lesenswert?

Hi,
Ich versuche gerade mit dem Tutorial von Henkessoft mein eigenes 
Betriebssystem zu programmieren. Ich bin schon beim C- Kernel und komme 
nicht mehr weiter. Alles funktioniert soweit, es gibt aber keine 
Ausgabe.

Hier ist noch die adresse der Seite: 
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm

Ich hoffe ihr könnt mir helfen.

 - IdeCmos

EDIT: Sorry habs fast vergessen. Ich arbeite unter dem Betriebssystem 
Ubuntu 10. 04.

von Oliver (Gast)


Lesenswert?

Fehler in Zeile 42...

Oliver

von Karl H. (kbuchegg)


Lesenswert?

Mir ist vor allen Dingen nicht klar, was er sich jetzt vom Forum 
erwartet. Er ist der Betriebssystem-Schreiber. Da bleibt es nicht aus, 
dass man sich mit der Organisation des Bildspeichers in einer 
Grafikkarte und wie man da Zeichen rauskriegt rumschlagen muss. Ein sog. 
Tutorial durchlesen, die angebotenen Downloads runterladen und laufen 
lassen, kann jeder. Deswegen ist man noch lange kein 
Betriebssytem-Programmierer.

von Dennis (Gast)


Lesenswert?

...stimmt. Und du musst noch die Defines alle einbinden! Diesen hier 
auch nicht vergessen:

#define QUESTION b||!2b

von Bitflüsterer (Gast)


Lesenswert?

#define QUESTION 2b||!2b


Sorry. Das konnte ich dem alten Schüttelbier nicht antun.

von Manuel O. (idecmos)


Lesenswert?

Danke, das ihr zurückgeschrieben habt. ich erlerne die 
systemprogrammierung gerade, muss also noch was dazulernen. Oliver, was 
muss ich in zeile 42 ändern und , Dennis, was für defines muss ich alle 
einbinden.

von Oliver (Gast)


Lesenswert?

Manuel O. schrieb:
> was
> muss ich in zeile 42 ändern

Das sagt dir google, wenn du einfach mal nach "42" suchst.

Wie Karl Heinz schon sagte, ist deine Frage nicht zu beantworten.
"Ich will mir ein Auto bauen, aber es fährt nicht. Was kann man da 
machen?"

Die Anwort könnte lauten: Lern halt Autos bauen.

Oliver

von IdeCmos (Gast)


Lesenswert?

Hi,
Entschuldigt wenn ich gerade nicht eingelockt, bin gerade in der Schule.
Ich lerne gerade mit dem Tutorial ein OS zu programmieren und komme mit 
dem C- Kernel  nicht weiter. Ich habe alles so gemacht wie es in dem 
Tutorial heißt, und trotzdem kommt einfach keine Ausgabe. Hat etwa die 
Zeile 42 was damit zu tun das keine Zeichen ausgegeben werden. Ich hoffe 
ihr könnt mir jetzt helfen. könnt ihr mir ein Forum empfehlen, in der 
ich bessere Hilfe bekommen.

 - Idecmos

von Karl H. (kbuchegg)


Lesenswert?

IdeCmos schrieb:
> Hi,
> Entschuldigt wenn ich gerade nicht eingelockt, bin gerade in der Schule.
> Ich lerne gerade mit dem Tutorial ein OS zu programmieren und komme mit
> dem C- Kernel  nicht weiter. Ich habe alles so gemacht wie es in dem
> Tutorial heißt, und trotzdem kommt einfach keine Ausgabe.

Das heißt nur, dass du den/die vorhergehenden Schritte nicht verstanden 
hast.
Du stehst an dem Punkt an dem dein OS etwas ausgeben muss. Das macht es 
laut Tutorial dadurch, dass es selbst direkt in den Bildschirmspeicher 
schreibt. Und da wird halt irgendwas schief gehen. Denn im Grunde ist 
die Situation ja wohl die: Dein ganzes OS läuft unter einem Emulator, 
der dem Programm einen nackten PC vorspiegelt. D.h. du bist mit deinem 
OS nicht alleine auf der Maschine. Aber: es ist die vornehmste Aufgabe 
des darunter liegenden Betriebssystems genau das zu verhindern! Man kann 
nicht einfach an der Hardware rumfuhrwerken, wie man gerne möchte.

Wenn dein Programm aber alleine (also ohne Emulator) auf dem PC läuft, 
dann hast du die Hardware für dich alleine. Dann kannst du in den 
Speicher schreiben, wie du lustig bist.
Dann wird halt irgendwas in der Initialisierung der Grafikkarte nicht 
stimmen oder dein C Programm schreibt ganz woanders in den Speicher 
oder, oder, oder. Da gibt es tausende Möglichkeiten, was alles schief 
gehen kann.

Aber: Da musst du durch! Betriebssystem schreiben lernt man nicht durch 
ein Tutorial. Das lernt man auf unterster Ebene durch praktische 
Erfahrung viel probieren. Bzw. auf den höheren Schichten, indem man die 
Dinge studiert (wie funktionieren Scheduler, welche Möglichkeiten gibt 
es, etc. etc.)

Aber die Treiberebene, und genau da stehst du jetzt, die ist vor allen 
Dingen eines: Handbuchstudium, wie die Hardware angesteuert werden will 
und viel probieren und testen. Da ist es mit einem Tutorial alleine 
nicht getan.

Und ja: das kann schon sein, dass man da Tage drann hängt.
Aber: Wer ein OS schreiben will, der muss diese Dinge alle beherrschen. 
Und: er muss auch für sich Methoden rausfinden, wie er den Sachen 
nachgehen kann, wenn etwas nicht funktioniert.
Denn das ist noch der leichtere Teil der ganzen Übung.


Ich wüsste jetzt beim besten Willen nicht, wie wir dir da jetzt 
irgendwie weiterhelfen können. In deinem Tutorial wird haarklein 
beschrieben, wie und wo die Ausgabe durch einschreiben von Werten in den 
Display-Speicher funktioniert. Da wird halt irgendwo was schief gehen, 
bzw. irgendeine Schicht hindert das Programm daran, ausgerechnet dort 
reinzuschreiben.

von Sebastian H. (sebihepp)


Lesenswert?

Es würe z.B. helfen, wenn du deinen Quellcode posten würdest. Dann 
könnten wir dir bei der Fehlersuche helfen.

Wenn du des Englischen mächtig bist, dann schau mal unter www.osdev.org 
nach. Dort findest du eine Wiki und ein Forum, speziell für die 
Betriebssystementwicklung.
Und unter www.lowlevel.eu findest du eine deutschsprachige Community mit 
vielen Artikeln und einem (nicht mehr ganz so aktiven) Forum.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

IdeCmos schrieb:
> Hat etwa die Zeile 42 was damit zu tun

Da du es trotz der vorangegangenen Hinweise noch nicht geschnallt hast,
hier nochmal ganz explizit:

http://de.wikipedia.org/wiki/42_%28Antwort%29

von Erik L. (erikl)


Lesenswert?

Hallo Joerg,

der Link passt nicht ganz, bei mir wird die letzte Klammer nicht 
hinzugenommen, das verweisst auf einen andere Seite (die gelöscht wurde) 
, vielleicht magst Du es korrigieren ...

Erik

von Fpgakuechle K. (Gast)


Lesenswert?

Erik L. schrieb:
> der Link passt nicht ganz, bei mir wird die letzte Klammer nicht
> hinzugenommen, das verweisst auf einen andere Seite (die gelöscht wurde)
> , vielleicht magst Du es korrigieren ...

Das bezieht sich auf eine Passage aus der Bibel (auch als 
http://de.wikipedia.org/wiki/Per_Anhalter_durch_die_Galaxis bekannt)
die als ultimative Antwort "42" - im Original (gesprochene Fassung wurde 
vor der schriftlichen Fixirung der Bibel verbreitet) als  "The answer .. 
is .. Fourty Two" wiedergegeben.

Die eigentliche Göttliche Weisheit wird in den Passagen danach 
offenbart:

"The problem is, that you dont understand what the answer means, if you 
dont know what the question is" (oder ähnlich - ich war noch nie perfect 
im Bibel zitieren).

Auf den Thread bezogen bedeutest es wohl, das dir eine Antwort nicht 
nützt, da Dir das eigentliche Problem nicht bewußt ist.

Howgh!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Erik L. schrieb:
> bei mir wird die letzte Klammer nicht hinzugenommen

Ja, klar, übliches Problem.  Habe den Link korrigiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.