“The Linux kernel is the core of a large and complex operating system, and while it’s huge, it is well organized in terms of subsystems and layers. In this article, you explore the general structure of the Linux kernel and get to know its major subsystems and core interfaces.”
It would be interesting to see the SLOC graph separated into core and driver graphs.
Somehow I doubt the non-driver code has grown as significantly, though I could be surprised.
An interesting part of that article that I wanted to comment on was their discussion of the hypervisor. One of the talks I saw at TechEd discussed a new Microsoft/Xen-written hypervisor that also implements Windows drivers in Linux (Linux and its programs don’t even know the difference, unless they specifically ask, I take it).
They expect their hypervisor version that ships to increase the speed of MS-enhanced Linux by a factor of 10 — and using Windows drivers for increased hardware support, too boot. Basically, if you’re using the new hypervisor, that changes all ‘Certified For Windows’ certified hardware into ‘Certified For Windows And Linux Too’.
(And before anyone asks, all the parts that work directly with the kernel will be released as open-source, although they haven’t decided on a license yet. I bet that they’re waiting on the GPLv3 to be finished before they decide to use it, another license, or another license that will be compatible with it — but I didn’t think of asking that question while I was still there, unfortunately.)
Edited 2007-06-08 22:02
“They expect their hypervisor version that ships to increase the speed of MS-enhanced Linux by a factor of 10”
hmm…
I don’t think so because dual booting:
A. I get better CPU benchmark results in Linux
B. I get better hard disk benchmark results in Linux
C. I get better windows game scores (wine) using the Linux nVidia driver than the Windows nvidia driver
I a bit of operating systems development experience and I really doubt a factor of 10 is reasonable. (unless Linux used only PIO or something silly like that which I know it doesn’t)
Where I work all our virtual server host machines run Linux because of perceived better performance. Now sometimes VM’s are faster than the host machine because of things like enabling write caching (since the host is on a UPS). I could ramble on, but I’ll stop here.
The speed differences sound a bit far fetched, but such a thing is interesting. But why would Microsoft create such a thing?
Free software types would likely find such a thing intensely distasteful for the same reason many don’t like NDISwrapper: it discourages the creation of native drivers. Though many end users might not care, native drivers are preferable, especially since Linux does not just run on x86.
This hypervisor will likely be shunned as an attempt to increase the usage of binary drivers in Linux, which seems like a possible Microsoft goal in creating it – with the nice secondary benefit of causing more infighting ala Wine vs native, NDISwrapper vs native, anything to do with Microsoft and Linux (Novell deal) etc.
I am in agreement with those who feel binary drivers are bad, so even if their motives truly were benevolent, I’d feel the attempt would be misguided. While the may simply be misguided, what I just laid out does seem more likely: sowing discord and binary drivers. Even if I’m wrong, I wouldn’t be the only one to think so, so I see a frosty reception ahead for anything like this.
It is interesting, no doubt. I’ll look forward to hearing more about this.
Is it just me or have anyone else started feeling lately that the patent agreement stuff perhaps isn’t about threatening Linux distributors using scare tactics after all.
The technology you describe here and the recent patent/IP agreements with both software and hardware companies could perhaps mean that… argh… I can hardly say it… that Microsoft is starting to roll their own Linux distros? *head explodes*
Please don’t say that; you’ll summon the spectre of John C. Dvorak.
Again though: why? To sow discord? Because it will, whether they mean to or not. To use it as the basis of their OS going forward? It would be their right, though I don’t see a lot of support coming from certain FLOSS camps.
*Head explodes* would be my reaction too
Here’s the same TechEd info, stripped of marketing glitz.
A new Microsoft hypervisor that implements Xen interfaces, allowing users to run XenLinux kernels on top of a Windows Viridian installation with a Windows driver stack. (They’ve been talking about this for six months or so.)
They expect their hypervisor to perform much better than Linux-on-other-MS-products (Linux on Virtual PC), which are known to be painfully slow. One benchmark shows a factor of 10 improvement. Microsoft does not compare their hypervisor to other products (Xen or VMware or Linux/KVM); such comparisons tend to make it look bad.
I was most interested in the lines-of-code comparison – Linux is up to ~5 million now? Windows is 20 million, but most of that isn’t the kernel … I do believe Linux is now a larger kernel than Windows (and has been for some time).
It wouldn’t surprise me to find the Linux Kernel much larger than the Windows one. The Linux Kernel supports MUCH more hardware out of the box. Most of the drivers are not loaded so do not take up memory/processor resources.
I would be surprised if the non-driver portion of the Linux Kernel was larger than the non-driver portion of the Windows Kernel. I believe Windows still does thunking (to support 16-bit apps) and has other legacy support.
Is it just me, or are all of these IBM educational articles extremely high-level and vague to the point of uselessness? OSAlert has been posting these for a while, and the impression I always get from them is that the particular author is not really a techinical person, but rather just a tech writer. They’re definitely not as good as Russinovich’s articles…
I rather like their articles.Expecially because they defenitely go beyond the average linux users material.
also i enjoy reading hakin9 magazine which is a welcome challenge as well.
Hakin9 looks interesting… thanks!