Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung

Low-Level-Programmierung und Experimenteller Kernel; Ansprechpartner: Dirty Oerti
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 » So Sep 28, 2008 5:18 pm

So, hier mal wieder ein Update :)

Und diesesmal ein deutlich erfreulicheres :)
Es geht wieder mal um den altbekannten physikalischen Memory Manager..
Dieses mal ist er aber nahezu fertig :)

Es handelt sich um ein 2-Stufen-Bitmap-System. Dabei werden einzelne Bitmaps in eine große Bitmap eingetragen.
Somit ist die Suche nach einem freien Frame deutlich schneller. (Es werden volle Bitmaps nicht durchsucht).

Ob, und wie gut es funktioniert weiß ich noch nicht.
Ganz einfach aus dem Grund, da ich noch keine Tests gemacht habe.

Bevor ich in die Tesphase gehe, möchte ich auch noch einige Sicherheitsprobleme lösen.

Wenn ich erste Ergebnisse habe, lasse ich es euch wissen :)

Anbei der Code (oben neuer, unten alter Manager):
phys-mm.c.zip
(Achja: Der Code dürfte recht unübersichtlich sein, Optimiert ist auch noch nichts. Dafür gibts viele Kommentare)

MfG
Daniel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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.

taljeth
Beiträge: 18
Registriert: Di Okt 14, 2008 8:22 pm
Kontaktdaten:

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

Beitrag von taljeth » Di Okt 14, 2008 8:41 pm

Erstmal sollte ich mich wohl entschuldigen, daß ich hier ausgerechnet den ältesten Thread wieder rauskrame, aber es scheint mir der geeignetste zu sein, um ein paar generelle Anmerkungen zu machen.

Der Kernel sieht ja schon ganz nett aus. Damit bist du wohl schon weiter gekommen als der Großteil derjenigen, die sich vorgenommen haben, ein OS zu schreiben.
Dirty Oerti hat geschrieben:Ich lasse die Speichergröße jetzt auf 2 hoch N aufrunden. Einfach aus dem Grund, weil ich noch keinen computer gesehen habe, der 123 MB Speicher hat.
Typsiche Werte für die Speichergröße sind ja: 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 MB
[...] aber ich habe keine bessere Lösung parat.
Autsch. ;) Was du benutzen willst, ist die Memory Map, die dir GRUB übergeben kann. Wenn du dir das mal anhand von Code anschauen willst, kannst du dir den Code der physischen Speicherverwaltung von LOST vornehmen, dem Community-OS von Lowlevel.

Und damit hätte ich den Übergang zu meinem eigentlichen Ziel auch fast schon geschafft: Du hast nach Material gefragt, ich möchte (nicht ganz selbstlos) antworten. Kennst du Lowlevel schon? Soweit ich weiß, sind wir die größte (wenn nicht einzige) deutschsprachige Community zum Thema OS-Dev. Bei dringenden Fragen einfach mal bei uns im Forum oder IRC reinschneien, meistens weiß jemand weiter.

Und weil ich grad schon dabei bin: Dein Pagingcode berücksichtigt beim Ändern eines Pagetableeintrags den TLB nicht, was später zu üblen Bugs führen kann, an denen man sich lange die Zähne ausbeißt. Vor allem, wenn man nicht weiß, daß es sowas wie den TLB gibt. ;)

Das wär's erstmal. Ich hoffe, ich habe die richtige Mischung aus Werbung und konstruktivem Beitrag getroffen, um nicht sofort verdammt zu werden. ;)

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 Okt 14, 2008 8:48 pm

