Kann ein C-Point die MMU umgehen? Z.B. ein Programm bekommt einen Ph Speicherbereich von 0x200000+ (nur gesponnen) kann ich dann mit einen Pointer trotzdem aus diesem bereich raus? z.B. int* p = 0x01;
Nein, da jeder Pointer auch durch die MMU gejagt wird. Nur das Betriebssystem kann auf das PageDirectory und die PageTables zugreiffen. Es sei denn es sperrt sich selbst aus (Ja, das ist theoretisch möglich). :D Viele Grüße Sebihepp
Max schrieb: > Kann ein C-Point die MMU umgehen? Ja. DOS booten und darin das Programm laufen lassen. Ohne EMM386&Co. Dann ist die CPU im Real Mode und die MMU inktiv. Sowas in der Art ist allerdings der einzige Weg.
Wenn dich der Zugriff auf unterester Ebene interessiert schreib mal eine Nachricht an sebihepp@aol.com =)
Danke für eure Beiträge Das Thema kam nämlich gestern bei einen Dozenten auf. Er meinte das man mit einem C Programm einen ganzen Rechner (x86) zum abstürzen bringt wenn man einen Pointer falsch setzt. Ich meinte dann nur das eigentlich jedes Programm durch die MMU geschützt wird und "nur" ein Laufzeitfehler entsteht. Er meinte dann das dies auch richtig ist aber nicht bei Pointer. Ich wollte mit Ihm auch nicht Diskutieren weil ich C mehr im µC Bereich einsetzte und es dort keine MMU gibt (bei meinen µC). Da war ich mir dann echt unsicher. Aber dank euch bin ich mir jetzt wieder sicher und kann heute die Diskussion anfechten :)
Bei DOS und 16-Bit-Win wird keine MMU verwendet und alle Programme sehen denselben Speicher - jedes Programm kann per Pointer alles vermurksen. Erst bei NT/XP/Vista/7 sind die Speicherm, den die Prozesse sehen, per MMU gegeneinander abgeschottet.
Klaus Wachtler schrieb: > Bei DOS und 16-Bit-Win wird keine MMU verwendet Aber nur urtümliches 16-Bit Windows im Real Mode, Version 1.x oder so, was damals kaum jemand einsetzte. Das bekanntere Windows 3.x verwendete zwar nicht das heute verbreitetere Paging als primäres Mittel der Speicherzugriffssteuerung, aber eine segmentierte MMU mit entsprechendem Zugriffsschutz wurde im 16-Bit Protected Mode durchaus verwendet. Inwieweit in diesem Win 3.x die MMU einen effektiven Zugriffsschutz dem Betriebssystem gegenüber implementierte ist mir allerdings nicht geläufig. Die MMU legte dies zwar nahe, offen ist jedoch, inwieweit Win 3.x dies auch nutze.
A. K. schrieb: > Inwieweit in diesem Win 3.x die MMU einen effektiven Zugriffsschutz... Ja, die Win 3.* waren etwas dazwischen ("ein bißchen MMU"), aber für die ursprüngliche Frage kann man den Zwitter auch weglassen. Also etwas Kondom für nur etwas schwanger... Bei DOS hat man einen Speicher für alle und der Lehrer hat recht, bei NT bis 7 ist es anders und die MMU schlägt voll zu, indem die Speicher der Prozesse getrennt sind. Da kann man selbst unter Windows nicht einfach mit einem Speicherzugriff das OS abschießen. Sollte zumindest.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.