As I've said at http://jdebp.info/FGA/operating-system-nut-metaphor.html and at https://superuser.com/a/329479/38062 , this terminology is fairly foreign to the world of MS-DOS, and CP/M before it, in the first place.
Always remember: these terms are metaphors.
They don't have exact meanings, and arguing whether the "DOS kernel" was discarded or the "DOS part" was discarded or the "DOS foundation" is discarded is really putting too much of a specific meaning into a term that only really means the inner part an operating system when viewed through the analogy of a nut.
The architecture of DOS+Windows 95/98/ME actually has a lot of layers (ROM firmware, DOS layer, virtual machine manager, Win16 layer, Win32 layer, Explorer shell, command processor, and housekeeping utility programs), and how well one can match it up with a simplistic nut metaphor is confounded by how one is viewing it at the time.
More realistically, it's more of an onion than a nut, but even that is a simplification, as the layering is not uniform in every aspect.
Some people like to place a single boundary at the Win16 API, and view what is inside that as "the kernel"; but there are at least three boundaries that can be viewed as where the "system calls" are, and which boundary encloses "the kernel" really depends from which boundary one is focussing upon.
Similarly, there are bits actually named "kernel" in their filenames, but that only form parts of the layer at their particular levels.
The KERNEL.DLL
is only a part of a layer that also encompasses things like USER.DLL
, and SYSTEM.DRV
.
And the design heritage goes back as far as CP/M, which didn't really have this terminology in the first place.
CP/M was not modelled as a "kernel" and a "shell", and people did not really use that metaphor for its architecture at the time.
MS-DOS inherited the CP/M way of viewing an operating system architecture, and the way that MS-DOS evolved into DOS+Windows 95/98/ME did not happen along the lines of an operating-system-as-a-nut metaphor.
People who got hung up on their notion that MS-DOS was not a "kernel", forgot that MS-DOS wasn't the only thing that got set aside.
Windows NT not only didn't share the underpinning MS-DOS, it didn't share the VMM architecture, the VxDs, or even the way that the 32-bit system was layered over the 16-bit system.
They should have pulled you up on your idea that it was "DOS" that was discarded, whether or not one could view that as a "kernel" of a metaphorical nut.
A whole lot more was discarded, and re-architected in a very different way.
Finally: Do not conflate the "kernel" of an operating system with "the part that runs when the processor is in supervisor mode".
"kernel" is not that precise a term, and there are operating systems for processors that have user/supervisor mode distinctions where "the bits that are internal to the system call interface" (one way that people sometimes choose to define a "kernel") run partly or even wholly in the processor's user mode.
Not only is this is a metaphor, not a precise term with one definite meaning, but also it is not necessarily a metaphor aligned with processor modes, or even one that is limited to operating systems with processor modes.
PRN
,AUX
, the RTC), manages memory and processes. The only major thing it lacks is concurrency, and even that can be worked around with TSRs and multitaskers like DESQview… and later, in fact, Windows.