Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Low-Level-Programmierung und Experimenteller Kernel; Ansprechpartner: Dirty Oerti
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Xin » Mo Jul 21, 2008 11:07 pm

Dirty Oerti hat geschrieben:Ein richtiger "Keyboardtreiber" soll dann später als eine Art eigener Prozess ablaufen.
So kann der zur Not neugestartet werden.
Wie?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Mo Jul 21, 2008 11:13 pm

Xin hat geschrieben:
Dirty Oerti hat geschrieben:Ein richtiger "Keyboardtreiber" soll dann später als eine Art eigener Prozess ablaufen.
So kann der zur Not neugestartet werden.
Wie?
Tritt ein Fehler auf, dann wird ein Interrupt generiert.
Diesen fang ich ab.
In diesem wird auch übertragen, von wo der Fehler kommt.
Liegt der Fehler im Bereich des Moduls X (in dem Fall das Keyboardmodul), dann wird das neugestartet.

Soweit zur Theorie. :)

Ich überlege gerade:

Was ist sinnvoller:
Zuerst Speicherverwaltung oder zuerst Multitasking?


(Wie sieht's mit dem Repository aus? :) )

MfG
Daniel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Xin » Mo Jul 21, 2008 11:21 pm

(Wie sieht's mit dem Repository aus? :) )
Skype...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Di Jul 22, 2008 11:10 pm

Xin hat geschrieben:
(Wie sieht's mit dem Repository aus? :) )
Skype...
Ok, ich hoff ich erwisch dich mal.
Morgen (= Mittwoch) bin ich höchstwahrscheinlich zu erreichen. Nachmittags und abends halt.
Donnerstag... eher weniger. Höchstens, dass ich abends mal da bin.
Freitag geht dann wiederrum.

(Immer noch Connection refused)

MfG
Daniel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Xin » Di Jul 22, 2008 11:29 pm

Dirty Oerti hat geschrieben:
Xin hat geschrieben:
(Wie sieht's mit dem Repository aus? :) )
Skype...
Morgen (= Mittwoch) bin ich höchstwahrscheinlich zu erreichen. Nachmittags und abends halt.
(Immer noch Connection refused)
Bin die ganze Zeit online!?

Morgen sollte ich gut zu erreichen sein.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Mi Jul 23, 2008 2:11 pm

So, danke erstmal an Xin, dass er das Repository wieder funktionstüchtig gemacht hat :)

Es befindet sich ab jetzt die derzeit neuste Fassung des Kernels im Repository.
Was jetzt neu ist:

Der Kernel kann (in der Theorie) mit IRQs umgehen. Die IRQs (Signale von 2 Micorcontrollern) sind auf die Interrupts 32 bis 47 gemappt. Mit Hilfe der IRQs ist es ab jetzt möglich, Keyboard-Ereignisse (Tastendruck), Maus-Ereignisse, Timer-Ereignisse und weiteres zu bekommen.
Wichtig dabei ist der Timer.
Mit Hilfe des Timers wird später einmal der Taskwechsel ausgelöst.
Ansonsten habe ich das Makefile mal wieder überarbeitet.
Außerdem gibt es nun einen Ordner "bochs".
In ihm befindet sich eine Konfigurationsdatei für Bochs, sowie ein Shellskript, um ein Diskettenimage des Kernels zusammen mit GRUB zu erstellen (dazu muss GRUB unter /boot/grub/ installiert sein). Das Image wird benötigt, um per bochs den Kernel laufen lassen zu können.
Ob das Skript bei jedem funktioniert kann ich nicht sagen.
Zur Not einfach bei mir Fragen.
Ich bin in Skype unter "musteresel" zu erreichen. (Zumindest gelegentlich^^)



Was ich mir zur Speicherverwaltung überlegt habe:

Zuerst einmal ist ja eine Verwaltung für den tatsächlichen (physikalischen) Speicher notwendig.
Die stell ich mir folgendermaßen vor:
Ein unterer Teil des Speichers wird in gleichgroße Blöcke eingeteilt und es wird durch Bitmaps beschrieben, ob der jeweilige Block frei ist, oder nicht. Diese Bitmaps als ganzes werden wieder in einer Bitmap verwaltet. (Aus Geschwindigkeitsgründen). Das Ganze nennt sich Cottontail Memory Management.
Möchte jemand etwas genauer wissen versuch ich's gerne zu erklären.

Der obere Teil wird wohl mal durch einen Stackverwaltet werden.
Ein Stack hat gegenüber einer Bitmap den Nachteil, dass er mehr Speicher verbraucht. Dafür ist ein Stack aber auch SEHR viel schneller.

Ich mach mich dann mal an die Arbeit. :)

MfG
Daniel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Mi Jul 23, 2008 6:46 pm

Tag! :)

Bin mal wieder auf Ideensuche:

Ich kann jetzt:
-Rausfinden, wieviel Speicher ich denn zur Verfügung habe
-Rausfinden (bzw weiß es), wo der Kernel im Speicher beginnt.

Was ich nicht kann/weiß:
-Wo ist Speicher belegt, wo ist Speicher frei?

Was ich auch noch gerne tun würde:
-Die GDT&IDT an einen anderen Ort verschieben

Dazu muss ich aber wissen:
-Wo ist freier Speicher dafür?

Wenn ich das bewerkstelligt bekomme, kann ich die schonmal angesprochene Bitmap erstellen. :)



MfG
Daniel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Kerli » Do Jul 24, 2008 3:13 pm

Jetzt funktioniert es bei mir ohne Probleme. Er bootet mit Grub und sagt dann 'Hallo! Speichertest: OK' oder so etwas in der Art ;)
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Do Jul 24, 2008 7:49 pm

Kerli hat geschrieben:Jetzt funktioniert es bei mir ohne Probleme. Er bootet mit Grub und sagt dann 'Hallo! Speichertest: OK' oder so etwas in der Art ;)
So soll das auch sein.
Der "Speichertest" ist bisher nur das Abfragen der Speichergröße, die GRUB automatisch ermittelt.^^
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Beitrag von Dirty Oerti » Fr Jul 25, 2008 10:33 pm

So, bin nun dabei den physikalischen Memory Manager zu schreiben.

Woran ich zur Zeit ein bisschen hänge:

Ich weiß nicht mehr wie das geht, die Größe des Kernels zu ermitteln.
Irgendwie mit Hilfe des Linkerscripts oder so.
Brauch ich, damit ich weiß, was alles schon belegt ist an Speicher. (Es ist nur der Kernel im Speicher interessant, der Rest ist schon sicher verwahrt).

Jemand ne Idee?
Oder auch ne Idee, wie man die Größe einer Struktur in Asm bekommt?
Und wie man das dann in C-Code auslagert?

Das wär's nämlich.
Damit dürfte ich mein Problem lösen können.

Achja: Die aktuelle Revision hat die GDT wieder ganz normal im Kernel drinnen, nicht an einer besonderen Stelle. Sollte mir das irgendwann mal gelingen, dann kann ich sie ja immernoch auslagern.

MfG
Daniel :)
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Antworten