T
Original erstellt von <mastamind>:
ich denke, das tss und die ldt jedesmal zu ändern is langsamer, als wenn sie immer drin stehen. und ich denke so leicht gehen mir die descs dann nicht aus. wenn doch kann man das dann imme noch dynamisch machen.
Linux machts z.B. auch so, ich denke nicht, dass es allzu ineffizient ist, falls man das task switching sowieso manuell macht anstatt via hardware/TSS.
wie ist also deine allgemeine meinung zu diesem design? es ist zb ziemlich dynamisch und man kann dadurch sehr viel sogar zur laufzeit am system ändern, und trotzdem ist es extrem sicher.
Im Prinzip eine schöne Ausnutzung des Intel Modells. Ich persönlich bevorzuge bei zwei Leveln zu bleiben und die Schutzvorrichtungen über Page-Tables zu machen, aber das ist vermutlich ein bisschen mein Geschmack Die Frage ist noch, was dir diese Sicherheit bringt. Wenn du einen Bug im Kernel-Code hast, hast du sowieso ein Problem. Und wenn z.B. die libfs für Dateisystemunterstützung abstürzt, hilft es dir auch nur bedingt weiter, dass der Kernel noch weiterlaufen kann. Den Schutz vor User-Programmen hat man auch in einem 2-Ring-Modell. Und ob man nun die System calls über call gates oder Interrupts regelt ist auch pure Geschmackssache, das macht keinen großen Unterschied. Und man müsst enoch gucken, inwiefern da die C-COmpiler mitspielen, die ja ansich auf einem flat model arbeiten. Aber ich denke, dass das Problem nicht zu schwer ist.
Kurzum: wenn du das Modell schön findest, versuch dich dran, großartig Nachteile sollte es vermutlich nicht bringen (auch wenn ich die Vorteile ebenso nur begrenzt sehe ;)). Ich mache es nicht so, weil es mir nicht so gefällt Aber wie gesagt, am Ende alles eine Frage der Ästhetik.