Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
- 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
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): (Achja: Der Code dürfte recht unübersichtlich sein, Optimiert ist auch noch nichts. Dafür gibts viele Kommentare)
MfG
Daniel
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): (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.
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.
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
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.
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.
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.
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.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.
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.
- 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
Hallo taljet
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.
Hat mir schon bei dem einen oder anderem Problem einmal weitergeholfen.
Deswegen steht (iwo), dass Paging nur ansatzweise implementiert ist
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
Das war einmaltaljet hat geschrieben:Autsch. Was du benutzen willst, ist die Memory Map, die dir GRUB übergeben kann.
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.
Natürlich kenn ich LowLevel und vor allem das zugehörige Wiki.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.
Hat mir schon bei dem einen oder anderem Problem einmal weitergeholfen.
Ich weiß, dass ich den TLB noch mit berücksichtigen muss.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.
Deswegen steht (iwo), dass Paging nur ansatzweise implementiert ist
Ich fand deinen Beitrag konstruktiv genugtaljet 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.
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.
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.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
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.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 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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
Nein, das ist keine Lösung. Die Memory Map enthält auch Informationen über Löcher usw. Du willst sie wirklich benutzen.Dirty Oerti hat geschrieben:Das war einmaltaljet hat geschrieben:Autsch. Was du benutzen willst, ist die Memory Map, die dir GRUB übergeben kann.
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.
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.Natürlich kenn ich LowLevel und vor allem das zugehörige Wiki.
Hat mir schon bei dem einen oder anderem Problem einmal weitergeholfen.
Okay, wollte es nur erwähnt haben. Solche Dinge sind alles andere als offensichtlich.Ich weiß, dass ich den TLB noch mit berücksichtigen muss.
Deswegen steht (iwo), dass Paging nur ansatzweise implementiert ist
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.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.
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.Ich würde mich freuen, wenn man evtl. öfters mal etwas voneinander hören könnte.
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
Ich hab mich doch konstruktiv beteiligt. Was kann denn ich dafür, daß Daniel schon weiß, daß sein Code kaputt ist?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.
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).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.
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).
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
taljeth hat geschrieben:Was kann denn ich dafür, daß Daniel schon weiß, daß sein Code kaputt ist?
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: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).
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.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).
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.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- 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
Damit es soweit ist, fehlt schon noch so einiges.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.
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.
Kontakt zu anderen OS-Entwicklern ist eine gute Sache.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).
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.
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.
Re: Kernelprogrammierung - Suche: Ansätze für Speicherverwaltung
Freilich finde ich den. Meinst du etwa, ich hätte nicht als erstes mal deinen Code überflogen?Dirty Oerti hat geschrieben:Den "Featurestand" wirst du nirgends finden^^
Zumindest vorerst, da man im jetzigen Zustand noch nicht von "Features" reden kann.