Holy cow, I wrote a book!
A few weeks ago,
I mentioned that
the kernel folks decided not to expose bonus bytes to applications.
Some people were confused by this statement,
not for what it said,
but for what it implied.
"Wait, you're telling me that the heap is implemented in kernel mode?"
Let's turn the clock back to 1983.
The core components of Windows fell into three categories:
Windows 1.0 ran on the 8086, which had no concept of
CPU modes or memory protection or any stuff we take for granted
Everything ran in a single mode, and since there was only one mode,
it didn't have a name.
Although future versions of Windows distinguished between kernel
mode and user mode (in the CPU mode sense),
the old terminology stuck around.
The "kernel" was anything related to file I/O,
the scheduler, memory management, and other low-level operations,
even if they were implemented in user mode.
For a time, there was an effort to use the term
"base" to refer to all of these low-level operations
and thereby avoid the confusing term "kernel."
As you can tell,
the attempt was largely unsuccessful.
People continued to call low-level stuff "kernel" out of habit.