2009-05-06 6 views
4

Wie wechseln wir in Linux 2.6 vom geschützten Modus in den Real-Modus?Wie wechseln wir in Linux 2.6 vom geschützten Modus in den Real-Modus?

+7

Warum? Ihre Linux-Installation stürzt nicht genug für Sie ab? – paxdiablo

+1

Was genau versuchen Sie zu erreichen? Was du fragst, ist nicht wirklich möglich, aber wenn du etwas mehr Kontext gibst, könnte jemand dir vielleicht einen anderen Weg zeigen, um das zu erreichen, was du brauchst. – jalf

Antwort

10

Sie nicht.

Der Kernel kann im Real-Modus überhaupt nicht funktionieren, noch können BIOS-Aufrufe (vernünftig) gemacht werden, so dass Sie sowieso nichts tun könnten.

Sie können sich ansehen, wie DosEMU den v86-Modus verwendet, um Ihren "Real Mode" -Code auszuführen, aber das ist alles.

+1

Ich stimme zu, dass es eine schlechte Idee ist, aber es ist technisch möglich ... –

+0

Sind Sie sicher, dass es technisch möglich ist? Ich erinnere mich (seit damals), dass i386 nach dem Eintritt in den geschützten Modus keine Möglichkeit hatte, zurück in den Real-Modus zu wechseln, aber ich könnte mich irren. –

+1

Es ist technisch möglich, und die meisten BIOS und Bootloader müssen es tun. Sie richten nur Segmente in der GDT ein, die dem Real-Modus ähneln, und deaktivieren dann das Protected-Mode-Bit. Das Problem ist, dass Sie das nicht im Benutzermodus tun können und der Kernel wäre nutzlos, also möchten Sie wahrscheinlich v86. – rpjohnst

1

Die ELKS Linux-Port kann Real-Modus, aber es ist nicht 2.6.

2

Sie könnten auch einen Blick auf FreeDOS werfen, wenn Sie wirklich Real-Modus auf der Hardware benötigen.

2

Der Kernel wechselt zu Beginn der Boot/Start-Sequenz vom Real-Modus in den Protected-Modus und es gibt kein Zurück mehr. Weitere Informationen finden Sie unter How Boot Loaders Work.

Wenn Sie ein Programm haben, das Realmodus benötigt, gibt es v86 mode. Somework ist im Gange, Unterstützung dafür im 64-Bit-Modus hinzuzufügen.

1

Wir können vom geschützten Modus in den Real-Modus wechseln, indem wir einige Zeilen Code als Teil des Kernels schreiben.

Die Hauptsache ist, nachdem den PE-Bit auf cr0 Register deaktiviert, müssen wir den entsprechenden GDT, LDT, IDT zu laden. Folgen Sie einfach diesem Link für mehr Details http://www.sudleyplace.com/pmtorm.html.

+0

Danke für den Link. Aber gibt es eine einfache Reihe von Anweisungen, um vom geschützten Modus in den Real-Modus zu wechseln, laden Sie die ersten 512 Bytes von/dev/sda zu 0000: 0700 und JMP zu dieser Adresse? – WinEunuuchs2Unix