Microsoft put up all of the different presentations of the
2006 WinHEC conference this year. I really recommend poking through
them if you are interested in seeing what kind of hardware that will be coming
in the near future, and what areas that Linux might need to be changed in
order to support it.
It's also fun to see how the conversation is decidely one-way. Microsoft
tells companies how their drivers need to be written, and you have to suck it
up and implement it that way, no questions asked. This means that for some
reason the Microsoft kernel developers feel they know the proper kernel apis
and interfaces for your driver much better than you do. As far as
condescending attitudes go, this is a big one. Wouldn't it be better if the
development process was really a big converstation on how to implement
different features, by the people that know it the best, the people who
designed the hardware in the first place? If so, you might want to look into
the Linux process...
Anyway, here's some presentations that stood out to me for one reason or
another:
Kernel Enhancements for Windows Server Longhorn. This shows that
Longhorn (Vista) will be Microsoft's last 32 bit operating system and that
everyone better start porting their drivers over to be 64bit safe (note that
allmost every Linux driver is already 64bit safe today, due to the way the
kernel is written, and the way we write drivers. See this
article for how to do this for Linux if you have questions.
They also point out quite a few new features in Longhorn that Linux has had
for a long time (hot-add cpus, hot-add memory, MSI and MSI-X, PCI Express,
real hotplug, PCI Express hotplug, NUMA support, and sparse memory maps on
ia64 are the ones that jump out at me.) And they mention a few things that
Longhorn will not initially support, that we have supported in Linux for
quite some time (hot-remove cpu is one example.)
Innovations in Wired to Wireless USB shows a good overview of what
exactly wireless USB really is. Note that Linux already has Wireless
USB up and working, with code you can use today, even though you
can't find any shipping devices. Yet another feature that we beat everyone
else too, thanks to the hard work of some very good developers and the
support of Intel.
One funny line at the end of this presentation was
"Please send sample devices to Windows Team".
I guess they beg for hardware to test with just like we do...
That same talk goes into how to write USB drivers in userspace for a range
of driver types (which Linux has had for as long as USB has been supported),
making it safer for your driver and the kernel in general. It's nice to see
that Microsoft developers finally realize that they should not just override
HID devices in order to get access to USB devices from userspace, but all
devices benifit from this.
PCI Express in Depth for Windows Vista and Beyond Here things get
interesting. One of the big problems with PCI hotplug is that the BIOS
needs to reserve the memory ranges ahead of time for any potential PCI
device that might be plugged in at sometime in the future. Needless to say,
this wastes a large chunk of memory range, and sometimes you need more room
for new devices than you currently have availble. This presentation shows
that some time in the future, Windows is going to do reorder and readjust
the PCI resources and numbering and possibly interrupts, on the fly, while
the drivers are running, in order to solve this issue for hardware
developers who want to put huge memory ranges on their PCI Express devices.
They show the steps that a driver author is going to have to do in order to
handle this additional burden, and boy, is it going to be tough.
It will be very interesting to see if they can pull this off, and how well
it will really work out in the real world. For Linux, this has been
discussed many times in the past, and it looks like we might have a possible
solution ready to go, if it turns out that hardware is built that requires
this feature. But for now, we'll just wait and see.
There's other good things to read in there too. Stuff about USB Flash
drives, and how they have created a "secure" version to store stuff in a
protected fashon. Also lots of ACPI stuff, showing how much they are tying
themself to that standard (note that the Linux kernel developers know what a
piece of crud ACPI really is, and do our best to work around it all the time,
if Microsoft wants to bet the farm on ACPI, more power to them...) They also
show that Wireless networking is finally going to be intergrated into
the operating system in a uniform way, again, playing catch-up up with Linux
and the BSDs.
In short, if you like operating system development in the hardware / driver
area, I recommend spending some time poking around here to get a glimpse of
what is coming in the future for hardware, and feel good about how far ahead
Linux really is in so many areas in regard to the kernel portion of Windows.
posted Sat, 17 Jun 2006 in
[/diary]