Hallo taljet :)
taljet hat geschrieben:Autsch. ;) Was du benutzen willst, ist die Memory Map, die dir GRUB übergeben kann.
Das war einmal ;)
Ich habe es nun so gelöst, dass ich einfach einen (etwas) größeren Speicher annehme, um eine gerade Anzahl an Bitmaps zu bekommen.
Überflüßige Einträge markiere ich dann als besetzt.
taljet hat geschrieben:Und damit hätte ich den Übergang zu meinem eigentlichen Ziel auch fast schon geschafft: Du hast nach Material gefragt, ich möchte (nicht ganz selbstlos) antworten. Kennst du Lowlevel schon? Soweit ich weiß, sind wir die größte (wenn nicht einzige) deutschsprachige Community zum Thema OS-Dev. Bei dringenden Fragen einfach mal bei uns im Forum oder IRC reinschneien, meistens weiß jemand weiter.
Natürlich kenn ich LowLevel und vor allem das zugehörige Wiki.
Hat mir schon bei dem einen oder anderem Problem einmal weitergeholfen.

taljet hat geschrieben:Und weil ich grad schon dabei bin: Dein Pagingcode berücksichtigt beim Ändern eines Pagetableeintrags den TLB nicht, was später zu üblen Bugs führen kann, an denen man sich lange die Zähne ausbeißt. Vor allem, wenn man nicht weiß, daß es sowas wie den TLB gibt. ;)
Ich weiß, dass ich den TLB noch mit berücksichtigen muss.
Deswegen steht (iwo), dass Paging nur ansatzweise implementiert ist :)
taljet hat geschrieben:Das wär's erstmal. Ich hoffe, ich habe die richtige Mischung aus Werbung und konstruktivem Beitrag getroffen, um nicht sofort verdammt zu werden. ;)
Ich fand deinen Beitrag konstruktiv genug :)
Werbung..naja...kann vorkommen.

Was ich aber nicht tun werde ist, dieses Forum "zu verlassen" um in einem anderen Forum über mein Projekt zu sprechen oder Fragen dazu zu fragen.

Ich würde mich freuen, wenn man evtl. öfters mal etwas voneinander hören könnte.

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 Okt 14, 2008 9:03 pm

taljeth hat geschrieben:Das wär's erstmal. Ich hoffe, ich habe die richtige Mischung aus Werbung und konstruktivem Beitrag getroffen, um nicht sofort verdammt zu werden. ;)
Wer ausschließich kommt, um Links zu posten, riskiert die Verdammnis. Das Forum ist keine Werbetafel und wenn es keine Google-Werbung gibt, soll das auch nicht durch posten einzelner User geschehen.
Wer sich hier konstruktiv beteiltigt, sollte hier eine locker moderierte Community erleben und darf und sollte selbstverständlich auf seine oder andere interessante Projekte hinweisen.

Wenn Du also nicht nur einen Link posten wolltest, stellst Du Dich vielleicht kurz vor (=>Uservorstellung) und bist natürlich auch mit Link in der Signatur herzlich willkommen.
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.

taljeth
Beiträge: 18
Registriert: Di Okt 14, 2008 8:22 pm
Kontaktdaten:

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

Beitrag von taljeth » Di Okt 14, 2008 9:09 pm

Dirty Oerti hat geschrieben:
taljet hat geschrieben:Autsch. ;) Was du benutzen willst, ist die Memory Map, die dir GRUB übergeben kann.
Das war einmal ;)
Ich habe es nun so gelöst, dass ich einfach einen (etwas) größeren Speicher annehme, um eine gerade Anzahl an Bitmaps zu bekommen.
Überflüßige Einträge markiere ich dann als besetzt.
Nein, das ist keine Lösung. ;) Die Memory Map enthält auch Informationen über Löcher usw. Du willst sie wirklich benutzen.
Natürlich kenn ich LowLevel und vor allem das zugehörige Wiki.
Hat mir schon bei dem einen oder anderem Problem einmal weitergeholfen.
Och, so natürlich ist das auch wieder nicht. Du wärst nicht der erste, den ich erst drauf hingewiesen habe. Vor allem nachdem du hier vor allem (nur?) auf englischsprachige Seiten verwiesen hast. Bist du bei uns auch irgendwie aktiv und ich bin nur durch wechselnde Nicks verwirrt? Ansonsten: Höchste Zeit. ;)
Ich weiß, dass ich den TLB noch mit berücksichtigen muss.
Deswegen steht (iwo), dass Paging nur ansatzweise implementiert ist :)
Okay, wollte es nur erwähnt haben. Solche Dinge sind alles andere als offensichtlich.
Was ich aber nicht tun werde ist, dieses Forum "zu verlassen" um in einem anderen Forum über mein Projekt zu sprechen oder Fragen dazu zu fragen.
Es geht ja nicht darum, ein Forum zu verlassen. Ich habe nur den Eindruck, daß du hier nicht ganz so den Anteil an erfahrenen Leuten hast, die dir bei Fragen auch wirklich weiterhelfen können. (Also erfahren jetzt ausdrücklich auf OS-Dev bezogen, nicht auf Programmieren allgemein) Insofern, du kannst ja ohne weiteres mal gelegentlich im IRC vorbeischauen, ohne diesem Forum "untreu" zu werden.
Ich würde mich freuen, wenn man evtl. öfters mal etwas voneinander hören könnte.
Jo, warum nicht. So viele deutschsprachige sind wir ja in dieser "OS-Dev-Szene" nicht, da wird man mit Sicherheit gelegentlich voneinander hören, wenn man sich nicht gerade einigelt. Nur ist dieses Forum bei mir sicher bald wieder vom Radar, bis ich wieder einmal zufällig drüber stolpere, wenn mich nicht immer wieder jemand durch seine Präsenz daran erinnert. ;)

