Virtual Mode Initialization
Once rdb_bootstrap() has placed the system into virtual mode, it has a couple of more steps to do. It flushes all the caches because the realmain routine does some code optimization. This act of having the kernel modify its own code can cause problems with the caches, so we flush them. We also create the kernel stack and switch to using that instead of the interrupt stack. Finally, rdb_bootstrap branches to main(), the virtual mode main program for the kernel.
main() is similar to realmain() in that it works from a calllist. This one is called mainstreet_calllist. One interesting difference in main is that it never returns. The thread that calls the mainstreet_calllist routines eventually become proc 0, the swapper. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access