What CS skills are needed to do research in Operating Systems?

Interesting... why is OS usually recommended before doing research in a field like security? What about OS / low level details do security people focus on?

because if you don't know what you're working on, you're never going to make progress, you will only ever at best be able to imitate other people who truly know what they're working on, and that is not a skill, it's a redundancy

Assembly, and CPU design.

Because understanding how a kernel and an OS in general work is important in understanding how to exploit it.

Security is another job that the kernel is in charge of handling. In particular the kernel needs to be able to separate system processes from user processes. Moreover it needs to be able to separate processes (and their memory) from each other. If a user process is able to exploit a flaw in the kernel and gain access to other processes then it can cause devastating results. Moreover if it can access system shit then it basically owns the system.

That's still just basic stuff. Other aspects of OS design/implementation are things like filesystems, files, devices, etc.. (all the other shit that comprises an OS). These things also have to have security and permissions implemented and each one of those is hard as fuck to do right.

None of this requires advanced math but it does require very careful thinking and very detailed work with a lot of moving parts that are at times difficult to keep track of.

Excellent answers. For some reason I find this very interesting. Think I will continue taking CS courses pre-reqs up to OS and seriously consider moving into this area / security for graduate studies. I know it isn't math like I do in my pure studies, but I can always study math on the side.

This is church.

OP, you don't do a PHD in Operating Systems. Maybe something like distributed systems? Good OS design is more of a software engineering thing. There are a lot of interesting TCS problems that someone with a good grip on combinatorics can do.

No no no, I want none of that. I want a kernel to run IO only.

Everything else runs in state machines, one state machine per core.

I fucking hate all the bloat in Linux on the Xeon Phi. So much fucking overhead compared with running on bare metal.

I can craft one nice tightly nit bit of code and have it crunch out results on my two phi's, 144 cores in all. So much nicer than cuda.

>computational theory, compiler constuction, etc. will also be useful
Really? I work in these fields and don't really see the relevance, except perhaps in the gruelling implementation of compilers (bootstrapping and so on).

>research in operating systems
It isn't 1995 anymore, OS aren't relevant in academia or research, it's all down to engineering in that area. It's only taught to undergrads so they understand how their system work.

What relevant areas of research use OS? Security?