Ask HN: Has anyone here worked on the Windows kernel?
111–120 of 174 posts
Re: Ask HN: Has anyone here worked on the Windows kernel?
#112Earlier quoted context omitted.
Can you no longer use windbg to attach to a running kernel on a remote box, and debug the remote box from your development machine? I believe that's how kernel debugging is generally done.
(I’m a Linux kernel dev) Tools like windbg probably work great until you are debugging the code that runs when windbg tries to take over. Or you’re debugging something sensitive to interrupts and it’s literally impossible to keep up with a tool like windbg. Or you a debugging something that overwrites windbg in memory because you have a corrupt pointer. Or you triple-fault the machine and it reboots with so much prej…
https://docs.microsoft.com/en-us/windows-hardware/drivers/de...
Re: Ask HN: Has anyone here worked on the Windows kernel?
#113Microsoft is a friggin dumpster fire, dude. Some teams are great to work for, but a LOT of them are little crews of treacherous rogues who're only looking out for themselves and always ready to stab someone in the back. You'll run into a lot of the same issues on the Windows kernel that you're getting irritated with in service development land. A lot of infrastructure is already out there, but figuring out how to use…
Re: Ask HN: Has anyone here worked on the Windows kernel?
#114You said you were looking for things that you might not like about kernel development, so here’s a few:
- Distributed systems. Everything is distributed these days with NUMA, cache coherency, PCI transactions, etc. You’ll have to know how to use the right kind of atomic memory ordering, debug lockless algorithms, and know how the OS scheduler works at a deep level. If this doesn’t excite you, the job might not be a good fit.
- Working with physical hardware. Although in most cases you can get away with a VM, you will almost certainly have to use an actual device for some of your work. The hardware you use might not be 100% functional or even correct- I’ve had to debug kernel issues that ultimately were hardware errata. At Apple it’s easy to get in contact with the silicon design teams, but I’m not sure about Microsoft and Intel/Qualcomm. Working with physical hardware also limits your ability to work remotely easily. Lugging around a bunch of laptops, phones, and tablets in a carry-on suitcase is no fun, especially when you have to take them all out at TSA checkpoints.
- Lack of user-visible impact. Kernel dev is vitally important but it doesn’t get much visibility, except when something goes wrong. New kernel features hardly make the headlines. It can be a little annoying to see your colleagues in app/web dev get recognized for the features they worked on at WWDC or Microsoft Build, while you’re toiling away working on kernel features that very few people care about.
- Debugging. I actually think debugging kernels is not too difficult if you have the right set of tools. At Apple we use lldb and hardware debuggers (JTAG/SWD), and have the ability to take a core dump of the kernel after a panic to analyze later. But since kernel dev is at the core of the operating system, you’ll have to learn to debug other parts of the stack too. For example, you might make a kernel change that breaks the file explorer but only when you visit a specific directory. So you’ll need to know how to debug both the user space process to know what’s going wrong, and the kernel to know why that is happening.
Although there are some negative aspects of the job, there are many more positives. I really like my job and can see myself staying at Apple for many years. I’m constantly learning and working with some of the smartest people I have ever met.
Give the Microsoft job a shot; you can always leave if it’s not a good fit but you will have left a better engineer than when you started.
Re: Ask HN: Has anyone here worked on the Windows kernel?
#115Earlier quoted context omitted.
Can you no longer use windbg to attach to a running kernel on a remote box, and debug the remote box from your development machine? I believe that's how kernel debugging is generally done.
(I’m a Linux kernel dev) Tools like windbg probably work great until you are debugging the code that runs when windbg tries to take over. Or you’re debugging something sensitive to interrupts and it’s literally impossible to keep up with a tool like windbg. Or you a debugging something that overwrites windbg in memory because you have a corrupt pointer. Or you triple-fault the machine and it reboots with so much prej…
Re: Ask HN: Has anyone here worked on the Windows kernel?
#116I used to work in the Windows team before I moved onto a team in Azure. I’ve contributed to both user and kernel mode components. You’ll work with very smart people and they will be very technical. Hiring bar in the Windows kernel team is very high compared to other teams in the company. You learn a lot. Work life balance will also be great. The other great part is the sheer amount of engineering that will go into ev…
Sooo... Is Azure any good? (the product, but I guess also the workplace)
I enjoyed my time in the Windows team the most.
Re: Ask HN: Has anyone here worked on the Windows kernel?
#117Earlier quoted context omitted.
> think that if you want to make the big bucks but still work with c/c++ Judging by the presenters at CPPCon, a significant fraction of highly-skilled and highly-paid C++ devs are employed in the High Frequency Trading (HFT) industry. They meet OP's criteria in many ways as well, as HFT trading tends to be "very close to the metal", optimised to death, and often involves solving deep technical problems. It's diametri…
The downside of working on HFT is that the value one provides to society is at best nil, and some would argue that it's negative. Some people care about things like that.
I’m pretty sure that you could donate a big chunk of the million+ ill-gotten dollars to charity and make a lot of good things happen
Re: Ask HN: Has anyone here worked on the Windows kernel?
#118I spent about ten years on the Windows Kernel team. In the 90's, so likely very different than what you would experience today, but probably still a lot of the same problems. (Funny to hear people are still complaining about windbg!) I think you are coming at this from the wrong perspective. Rather than thinking about how to avoid work you DON'T like, think about what you DO like and then decide if the new job would…
Don't you find it difficult to transition from one domain to another?
Source: 33 years experience hopping all over the spectrum
Re: Ask HN: Has anyone here worked on the Windows kernel?
#119Microsoft is a friggin dumpster fire, dude. Some teams are great to work for, but a LOT of them are little crews of treacherous rogues who're only looking out for themselves and always ready to stab someone in the back. You'll run into a lot of the same issues on the Windows kernel that you're getting irritated with in service development land. A lot of infrastructure is already out there, but figuring out how to use…
Ah, so it is true: https://www.androidpolice.com/wp-content/uploads/2021/07/08/...
It’s a fractal shape too. You see the same sort of intrapersonal weaponry at the division level, the org level, the group level, and even within teams
Maybe it even continues to a Herman’s Head-style inner conflict for good company men
Re: Ask HN: Has anyone here worked on the Windows kernel?
#120Earlier quoted context omitted.
To be fair, Watson post-mortem debugging is something that pretty much every team that ships a product running on users' hardware has to deal with.
I think what I meant to say is that sometimes even telemetry and logging is unavailable to you. In my example, you might ask for more dumps for your Windows component or Microsoft first-party app on Watson Portal / Get More Data, but even after a few days of waiting you don't get any more, or only one more, because the issue occurs in the wild too rarely to show up in telemetry, or repros often but doesn't reliably p…
The "repros often but doesn't reliably produce a useful dump" is particularly frustrating. Like, you're seeing all those crashes, and every one of them is likely to be some poor user who is at best annoyed, and at worst just lost some data. And you have no clue as to what the bug is or how to fix it to help them.