taljeth
Beiträge: 18
Registriert: Di Okt 14, 2008 8:22 pm
Kontaktdaten:

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

Beitrag von taljeth » Di Okt 14, 2008 9:24 pm

Xin hat geschrieben:Wer ausschließich kommt, um Links zu posten, riskiert die Verdammnis. Das Forum ist keine Werbetafel und wenn es keine Google-Werbung gibt, soll das auch nicht durch posten einzelner User geschehen.
Wer sich hier konstruktiv beteiltigt, sollte hier eine locker moderierte Community erleben und darf und sollte selbstverständlich auf seine oder andere interessante Projekte hinweisen.
Ich hab mich doch konstruktiv beteiligt. Was kann denn ich dafür, daß Daniel schon weiß, daß sein Code kaputt ist? ;)
Wenn Du also nicht nur einen Link posten wolltest, stellst Du Dich vielleicht kurz vor (=>Uservorstellung) und bist natürlich auch mit Link in der Signatur herzlich willkommen.
Wollte ich nicht sicher nur, aber auf der anderen Seite erwarte hier bitte kein aktives zukünftiges Mitglied. Ich bin hier nur gelandet, weil ich mal wieder ein bißchen gesucht habe, was sich denn aktuell zum Thema OS-Dev im Netz finden läßt - und für das Thema seid ihr eigentlich nicht die Plattform, sondern es findet sich halt ein kleiner Unterbereich zum Thema. Immer wieder mal vorbeischauen werde ich aber sicher, um zu schauen, was das hiesige OS so macht (und um vielleicht den einen oder anderen Tip zu geben).

In erster Linie geht es mir darum, Kontakt zwischen den deutschsprachigen OS-Entwicklern herzustellen, was ja offensichtlich schon geschehen ist. Insofern nehme ich auch den Link aus der Signatur wieder raus, wenn er nicht gern gesehen wird. Und damit die Sache nicht so einseitig wirkt, weise ich mal drauf hin, daß das OS hier auch gern bei uns im Wiki eingetragen werden kann, auch mit Link auf dieses Forum. Ich weiß nicht, ob das zu diesem Zeitpunkt schon sinnvoll ist, aber ich das überlasse euch (solange ihr es bei diesem Featurestand nicht gleich auf die Startseite setzt, jedenfalls).

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 Okt 14, 2008 10:04 pm

