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]

FreedomHEC was a lot of fun. Don wrote up a good summary of what happened, if you are interested.

Next year should be better, as hopefully more people who went to WinHEC will have enough advance notice to be able to attend (a common problem from a lot of people I talked to who really wanted to attend.)

posted Sat, 17 Jun 2006 in [/diary]


My Linux Stuff