Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - OsDevNewbie

Seiten: 1 2 3 [4] 5 6 ... 15
61
Hallo und herzlich willkommen im Forum xD.
Ich habe auch mit 17 angefangen mein OS zu programmieren.
Bevor ich richtig angefangen habe mein OS zu entwickeln habe ich so einen kleinen Testkernel geschrieben, der einfach im Realmode läuft und nichts anderes macht wie "Hello World" ausgeben. Das hat mich motiviert. Dieser Kernel war rein in Assembler geschrieben und somit hatte ich dann auch gleich eine grundlegende Assemblerkenntniss.

Als ich begonnen habe zu programmieren, dachte ich ich beherrsche C relativ gut. Aber während der Entwicklung lernte ich immer wieder neue Dinge hinzu und mein Programmierstil hat sich auch ziemlich verändert. In meinem OS kann man das relativ gut nachvollziehen: während der älteste Code noch kaum Struktur und Kommentare enthält sieht der neuere Code schon sauberer aus und enthält mehr Kommentare. Wobei die Kommentare bei mir ein elendiges Thema sind. Ich muss mich immer überwinden Kommentare zu schreiben.

Aller Anfang ist schwer wie es heisst und so ist es auch bei der OS-Entwicklung. Ich hatte zu Beginn auch keine Ahnung von der Materie. Nach meinem ersten kleinen "Kernel" habe ich seeeeehhhhr lange gesucht bis ich schliesslich über das Lowlevel-Wiki gestolpert bin. Ich bin sehr froh, dass ich absolut zufällig auf diese Seite kam. Im Wiki habe ich dann alles durchgelesen. Vor allem hat mich auch das Tutorial geholfen. Welches ich dann aber nicht einfach kopiert habe, sondern selber implementiert habe. So entsteht der grösste Lerneffekt. Zusätzlich wollte ich für die x86-64 Architektur entwickeln und nicht für die x86-32 Architektur. Dazu musste ich mich durch das AMD64 Manual durchwühlen. Ich lese sogar heute noch manchmal im Manual nach, weil mir einige Sachen nicht klar sind. So habe ich z.B. einige Zeit nicht verstanden wieso man eine TSS im 64-Bit-Modus benötigt.

Für einen richtigen Kernel mit allem drum und dran, muss man mindestens eine lowend-Sprache (am besten C) beherrschen und Assembler sollte man zumindest auch lesen können. Beim Debuggen ist Assembler sehr praktisch. Während dem Debuggen lernte ich auch Assembler dazu: Sobald ich einen Befehl nicht kannte, schaute ich nach was dieser macht.

Auf welcher Plattform entwickelst du denn?
Ich verwende nämlich auch Eclipse als Entwicklungsumgebung und ich entwickle unter Linux (Linux Mint 17 x64). Ich habe mir dort alles eingerichtet und es funktioniert eigentlich sehr zuverlässig. Für Assembler benötigst du eigentlich kein eigenes Plugin. Du musst nur auf die Endung der Assemblerdateien achten, denn diese lauten .S und nicht .asm, wenn du gcc nutzt. Bei mir hat Eclipse dann automatisch erkannt, dass es sich um eine Assemblerdatei handelt.

Ich hoffe ich konnte dir helfen und dir meine Erfahrungen ein bisschen weitergeben und wünsche dir viel Spass, Zeit und Geduld bei der Entwicklung.
62
Lowlevel-Coding / Re: Fehler in CDI-AHCI Treiber?
« am: 30. January 2015, 02:04 »
Ja mein Kernel ist für den Long Mode.
Somit kann ich hiermit bestätigen: Der Treiber funktioniert auch im 64-Bit-Modus. :-D
63
Lowlevel-Coding / Re: Fehler in CDI-AHCI Treiber?
« am: 29. January 2015, 16:50 »
Ich habe den Fehler gefunden. Es war ein Problem mit meiner Speicherverwaltung. Aber trotzdem danke für deine Rückmeldung.
Er funktioniert jetzt einwandfrei.
64
Lowlevel-Coding / Re: Frage zu CDI-Cache
« am: 29. January 2015, 00:34 »
Was ist den beim Dateisystem-Interface daneben gegangen?
65
Lowlevel-Coding / Frage zu CDI-Cache
« am: 28. January 2015, 23:59 »
Ich habe mal ne Frage zum Cache, der in CDI implementiert ist.
Wieso wird dieser Cache vom Dateisystemtreiber angelegt und nicht von einem Gerätetreiber? Es wäre eigentlich logischer.
66
Lowlevel-Coding / Re: Fehler in CDI-AHCI Treiber?
« am: 28. January 2015, 22:02 »
Also das Interruptinterface von CDI funktioniert einwandfrei, denn der ATAPI-Treiber funktioniert einwandfrei. Der AHCI-Treiber hängt in der Schleife fest in der Funktion ahci_request. Aber vielen Dank für deine Antwort. Ich habe so dass Gefühl, dass der Speicherbereich des PCI-Gerätes falsch ist.