taljeth hat geschrieben:Was kann denn ich dafür, daß Daniel schon weiß, daß sein Code kaputt ist? ;)
;-)
taljeth hat geschrieben:Wollte ich nicht sicher nur, aber auf der anderen Seite erwarte hier bitte kein aktives zukünftiges Mitglied. Ich bin hier nur gelandet, weil ich mal wieder ein bißchen gesucht habe, was sich denn aktuell zum Thema OS-Dev im Netz finden läßt - und für das Thema seid ihr eigentlich nicht die Plattform, sondern es findet sich halt ein kleiner Unterbereich zum Thema. Immer wieder mal vorbeischauen werde ich aber sicher, um zu schauen, was das hiesige OS so macht (und um vielleicht den einen oder anderen Tip zu geben).
Sei willkommen. Mir ist jemand, der von vorne rein sagt, dass er nur gelegentlich kommt und sich wenig beteiligt lieber, als jemand der kurzfristig aktiv ist und dann verschwindet.
taljeth hat geschrieben:In erster Linie geht es mir darum, Kontakt zwischen den deutschsprachigen OS-Entwicklern herzustellen, was ja offensichtlich schon geschehen ist. Insofern nehme ich auch den Link aus der Signatur wieder raus, wenn er nicht gern gesehen wird. Und damit die Sache nicht so einseitig wirkt, weise ich mal drauf hin, daß das OS hier auch gern bei uns im Wiki eingetragen werden kann, auch mit Link auf dieses Forum. Ich weiß nicht, ob das zu diesem Zeitpunkt schon sinnvoll ist, aber ich das überlasse euch (solange ihr es bei diesem Featurestand nicht gleich auf die Startseite setzt, jedenfalls).
Das Kernelprojekt ist bisher lediglich ein Brett im Forum und der SVN Server. Es wird derzeit ausschließlich von Dirty Oerti betreut, er nutzt lediglich die Infrastruktur von proggen.org.
Wenn mehr draus wird, wird es sicherlich auch eine Page dazu geben. Wann es soweit ist, muss Dirty Oerti entscheiden.
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 Okt 14, 2008 10:11 pm

Xin hat geschrieben:Das Kernelprojekt ist bisher lediglich ein Brett im Forum und der SVN Server. Es wird derzeit ausschließlich von Dirty Oerti betreut, er nutzt lediglich die Infrastruktur von proggen.org.
Wenn mehr draus wird, wird es sicherlich auch eine Page dazu geben. Wann es soweit ist, muss Dirty Oerti entscheiden.
Damit es soweit ist, fehlt schon noch so einiges.
Ich möchte etwas laufendes haben, etwas, das auch etwas tut, bevor ich überhaupt darüber nachdenke mir eine Webpräsenz dafür zu organisieren.

In der Zwischenzeit wird sich das Wiki füllen, denn das Projekt dient zum Lernen und es soll nicht nur ich davon profitieren.
taljet hat geschrieben:In erster Linie geht es mir darum, Kontakt zwischen den deutschsprachigen OS-Entwicklern herzustellen, was ja offensichtlich schon geschehen ist. Insofern nehme ich auch den Link aus der Signatur wieder raus, wenn er nicht gern gesehen wird. Und damit die Sache nicht so einseitig wirkt, weise ich mal drauf hin, daß das OS hier auch gern bei uns im Wiki eingetragen werden kann, auch mit Link auf dieses Forum. Ich weiß nicht, ob das zu diesem Zeitpunkt schon sinnvoll ist, aber ich das überlasse euch (solange ihr es bei diesem Featurestand nicht gleich auf die Startseite setzt, jedenfalls).
Kontakt zu anderen OS-Entwicklern ist eine gute Sache.
Ich würde mich sehr über einen Eintrag in eurer Liste freuen.
Den "Featurestand" wirst du nirgends finden^^
Zumindest vorerst, da man im jetzigen Zustand noch nicht von "Features" reden kann.

Entschuldigt mich, ich muss ein initrd schreiben ;)

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.

taljeth
Beiträge: 18
Registriert: Di Okt 14, 2008 8:22 pm
Kontaktdaten:

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

Beitrag von taljeth » Di Okt 14, 2008 10:30 pm

Dirty Oerti hat geschrieben:Den "Featurestand" wirst du nirgends finden^^
Zumindest vorerst, da man im jetzigen Zustand noch nicht von "Features" reden kann.
Freilich finde ich den. Meinst du etwa, ich hätte nicht als erstes mal deinen Code überflogen? ;)

Antworten