Autor Thema: Verständnisfragen  (Gelesen 16429 mal)

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #40 am: 20. November 2009, 22:32 »
Doch ist es. Das ganze geht aber soweit ich weiss auch mit 32 Bit Prozessoren. Da wird dann üblicherweise ein Register für die Adressierung dauerhaft besetzt. Für mehr Details siehe gcc-Doku zu -fpic und sowas.

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #41 am: 18. December 2009, 12:22 »
Da es im entfernten Sinne auch eine Verständnisfrage ist, poste ich einfach hier.  :wink:
 
Ich habe das Thema APIC und I/O APIC mal nach hinten verschoben, auch wenn mein Testrechner nen local APIC hat...
 
Und zwar bin ich ja immer noch am aufteilen/neuschreiben meines Codes. Nun habe ich einfach mal im GIT-Repository geschaut. An und für sich ist die physische Speicherverwaltung ja schnell gelöst (Bitmap). Nun ist es ja so, dass die Seitengröße von 4K Plattformabhängig ist, aber der ganze Rest (die eigentlichen Funktionen) ja nicht.
 
So weit kein Problem. Da ich aber nun einfach mal bei tyndur geschaut habe, habe ich den mmc-Funktionssatz gesehen. Ich vermute einfach mal, dass das für "Memory Management Context" steht. Was für ein Sinn steckt dahinter? Wofür werden solche Funktionen gebraucht?

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #42 am: 18. December 2009, 13:24 »
Die mmc_*-Funktionen sind alles, was mit der MMU zu tun hat (und deine Vermutung bezüglich der Abkürzung ist richtig). Für i386 ist das also einfach die Implementierung für Paging. Ein Kontext entspricht in der Implementierung einem Page Directory.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #43 am: 10. February 2010, 10:50 »
Hiho :)
 
Ich habe mich vor kurzem dazu entschlossen von nasm auf den GNU Assembler umzusteigen. Unter nasm musste ich immer die "Architektur"  angeben, z.B. [BITS 32]. Muss ich das bei dem Assembler von GNU auch so ähnlich machen, oder reicht es, wenn da einfach die Option "-melf32" gesetzt wird?

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« Antwort #44 am: 10. February 2010, 11:27 »
Hi,

es riecht vollkommen, wenn du das -melf-32-flag setzt.
Alles andere macht der Compiler dann von alleine
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #45 am: 03. March 2010, 08:38 »
Moin moin,
finde ich gut. :)
Trotzdem steht am Anfang des Assemblercodes ein ".code 32". Ich denke mal, dass das angibt, dass es sich bei dem nachfolgenden Code um 32 Bit Code handelt.
 
Nun ist da noch etwas. Ich experimentiere mal wieder mit C++. Nun werden im Wiki-Tutorial per Linkerscript die Destruktoren entfernt. Gilt dies nur für globale und statische Klasseninstanzen, oder werden da auch lokale destruktoren mit entfernt, die aufgerufen werden müssten, wenn z.B. eine Klasse nur in einem bestimmten Abschnitt, z.B. einem if, benutzt wird?

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #46 am: 03. March 2010, 11:27 »
Hallo,


... ".code 32". Ich denke mal, dass das angibt, dass es sich bei dem nachfolgenden Code um 32 Bit Code handelt.
Das wird wohl so sein.

Gilt dies nur für globale und statische Klasseninstanzen
Ja.

oder werden da auch lokale destruktoren mit entfernt, die aufgerufen werden müssten, wenn z.B. eine Klasse nur in einem bestimmten Abschnitt, z.B. einem if, benutzt wird?
Nein, diese Destruktor-Aufrufe stehen mitten im Code der entsprechenden Funktion.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

 

Einloggen