Ich teste unter VirtualBox. Ich wollte auf meiner Testmaschine auch mal Tyndur laufen lassen aber das stürzt immer mit einem Pagefault ab. Ansonsten teste ich noch auf Bochs, aber ich glaube dort ist es nicht möglich ein ahci-device zu simulieren und mit Qemu kenne ich mich nicht aus.
67
Lowlevel-Coding / Fehler in CDI-AHCI Treiber?
« am: 28. January 2015, 15:37 »
Kann es sein dass die ahci_request Funktion nicht funktioniert? Bei mir kommt nämlich kein Interrupt an und im PIC sind alle Interrupts aktiviert.
Vielleicht stimmt bei mir ja etwas nicht. Hier der Quellcode zu meinem OS: https://github.com/Gurgel100/Kernel/tree/develop
Ich hoffe ihr könnt mir helfen.
68
Lowlevel-Coding / Re: CGA ändern der Adresse
« am: 27. January 2015, 17:05 »
Oh ups da hab ich wohl nicht richtig gelesen xD
69
Lowlevel-Coding / Re: CGA ändern der Adresse
« am: 27. January 2015, 15:30 »
Ja aber warum wird denn dort page * 2048 gerechnet? Müsste man nicht page * 4096 rechnen, da jedes Zeichen 2 Bytes benötigt?
70
Lowlevel-Coding / CGA ändern der Adresse
« am: 27. January 2015, 13:13 »
Hallo,
um eine Konsole zu implementieren, welche 8 Terminals enthält habe ich mir gedacht ich nutze das Feature der Grafikkarte die Adresse zu ändern. Sobald ich aber die Adresse auf die Adresse 0xB9000 ändere steht nichts am Bildschirm, obwohl dort etwas stehen sollte.
Ich weiss nicht woran es liegt.
Ich hoffe ihr könnt mir helfen.
71
Lowlevel-Coding / Re: FAT CDI-Treiber
« am: 24. January 2015, 19:08 »
Welche Funktionen fehlen denn noch?
72
Offtopic / Re: Ratschläge um sich auf s Studium vorzubereiten
« am: 24. January 2015, 15:09 »
Also ich habe selber im September mit einem Informatikstudium angefangen. Bei uns war das erste Semester sehr Mathematik-lastig. Du solltest also die Materie schon verstehen können. Es hilft auch, wenn man schon ein bisschen programmiert hat.
Ansonsten hilft es glaube ich viel, wenn man motiviert ist und sich für die Themen interessiert.
Ich hatte jetzt aber keine Absicht dir Angst vor dem Studium zu machen. Das erste Jahr wird schwer ja, aber nachdem man sich eingewöhnt hat geht's glaube ich schon besser.

ich wünsche dir viel Glück und viel Spaß bei deinem Studium ;).

P.S.: Wo studierst du?
73
Lowlevel-Coding / FAT CDI-Treiber
« am: 23. January 2015, 13:06 »
Hallo,
ist jemand eigentlich dabei einen FAT32-Treiber für CDI zu schreiben? Sonst würde ich das mal in angriff nehmen.
74
Lowlevel-Coding / Re: Benutzen von Debuggregistern
« am: 21. January 2015, 01:34 »
Ups ich habe den Fehler gefunden.
Es funktioniert schon so wie ich das gemacht habe, nur verwendet bei mir der Tastaturtreiber die Heapverwaltung, welche ich so debuggen wollte => bei jedem Tastenschlag wurde die Debugexception ausgelöst und irgendwie wird nach dem 2. mal keine mehr ausgelöst.
75
Lowlevel-Coding / Re: Benutzen von Debuggregistern
« am: 19. January 2015, 21:22 »
Der Code zum setzten des Breakpoints sieht bei mir so aus:
asm volatile(
"mov %0,%%db0;"
"mov %%db7,%%rax;"
"or %1,%%rax;"
"mov %%rax,%%db7"
: : "r"(BreakPoint), "r"((uint64_t)0x3 << (2 * i)) : "rax");
"i" entspricht dabei dem Index welcher Breakpoint gesetzt werden soll (momentan immer 1).
76
Lowlevel-Coding / Benutzen von Debuggregistern
« am: 18. January 2015, 22:03 »
Hallo,
um meinen Kernelinternen-Debugger zu vervollständigen verwende ich die Debugregister der CPU um Breakpoints zu setzten. Aber sobald ich einen Breakpoint gesetzt habe bleibt die CPU einfach hängen und es passiert einfach nichts mehr. Nicht mal mehr Interrupts werden durchgelassen.
Kennt sich jemand mit Debugregistern aus und/oder kann mir einer helfen wie man das richtig macht?
Ich es sehr.
77
Lowlevel-Coding / Re: Memoryleak im CDI-Treiber ISO9660
« am: 13. January 2015, 17:09 »
Ich habe den Fehler gefunden. Ich musste noch ein "--smtp-encryption tls" einfügen. Jetzt sollte etwas angekommen sein.
78
Lowlevel-Coding / Re: Memoryleak im CDI-Treiber ISO9660
« am: 13. January 2015, 16:05 »
Ich habe jetzt den Patch fertig, aber mein git weigert sich Es zu verschicken. Ich habe es so gemacht wie in der Anleitung, aber bei mir kommt dann nur der Fehler: "'AUTH' unknown command" oder so ähnlich. Oder es kommt der Fehler, dass der Benutzername oder das Passwort falsch sei.
Für den 2. Fehler habe ich den Grund gefunden, nämlich dass git Base64 nicht unterstützt.

Kann mir jemand helfen?
79
Lowlevel-Coding / Re: Memoryleak im CDI-Treiber ISO9660
« am: 10. January 2015, 23:42 »
Danke für den Link. Jetzt verstehe ich es. Mit git kann ich soweit umgehen. Auf der Mailingliste bin ich auch registriert.
80
Lowlevel-Coding / Re: Memoryleak im CDI-Treiber ISO9660
« am: 10. January 2015, 22:01 »
Das bedeuted vor dem return muss noch ein free(res) stehen.
Kann mir jemand erklären wie das funktioniert mit dem Patchen? Ich verstehe das irgendwie nicht.
Seiten: 1 2 3 [4] 5 6 ... 15

Einloggen