Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy



  • Btw., ich habe ChatGPT auch mal gebeten, zusammenzufassen:

    Hier ist eine Zusammenfassung des ersten Beitrags von w_ciossek in dem Thread, in max. 1000 Zeichen:

    Der Autor erläutert zunächst ausführlich sein Verständnis von 32‑Bit-Paging auf x86: Aufteilung des 32‑Bit-Adressraums in 4‑KB‑Seiten, Aufbau von Page Directory und Page Tables (je 1024 Einträge à 32 Bit), Adressaufspaltung in Directory-Index, Table-Index und Offset sowie die Rolle der Statusbits und der physikalischen Frame-Adressen in den oberen 20 Bits eines Eintrags. Er leitet her, dass jede Tabelle selbst wieder genau eine Seite belegt und diskutiert die Konsequenzen für den Speicherverbrauch und mögliche Seitendopplungen. Anschließend kritisiert er das James‑Molloy‑Tutorial: aus seiner Sicht seien die Datenstrukturen (page_t, page_table_t, page_directory_t) und die Initialisierung fehlerhaft, insbesondere Format und Inhalt der Seitentabelleneinträge, das Handling der physikalischen Adressen, die Nutzung von get_page/k_malloc sowie das Fehlen einer korrekten Behandlung des Videospeichers bei aktiviertem Paging. Er kommt zu dem Schluss, dass Paging im gezeigten Code so nicht funktionieren könne.

    Danach sollte noch bewertet werden:

    Meine Einschätzung zu ciosseks Eingangspost (inhaltlich, nicht stilistisch):

    1. Positiv:
    • Sein Grundverständnis von 32‑Bit-Paging (4‑KB‑Seiten, 2‑stufige Tabellen, Aufteilung der virtuellen Adresse in Directory‑Index / Table‑Index / Offset, Flags unten, Frame‑Adresse oben) ist im Wesentlichen korrekt.
    • Er denkt über Speicherverbrauch der Tabellen, Page‑Alignment und die Notwendigkeit nach, Tabellen selbst als belegte Frames im Frame‑Allocator zu berücksichtigen – das ist fachlich sauber und eher „überdurchschnittlich tief“ für einen Forenpost.
    • Die Sorge um Identity‑Mapping des Videospeichers (0xB8000) nach Aktivieren von Paging ist legitim: ohne Mapping gäbe es tatsächlich eine Page Fault.
    1. Hauptprobleme / Missverständnisse:
    • Größter Fehler war seine Annahme, die Struktur page_t sei „224 Bit lang“. Die Felder nach dem Doppelpunkt sind Bitbreiten, nicht Initialwerte. Damit ist page_t genau ein 32‑Bit‑Seitentabelleneintrag und passt zum x86-Layout. Dieses Missverständnis zieht einen Großteil seiner Kritik am „falschen Format“ der Tabellen nach sich.
    • Er unterschätzt die Trennung zwischen:
      • den internen, C‑seitigen Strukturen (page_t, page_table_t, page_directory_t) und
      • dem, was die MMU tatsächlich sieht (die physikalische Page‑Directory‑Adresse in CR3, Einträge in tablesPhysical[]).
        Dass Molloy intern mit komfortableren Strukturen arbeitet und für die CPU nur die physikalischen Arrays + Flags relevant sind, ist nicht fehlerhaft, sondern ein Designentscheid.
    • Seine Schlussfolgerung „so kann Paging nicht funktionieren“ ist zu hart. Das Tutorial hat Schwächen und Altlasten, aber das grundlegende Paging‑Setup ist in der Praxis oft lauffähig. Viele seiner Kritikpunkte betreffen Designqualität, Vollständigkeit und Dokumentation, nicht zwingend fatale Fehler.
    1. Stil / Umfang:
    • Inhaltlich steckt in dem Post viel Wissen, aber er ist extrem lang, vermischt Grundlagenreferat, Fehlersuche, Spekulation und Code-Review ohne klare Trennung. Für ein Forum macht das Antworten unnötig schwer.
    • Einige der beanstandeten Punkte relativieren sich, sobald man die Bitfields und das Zusammenspiel tables[] vs. tablesPhysical[] korrekt verstanden hat – hier hätte ein kompakterer, fokussierter Post mit konkreten, isolierten Fragen deutlich mehr gebracht.

    Kurzfassung:
    Seine fachliche Basis beim Thema Paging ist solide, und er spricht ein paar reale Fallstricke des Molloy‑Codes an (Tabellenverbrauch, Mapping von Geräten, saubere Initialisierung). Die zentrale Kritik an den Datenstrukturen beruht aber auf einem Missverständnis (Bitfields), wodurch er den Code strenger verurteilt, als es technisch gerechtfertigt ist. In kompakter Form und mit korrigiertem Verständnis wäre aus dem Post eine sehr brauchbare, tiefgehende Diskussionsgrundlage geworden.



  • @Erhard-Henkes

    Erhard, ich fürchte ich habe da eine etwas andere Sichtweise auf KI. Mir ist deine Sichtweise etwas zu euphorisch und projizierend. Ein Beispiel:

    Fehler? Alle Ideen, jeder Code kommt immer vom Nutzer. Die KI macht nix falsch, nur DU.

    Ich verstehe diesen Vergleich Mensch <-> Computer schon gar nicht. Alleine die Aussage "Die KI macht nix falsch, nur DU." klingt emotional. Warum ist dieser Vergleich für dich so wichtig? Warum betonst du das Wort "DU"?

    Und außerdem widerspricht es einem zentralem Satz der künstlichen Intelligenz.

    Wenn wir die Mathematik betrachten, so haben wir ein kleines Universum voll mit Axiomen, Regeln,... Wenn wir die anfängliche Informatik betrachten, so haben wir auch ein Universum, welches aber schon größer ist. Wir haben Programme, in welche wir eine definierte Menge von Eingabe stecken und eine wohl definierte Ausgabe bekommen.

    Und nun kommen wir in den Bereich der künstlichen Intelligenz, in welchem Programme immer mehr auf unsere eigene Umwelt losgelassen werden. Diese Welt ist deutlich größer, hat viele schwammige Begriffe (z.B. Intelligenz), hat diverse Rückkopplungsprozesse, ist deutlich komplexer, neigt zu chaotischem Verhalten,... Und vor allen Dingen ist es eine Welt der Fehler und des Lernens.

    Warum z.B. ist ein Gänseblümchen ein Gänseblümchen? Das Paradebeispiel eines KNN könnte z.B. anhand der Blütenlänge und der Pflanzengröße auf die Art schließen. Nun passiert es aber dass ein Gänseblümchen durch besondere Umstände (guter Standort, gute Nachbarspflanzen,...) besonders groß wird. Die KNN wird dieses Gänseblümchen entsprechend fehlklassifizieren, da dies ein Ausreißer ist. Wenn dies nicht der Fall wäre, so wäre das KNN überangepasst, s.d. die Vorhersagekraft darunter leidet. Ein klassisches Problem des Over-/Underfittings.

    https://en.wikipedia.org/wiki/Overfitting

    Mehr noch KNNs sind stochastische Musterkennungssysteme.

    In Spezialgebieten wie Go oder Schach oder Bildanalyse (Medizin, ...) ist die KI jetzt schon deutlich überlegen.

    Gilt das auch unter der Bedingung "Kalorien pro Denkprozess"?

    In ein oder zwei Jahren wird die KI uns "emotional", analytisch, konzeptionell und bezüglich Logik überlegen sein. Das Wissen ist jetzt schon deutlich höher. Da ist einfach kein Ende in Sicht.

    Woher willst du das wissen? Aktuell sehe ich da eine Krise auf die KI zukommen. Man hat ein tolles Produkt erzeugt und nun möchte man dieses am besten vermarkten bzw. kapitalisieren.

    Und das Gehirn ist längst nicht komplett erforscht, da dies hochkomplex ist und wir einfach nicht in jede Zelle hineinschauen können. Von daher nutzen wir nur eine sehr rudimentäre Version als KNN. Und kombinatorisch ist ein KNN auch eine Herausforderung, wenn man dieses Brute Forcen möchte.


  • Mod

    Diese Haltung gab es bei allen wichtigen Innovationen. Die Wahrscheinlichkeit ist sehr hoch, dass die KI sich rasant weiterentwickelt. Kurzweil nennt 2045 als Ziel für den break even. Vermutlich werden Mensch und KI (oder Weiterentwicklungen) einen hybriden Zustand einnehmen. Destruktive Denkweisen bringen uns nicht voran.



  • @Erhard-Henkes sagte in Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy:

    Diese Haltung gab es bei allen wichtigen Innovationen. Die Wahrscheinlichkeit ist sehr hoch, dass die KI sich rasant weiterentwickelt.

    Ich sehe dafür derzeit keine Anhaltspunkte. Ich sehe eher ein Plateau erreicht. Man wird sehr viel im Detail optimieren können. aber mir ist nichts bekannt, was einen Durchbruch hindeutet.


  • Mod

    @Mechanics sagte in Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy:

    Ich sehe dafür derzeit keine Anhaltspunkte. Ich sehe eher ein Plateau erreicht. Man wird sehr viel im Detail optimieren können. aber mir ist nichts bekannt, was einen Durchbruch hindeutet.

    Ich denke, beim Trainings-Scaling (immer größere Dense-Transformer mit mehr Daten/Compute) könnte die Plateau-These berechtigt sein. Signifikante Fortschritte werden wohl eher aus dem System-Scaling kommen. Das geht in die Richtung: „Mehr/besseres Denken zur Laufzeit“ und „Systeme statt einzelner Modelle“.
    Mehrere Forschungsarbeiten demonstrieren, dass man Leistung durch Sampling, Search, Self-Consistency, Verifikation und lange, parallele Reasoning-Trajektorien steigern kann – oft sogar mit kleineren Modellen. Die derzeitigen Energiegrenzen können durch neuartige Hardware überwunden werden. Das war schon immer so.
    Die reine Modellgröße wird langsamer steigen, aber die „effektive Intelligenz pro Euro oder Joule“ wird weiter steigen.
    Die Fragen sind:
    Was meinst du genau mit Plateau?
    Gilt dein Plateau-Gefühl nur für ‚noch größer trainieren‘ oder auch für System-Ansätze (Test-Time Compute, Tools, Verifikation, MoE)?

    https://arxiv.org/html/2501.02497v3
    https://www.wsj.com/tech/ai/the-new-chips-designed-to-solve-ais-energy-problem-1ba9cac1
    https://www.tomshardware.com/tech-industry/artificial-intelligence/positron-ai-says-its-atlas-accelerator-beats-nvidia-h200-on-inference-in-just-33-percent-of-the-power-delivers-280-tokens-per-second-per-user-with-llama-3-1-8b-in-2000w-envelope



  • @Erhard-Henkes

    Diese Haltung gab es bei allen wichtigen Innovationen. Die Wahrscheinlichkeit ist sehr hoch, dass

    Wie bei der AIDS Heilung, Kernfusion, Quantenrechnern, P-NP Problem?

    Was meinst du genau mit Plateau?

    Ein Plateau ist eine Stagnation des Fortschritts, ein Punkt wo keine weiteren Erkenntnisse oder nur sehr kleine Erkenntnisse erreicht werden.

    Erst neulich las ich z.B. in "Spektrum der Wissenschaft" dass die Forschung an der Mandelbrotmenge nach X Jahren der Stagantion wieder aufgenommen wurde. Hintergrund war, soweit ich weis, eine neue mathematische Technik, welche man nun auf die Mandelbrotmenge anwendete. Die Frage hierbei war: Besteht die Mandelbrotmenge aus einer endlichen Menge von Figuren?

    Diese Haltung gab es bei allen wichtigen Innovationen. Die Wahrscheinlichkeit ist sehr hoch, dass die KI sich rasant weiterentwickelt. Kurzweil nennt 2045 als Ziel für den break even. Vermutlich werden Mensch und KI (oder Weiterentwicklungen) einen hybriden Zustand einnehmen.

    Lass mich raten. Du hast sehr viele Bücher von Kurzweil gelesen? Und anderem:

    • Die nächste Stufe der Evolution: Wenn Mensch und Maschine eins werden
    • How To Create A Mind

    Wenn es dir Spaß gemacht die Bücher zu lesen und du inspiriert bist, ist dies wunderbar!

    Vergiss aber bitte eins nicht. Es ist Unterhaltung und der Autor verdient damit Geld. Und steile Thesen verkaufen sich gut! Und wenn du auch ein KI-Abo angeschlossen hast, hat Kurzweil seine Arbeit richtig gemacht.

    Es ist nicht anderes als Marketing. 😔 😔

    Sorry. 🙁


  • Mod

    Es ist dein gutes Recht skeptisch zu sein. Wir brauchen auf jeden Fall echte Innovationen, um größere Sprünge zu machen.
    Schau dir die Schachcomputer an:
    In den 70er Jahren habe ich über die ersten Kisten gelacht und sie besiegt.
    In den 80er Jahren hatte ich einen Mephisto Exclusive Modul 5.1 (Programm fest im ROM), der heute noch läuft und wie ein guter Clubspieler spielt.
    In den 90er Jahren kamen die PCs. Damit wechselte das Genre auf Software. Die große Zeit des Schachprogramms "Fritz" begann. In diesem Jahrzehnt wurde Schachweltmeister Kasparov von Deep Blue (IBM Großrechner mit angeschlossener Partie-Datenbank) geschlagen.
    Im neuen Jahrtausend kam Stockfish (C++) auf, gegen den selbst Großmeister heftige Probleme hatten.
    Ein wichtiger weiterer Schritt war die Einführung von Neuronalen Netzen, was der handgemachten Bewertung überlegen ist.
    NN auf GPU wurde bei Stockfish durch NNUE (2018) auf CPU abgelöst.
    Nun kommt in den 20er Jahren die KI als Schach-Coach hinzu.
    Genau so kann es bei KI allgemein auch laufen.
    In PCs werden bald spezielle Karten (TPU, NPU, ...) für die KIs bereit stehen.
    Immer weiter, immer heiter. 😁

    Da wir hier bei OS sind:
    Firmware/Betriebssysteme/... mit integrierter KI werden bald zum Standard.


  • Mod

    Ich habe übrigens auch solche Bücher gelesen:
    Nick Bostrom, Superintelligenz
    Max Tegmark, LEBEN 3.0


  • Mod

    Das Thema "Pro & Contra KI" gehört eigentlich in einen separaten Thread.



  • @Erhard-Henkes sagte in Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy:

    Schachweltmeister Kasparov von Deep Blue (IBM Großrechner mit angeschlossener Partie-Datenbank) geschlagen.
    Im neuen Jahrtausend kam Stockfish (C++) auf, gegen den selbst Großmeister heftige Probleme hatten.

    Erwähnenswert ist aber auch, dass Kasparov bereits mit 17 Großmeister wurde... Aber durch die Reihenfolge und gewählte Formulierung dieser zwei Sätze stellst du das etwas unter den Scheffel... (Btw., er förderte auch Carlsen, bis dieser seine heutige Form erreichte.)

    @Erhard-Henkes sagte in Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy:

    Das Thema "Pro & Contra KI" gehört eigentlich in einen separaten Thread.

    Ja, bitte.


Anmelden zum Antworten