It seems MS is killing off everything that people were interested in, except web developers.
Well, this trend is more than 20 years old. It all started in the userland. Kernel-mode development was relatively immune to it up to certain point, but around 2006-2007 this trend was extended into the kernel as well (PatchGuard, driver signing,etc)…
MS completely abandon the embedded realtime market segment, essentially ceding this to Linux.
Unless you are speaking about Windows CE, neither Windows nor Linux is really suitable for the realtime development. In fact, I would say that unmodified Linux is even more unsuitable for this purpose than Windows NT is.
The beauty of Linux is that you can tailor it to your needs. In this context it means running it as a task inside your RT kernel. You don’t necessarily have to move it to the userland, but you have to provide your own arch that cedes the actual control of interrupts, spinlocks and timers to your custom RT kernel, effectively virtualising them as far as Linux is concerned. You have to make its ISRs and bottom halves run it context of dedicated RT tasks that are controlled by your RT kernel, transparently to Linux. Whenever Linux code acquires a spinlock, your arch has to disable the preemption of above mentioned threads, rather than disabling the actual hardware and software interrupts.
This is the very minimum that has to be done…
Linux is sometimes frustrating and seemingly disjointed with no single entity to go to get answers. As I have become more
familiar with it, I’ve learned I don’t NEED to always run to a single definitive entity for answers: I have the source! I can tailor
the code to my specific piece of hardware.
Imagine combining these two, and adding a sound and extensible system architecture with the stable kernel API, as well as permissive licensing, to the whole thing. Sounds like a dream? Incredibly enough, but a system that offers all the above is almost of zero popularity among the developers…
Anton Bassov