Originally Posted by
boguing
BUT. System idle process is a misnomer. It's not a process.
Whenever I've written an operating system the system idle process has been a fully fledged process (with an address space, a stack, a thread and so on), even though the code consists of a couple of instructions which don't, as you say, actually do anything, and the stack will be the smallest amount that can be allocated.
There are all sorts of good reasons for doing it this way, starting with avoiding potentially horrendous special case idle code in the scheduler - so much easier just to schedule a real live genuine, but low priority, idle process.