Live data from Hacker News

Ask HN: Has anyone here worked on the Windows kernel?

news.ycombinator.com

111–120 of 174 posts

Re: Ask HN: Has anyone here worked on the Windows kernel?

#112
post #65
post #26

Earlier 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…

Windows kernel can generate ETW profiling data, no need to manually add logging information after the fact.

https://docs.microsoft.com/en-us/windows-hardware/drivers/de...

Re: Ask HN: Has anyone here worked on the Windows kernel?

#113

Microsoft 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…

You forgot NVidia and Adobe, two big hires of well known names in the C++ community and ISO C++ working groups.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#114
I work at Apple on the kernel team. Congratulations on the job! Getting into kernel development is very difficult.

You 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?

#115
post #65
post #26

Earlier 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…

I have debugged the kernels of Windows, Linux and now iOS using internal tools. Windbg generally works, and is far superior to the equivalent tools for other kernels. Like vim it has a baroque syntax and a steep learning curve, but it also has a gui with big buttons to compensate. Yeah, you can get yourself in bad situations, especially in early boot, but I miss it.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#116

I 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)

We solve a different set of problems. But people here have different skillsets. Cadence of release is also faster.

I enjoyed my time in the Windows team the most.

Re: Ask HN: Has anyone here worked on the Windows kernel?

#117
post #92

Earlier 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’ve been thinking about getting into HFT.. they’re always bragging about operating on millisecond/microsecond timescales, but they’re doing it on bespoke heavily-monitored systems. Meanwhile here I am shipping the same type of code to millions of people on commodity hardware..

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?

#118
post #33

I 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?

The most growth (and fun, in my opinion) is experienced when you hop to a new discipline where you have no idea what you're doing.

Source: 33 years experience hopping all over the spectrum

Re: Ask HN: Has anyone here worked on the Windows kernel?

#119

Microsoft 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/...

Man, it is so true, or at least was when I left in 2017

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?

#120
post #90

Earlier 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…

Yup, this all sounds very familiar to me - and I never worked on anything Windows.

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.

Post reply on HN