On Thu, Feb 12, 2015 at 6:57 AM, Keean Schupke <[email protected]> wrote:
> Interrupts and exceptions use the kernel stack, not the user stack, so > kernel entry point from the bootloader is valid. > That may be true in kernels you find in a textbook. It is generally not true in microkernels, and it is *rarely* true in high-robustness kernels. It is also very problematic in multiprocessor kernels. I think you are imagining that every process has both a user-mode stack and a kernel-mode stack. This is not true in high-performance kernels. You may wish to read Bryan Ford's paper "Interface and Execution Models in the Fluke Kernel". Bryan was early in his career when he wrote that, so the paper does not consider the atomic action kernel model (which is curious, because he was an active participant on the EROS list at the time). In Coyotos, there is a per-processor stack rather than a per-user stack. When a process in the kernel blocks, the stack is *erased*. The process re-enters at the user/supervisory boundary instruction. Truly, in these kernels, there is no stack that survives to be owned by the kernel in the sense you imagine. shap
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
