At Microsoft's Tech Ed conference in Amsterdam on Wednesday, a session was devoted to how, according to one Microsoft fan at least, the Linux kernel is beginning to resemble, well -- Windows.
The talk, given by Mark Russinovich, chief software architect for Winternals Software and co-author of Inside Windows 2000, 3rd edition (published by Microsoft press), was clearly delivered to a home crowd, and its message was clear: Linux is paying catch-up with Windows and the gap is narrowing.
It all means, said Russinovich, that the kernel is becoming less relevant. Both kernels are monolithic, he noted, meaning that all core operating system services run in a shared address space in kernel mode. And, he asserted, both have a common heritage.
"Both operating systems had their origins in the 1970s and their real birth in the 1990s and have been evolving quickly since then. The two operating systems are very similar from a kernel perspective, because as engineers work on problems they look around to see what’s working elsewhere. So you end up with a lot of similarities," said Russinovich.
Windows, said Russinovich, owes a great deal to a project led by David Cutler, one of the creators of Digital's VMS operating system, to port Windows to what was then Digital's 64-bit Alpha processor. While at Digital, Cutler, who now works on 64-bit Windows, also worked on a project to port VMS to the Intel IA-32 platform.
Meanwhile Linux, noted Russinovich, owes a great deal to the work of Andrew Tanenbaum, who created the Unix-like Minix operating system for educational purposes. Although Linux creator Linux Torvalds has never denied that he drew inspiration from Minix, both he and Tanenbaum refute claims that Torvalds used Minix code in Linux.
In a relatively technical session that took the audience of several thousand through everything from process management to I//O management, security management and virtual memory management, and went on to cover concepts such as pre-emptible and re-entrant kernels, Russinovich's slides highlighted the similarities between the two operating systems' kernels. Russinovich's presentation, which he claimed to have run by Torvalds, Cutler and Linux kernel developer Ingo Molnar, did not cut any slack for what Russinovich characterised as u-turns by Linux developers -- most notably Molnar.
For example, on making the kernel re-entrant (which refers to letting software be executed multiple times simultaneously), Russinovich cited an article he wrote which pointed out the lack of this feature in the Linux kernel. "Molnar said it was a 'clear red herring', said Russinovich, "A month later he turned around and made all paths (in the Linux kernel) r-eentrant."
"I also pointed out that a pre-emptible kernel is a lot more responsive to a high priority thread," said Russinovich, moving on to his next target. "The Linux kernel 2.6 was made fully pre-emptible."
As these -- and other -- differences have been removed, said Russinovich, the only major difference between the two operating systems is how windowing is handled. "Windows has kernel windowing. When it wants to perform a graphics operation, it does call into the kernel. In Linux, the application sends a message to the x-window process, which looks like any other process."
"With Linux, you have messages transmitted which can degrade performance," he said, but conceded that this does make it easier to do remote applications. "With X-windows you can run windows for applications on a remote client. That is much more difficult in Microsoft Windows," he said.
Security was also another area where there significant differences remain between the two operating systems. But ultimately, said Russinovich, the gap between the two operating systems will continue to narrow to a point where their underlying kernel becomes irrelevant. "Layered services will become more important," he concluded.