April 17th, 2012

There's the kernel, and there's kernel mode – confusing historical terminology

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:

  • The window manager, known as user, because it handled the user interface.
  • The graphics engine, known as GDI, short for Graphics Device Interface.
  • File I/O, the scheduler, memory management, and other low-level bits, known as kernel.

Windows 1.0 ran on the 8086, which had no concept of CPU modes or memory protection or any stuff we take for granted nowadays. 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.

Topics
Other

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.