Paging: Verständnisschwierigkeiten zum Tutorial von James Molloy



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

    Die Grundsatzdiskussion Mensch vs KI gewinnt bei komplexen Fachfragen inzwischen klar die KI (liest Monster-Beiträge, Tausende Zeilen Code, steht 24/7 zur Verfügung, nörgelt nicht rum).

    Stoßen wir hier nicht auf den ELIZA-Effekt? Überinterpretieren wir nicht ein wenig die Ergebnisse heutiger KI?

    Gerade in so manchen Diskussionen fällt mir immer wieder dass der Sprachstil der KI auf Dominanz gestellt ist:

    • Sprache ist immer liebevoll
    • Rückfragen werden nie gestellt
    • Fehler werden ignoriert
    • Weiterführende Fragen werden immer gestellt


  • Hahaha, das Wort des Jahres lautet... (KI-Ära)


  • Mod

    @Quiche-Lorraine

    Deine Auflistung ist wirklich interessant:

    • Sprache ist immer liebevoll
    • Rückfragen werden nie gestellt
    • Fehler werden ignoriert
    • Weiterführende Fragen werden immer gestellt

    Die Freundlichkeit ist echt penetrant. Achtet aber mal auf den Denkprozess, den man heute einsehen kann. Starke Diskrepanz.

    Das Thema Schrittweises Vorgehen und Rückfragen kann man modellieren, zumindest bei ChatGPT-5.1.

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

    Das mit den weiterführenden Fragen und Ideen ist wirklich manipulativ. Manchmal kann es auch positiv sein, wenn man selbst nur denkt/labert und nicht liefert.

    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.

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



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

    In ein oder zwei Jahren wird die KI uns "emotional", analytisch, konzeptionell und bezüglich Logik überlegen sein.

    Hm, das hab ich vor 3 Jahren auch schon mal gehört.


  • Mod

    @DNKpp Der Zeithorizont ist immer schwierig. Kurzweil hatte den Kipppunkt für 2040 vorhergesagt, hat nun auf 2045 verlängert. Ich überschaue den Zeitraum von ChatGPT-3.5 bis nun ChatGPT-5.1. Das ist ein gewaltiger Fortschritt. Momentan ist es so, dass ChatGPT-5.1 der Einzige ist, mit dem ich ernsthaft über meine Projekte diskutieren kann. Immer fokussiert, immer eine konkrete Idee parat. Er merkt sich die Dinge auch Chat-übergreifend (kann man angeblich einstellen), also über viele Monate. Er passt sich nach eigener Aussage auch an das Niveau des Fragenden an. Flache Frage, flache Antwort. Hohes Niveau, er ist voll dabei, mit ungeheurem Wissen.



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

    In Spezialgebieten wie ... Schach ... ist die KI jetzt schon deutlich überlegen.

    Aber doch nicht gegen andere "Engines" wie Rybka beispielweise... https://de.wikipedia.org/wiki/Rybka

    Das kann man doch klar messen (Elo). KI rät einfach nur, Engines setzen planvoll zusammen. Klar ist dieses Raten meistens schon ganz brauchbar, aber nicht weltspitze.

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

    Die Freundlichkeit ist echt penetrant.

    Leider ja... andererseits sind gelegentliche Einschübe mit Smileys auch mal ganz nett. 🙂 Damit sollen Emotionen transportiert werden.

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

    Das Thema Schrittweises Vorgehen und Rückfragen kann man modellieren, zumindest bei ChatGPT-5.1.

    Hab gestern mal mit Co-Pilot experimentiert und den Agenten beim Problemlösen zugeschaut... Leider war das Ergebnis nicht gut, sodass ich manuell nacharbeiten musste... aber von mir kam auch nur ein minimaler Prompt.

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

    In ein oder zwei Jahren wird die KI uns "emotional", analytisch, konzeptionell und bezüglich Logik überlegen sein.

    Weiß ich nicht... Wenn die HW immer mehr Energie verbraucht, wäre es vielleicht günstiger, die KI im Weltall mit Solarmodulen laufen zu lassen und die Ergebnisse zur Erde zu funken. 🤣 Der Todesstern wird also Realität...



  • Ok, ich sollte das ein wenig differenzieren...

    Eine klassische Chess Engine ist für mich Minimax-Algorithmus, Alpha-Beta-Pruning und Heuristik. Das sind schon einmal nur Algorithmen. Hinzu kommt aber noch eine Bewertungsfunktion - und hier wird es spannend. Diese Bewertungsfunktion kann Reinforcement Learning sein (eine frühe Form heutiger KIs) - oder komplett durch ANNs realisiert werden.

    Also ist es mittlerweile schwierig, bei Chess Engines klar zwischen reinen Algorithmen und ANNs zu unterscheiden. Aber eines ist sicher... ohne die oben genannten algorithmischen Ansätze ginge es nicht - oder es wäre nicht besonders "schlau".



  • Ok, das war zwar au nicht besonders schwer... aber ChatGPT stimmt mir auch überwiegend zu... 😉
    https://chatgpt.com/share/69391c61-fcd8-8012-a4f8-72b110c1aae4

    So, Kaffee.


  • Mod

    Zu diesem Punkt:
    A) Klassische Engines mit NN-Evaluationskomponenten
    Wie Stockfish NNUE:
    Suche: klassisch (Alpha-Beta)
    Evaluation: kleines, effizientes NN (keine vollwertige RL-Engine)
    → Mischung aus Old-School-Suche und moderner Wertungsfunktion.

    Ich kenne Stockfish gut, da er erstens open-source ist und ich ihn zweitens modifiziert habe, damit er seine inneren Geheimnisse preisgibt. Besonders interessant sind die NNUE-Werte pro Figur/Bauer auf ihrem Feld (Figur/Bauer wird jeweils entfernt und die Differenz zwischen den beiden Gesamt NN-Werten wird angezeigt: UCI-Befehl "eval").
    Code: https://github.com/official-stockfish/Stockfish

    Zur Evaluation:
    Ab SF 12 wurde ein NN hinzugefügt (brachte ca. +100 ELO). Inzwischen ist es ein NNUE (läuft rein auf CPU).
    Ab SF 16 wurde die klassische handgemachte Auswertung rausgeworfen. Jetzt nur noch NNUE-Bewertung.
    Es gibt übrigens zwei neuronale Netze: ein kleines (schnell) für einfache Aufgaben, ein großes (über 60 MB) für komplexe Bewertungen.

    Wenn du dich für Schach-Engines interessierst, ich habe zusammen mit einem Programmierer aus der Schweiz einen "Schachtronauten" (Ziel: Schach-Coach) gebaut, der inzwischen experimentell sehr gut funktioniert (schreibe mich einfach an: e.henkes@gmx.net).



  • @Erhard-Henkes
    Danke fürs Angebot, aber ich habe keine Zeit, um auch noch an einem "Schach-Wettbewerb" teilzunehmen. Hatte heute Morgen nur etwas daherschwadroniert, was denn nun alles zu "KI" zählt oder nicht.


  • Mod

    Moderne (!) Schach Engines haben neuronale Netze, und das zählt sicher zu KI. Es geht auch ohne NN. Da schafft man auch sehr gute Leistungen. Man muss sich nur Stockfish 11 anschauen.



  • 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.


Anmelden zum Antworten