Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I've was reading through my new Intel manuals and noticed that an IA-32 processor has 3 modes of operation:
- protected mode
- real-address mode
- system management mode
I'm curious about the SMM, as the description says:
This mode provides an operating system or executive with a transparent mechanism for implementing platform-specific function such as power management and system security. The processor enters SMM when the external SMM interrupt pin (SMI#) is activated or an SMI is received from the advance programmable interrupt controller (APIC).
Could some-one please explain a bit more about system managment mode? What would SMM be life for an operationg system in comparison with protected mode?
i dont think its possible for a desktop OS to use SMM -- as it requires hardware to enter the SMM state, its designed for onboard firmware -- i believe its used for some of the legacy emulation features
also it would be somewhat impractical to use for an OS, as it is severly limited (16bit address bus (not required to be part of the normal address space), no paging, etc), and it is (by design) isolated from the rest of the system
to say that RMode is a separate 'mode of operation' is misleading... though it is the way its generally refered to, which (imho) is the source of much confusion when people try to understand PMode/RMode/UMode
386+ CPUs (but not the 286) do not actually have a separate 'RMode' -- rather it is simply a special case of PMode, where GDT references are redirected to an internal table, the IDT is interpreted differently, and many protection checks are disabled