I was a dev on the Visual Studio and Windows teams in the 90s. I’m retired but mentor CS students at two local universities.
I haven’t had a student in two years that was even remotely interested in ring-0, internals, or really understanding a debugger.
I’m not being critical; they are just focused on higher level abstractions.
It’s fun to understand just for intellectual curiosity’s sake but the number of people who get to work on shipping code where ring-0 knowledge is useful has to be minuscule as a percentage. It feels like a minor miracle I got to work on device drivers in my career. I imagine students might be more worried about completing assignments and good grades than the ins and outs of debuggers, too, though understanding those is important for problems one is more likely to come across in work projects versus smaller school assignments.
Arguably the lower level abstractions are more interesting too! how exactly Windows does ring-0 is less interesting than writing your own ring-0! And unless you care about writing driver-level software for Windows or contributing to the kernel, learning this is also less useful.
I'm essentially arguing that unless you work at MSFT, there's next to no reason to learn that specific abstraction layer.
Speaking of debuggers...
I still twitch whenever someone says "use ddd" and they are not referring to Evans' seminal work.
:-D
> I’m retired but mentor CS students at two local universities.
> I haven’t had a student in two years that was even remotely interested in ring-0, internals, or really understanding a debugger.
I know quite a lot of such people (even in student age) who are interested in such topics. I really have a feeling that you chose the wrong students at the wrong universities.
Evidence for my point: rather recently, No Starch Press published quite a lot of about such topics - I am rather certain that a publisher knows quite well which kinds of books do or don't sell well at a given time:
- The Book of Debugging https://nostarch.com/book-of-debugging
- The Linux Memory Manager https://nostarch.com/linux-memory-manager
- The Art of 64-Bit Assembly, Volume 2 https://nostarch.com/art-64-bit-assembly-v2
- The Ghidra Book, 2nd Edition https://nostarch.com/ghidra-book-2e
- Building a Debugger https://nostarch.com/building-a-debugger
- Microcontroller Exploits https://nostarch.com/microcontroller-exploits
- System Programming in Linux https://nostarch.com/system-programming-linux
- The Art of ARM Assembly, Volume 1 https://nostarch.com/art-arm-assembly-volume-1
- Getting Started with FPGAs https://nostarch.com/gettingstartedwithfpgas
- The Book of I²C https://nostarch.com/book-i%C2%B2c