Hacker News new | past | comments | ask | show | jobs | submit login
The Windows Driver Frameworks are on GitHub (msdn.com)
283 points by canacrypto on Mar 19, 2015 | hide | past | web | favorite | 79 comments

There are actually some strong OS voices in Microsoft. I was at Solutions Linux in France (around 2006 iirc) and there was a Microsoft booth. Since our booth had some downtime I talked to the guy manning their booth who was kind of stranded between Linux distros and FLOSS companies.

He was pretty cool and genuinely trying to advance OS within Microsoft but said it's a pretty frustrating experience overall (his descriptions of the internal processes at Microsoft were pretty interesting). Seems like they have come a long way since, I hope he's still working there. I should have his card somewhere at home :)

So as far as I know there have been developers who were pushing to open source a lot of infrastructure/language stuff for quite some time.

Edit: I think it's no coincidence we see this happening now that Ballmer is gone. He was kind of the villain in the "let's open source stuff" stories I heard.

Scott Hanselman has been talking about the process of changing Microsoft's culture toward open source on Hanselminutes since he started working there about five years (and a couple of hundred episodes) ago.

The move to open source has been in the works a long time and appears (to me at least) as part of Ballmer and Gates long term strategic plan for the era when they were no longer the largest and second largest shareholders and the company was more beholden to Wall Street.

The new post-founder (ok Ballmer wasn't technically a founder) era at Microsoft has been set up so that Microsoft can operate like a software company again. That means embracing current industry culture. Practices that made sense when software came in boxes and was sold through magazines and connecting meant squawking over POTS, needed to be looked at with an eye toward long term.

Nadella was set up by Ballmer to fall into the pit of success. The super tanker's rudder was changed years ago. The move toward open source is no more overnight than the hardware build quality of the surface.

Also, I bet having Phil Haack working at Github changed the mindset of a lot of people, either way, even from the days from Novel and Mono, Microsoft was always cool with opensource.

I must say, I'm very impressed with all of the open source moves that MS has done lately. I wonder if that will drive more adoption of C# and cause Oracle to open up Java. I'm not a fan of C# because it's basically only used on windows systems, despite xamarin and et al.

I like both eco-systems a lot, however Java is currently more open than .NET, specially if you look around for available certified JVMs.

In this particular case, i'd prefer Windows above Oracle (Java) anytime, considering they deliver malware with their Java Setup...

Edit: Some people give a link to an alterantive download without malware... You know 99% of all Java downloads don't know that, do you?

There isn't any malware when downloading from


Or when packaging the Java application with the runtime


Or using one of the commercial JVMs that compile Java to native code

Or just bothering to read the dialog when installing it from Java.com.

While it is true the bundling shouldn't exist in the first place, any knowledgeable Java developer knows how to get applications deployed without it being an issue.

Actually my biggest problem with Java is Google dragging its feets and making the Android fragmentation a return of the J2ME headaches. Sun and Oracle were right all along.

My son gets the Ask crapware whenever he updates Java to play MineCraft on his computer. He's a child, not a Java Developer. He just wants to play MineCraft and Java is in his way and the Crapware loads by opt out.

There is a new installer available for windows version of Minecraft which has a private version of JRE and does not require standard system-wide version of Java installed.


Minecraft for Windows Download and run Minecraft.msi. This will install Minecraft and create a shortcut in your start menu. If you'd like a version without an installer, you may use Minecraft.exe instead. You do not need Java installed to run either of these.

You might see it differently, but I never let kids update software on their own.

If you are always holding their hands, they are going to be unknowing when they grow up.

Let them see for themselves why they shouldn't install the Java runtime and explain to them why it's bad.

My parents were very strict about me not using knives when I was growing up, and it took me 30 years to finally get mostly comfortable with using knives in the kitchen. Yes, I've never cut myself with a knife, but I also rarely cook as a result.

Sure, and that's a good idea. But I believe OP's point was the inclusion of the [crap|mal]ware in the first place, not what a reasonable response to it is.

That makes you a good parent. As would the converse.

Apparently, you can turn the crapware offer off.


My concern here isn't for myself. I tend to know how to avoid the malware. My concern is how they are treating the average downloader.

You can download installers without the malware from their technetwork: http://www.oracle.com/technetwork/java/javase/downloads/inde...

i just don't install programs that include malware. i can do without it. in all cases, i can get around it. i don't care enough to.

i use 0 programs made in java on my desktop/laptop. it makes sense on a server, it doesn't belong on the desktop, the malware is just another reason.

You're kidding, right? Where is the source code for java compiler and jvm stuff? Can you send a pull request? Can you see the commits? Can you see design meetings about the language? Java is not more open than .NET in any way.

> Where is the source code for java compiler and jvm stuff?

Here: http://hg.openjdk.java.net/

> Can you send a pull request?

You'd do that on the mailing list, until you become a contributer with direct access to the repo,http://openjdk.java.net/contribute/

> Can you see the commits?

Yes, in the above mentioned mercurial repos.

> Can you see design meetings about the language?

Java has developed in a somewhat collaborate/committee fashion which has been open to the public since before the JVM itself was open sourced. It is probably quite hard for random individuals to contribute directly to that, but yes - you can see what's going on it the JCP process, https://jcp.org/en/jsr/overview

Serious question -- is this not the source code page for the JVM? https://jdk8.java.net/java-se-8-ri/

Yeah, especially since you need to pay a regular fee to use Xamarin, and it's not libre software either.

If a free Xamarin came out I'd jump on the C# boat in a heartbeat, which I guess is what MS is trying to do with all this open sourcing (free software-ifying?).

> Yeah, especially since you need to pay a regular fee to use Xamarin

You can use Monodevelop[1] which is 100% FOSS. AFAIK Xamarin is just Monodevelop with some extra wrappers and custom libraries for cross-platform mobile-development. Feel free to correct me if I'm wrong.

If you're just making normal applications, libraries or web-solutions you don't need Xamarin.

[1] http://www.monodevelop.com/

I have used Xamarin Studio a lot in the past for free. It's the mobile stuff that costs extra. Now I lean a bit more toward Visual Studio as it is free for my purposes.

From my experience C# was pretty much following Scala down the functional road, and the syntax was quite similar. Maybe you should check out Scala.

Edit: I say "was" because I used to develop C# and had experience porting C# apps to Scala (so that we could run it on linux, lol).

Since most of the income of Oracle comes from Enterprise software, I doubt they will do what MS does in the near future.

What effect will this have on the ability to boost driver support in Linux, if any? FreeBSD has ndisgen [1], but would this help improve that or a broader set of driver use in Linux?

Secondly, what about WINE?

[1]: https://www.freebsd.org/cgi/man.cgi?query=ndisgen

It means nothing. WDF is a high-level framework for drivers on top of Windows NT – basically a convenience library you link with. While using WDF, you can freely call regular NT functions too.

It's like MFC to Win32.

Thanks for the information. I'm not at all involved in driver work so I have no clue. :)

Linux has ndiswrapper

I wasn't trying to imply it didn't have an equivalent ndis tool, I just used FreeBSD as the example as that's my experience. I was more wondering if this would've helped advance these (and similar) offerings.

This is slightly off topic. However maybe someone on this thread can point me in the right direction. Can anyone recommend some good resources to get started writing low-level drivers for windows (books or open source examples)? I work mostly with embedded software on custom project. From time to time I need to interface with Windows machines and the information of this topic has always been limited.

I too have been finding it hard to find a single reliable and up-to-date source for learning windows drivers. There's a plethora of info online, but lots is out of date and/or scattered and redundant. Even decent paid training is hard to find, at least in my part of the world.

There's a book, but it's old [1]

There's samples, which are fresh [2]

There's a multi part series on Code Project, but it's old (yet much of it still applies conceptually; samples not so much) Part 1 of 6: [3]

If anybody has a good one-stop-shop and updated source of learning I'd very much appreciate it (I'd love a nicely written book on the matter that's not older than, say, 3 years old)

[1]: http://www.amazon.com/Developing-Drivers-Foundation-Develope... [2]: https://github.com/Microsoft/Windows-driver-samples [3]: http://www.codeproject.com/Articles/9504/Driver-Development-...

One barrier to developing drivers for Windows is the driver signing policy https://msdn.microsoft.com/en-us/library/windows/hardware/ff... which requires you to pay for a software publisher certificate.

I can live with this. Buggy software drivers wreak havoc and security vulnerabilities. I routinely use expensive industrial equipment without signed drivers, and the problem seems to be a warning from the installer.

This seems to be the case indeed. The couple of times Windows BSOD'd on me was always because of faulty drivers and more often than not the unsigned ones.

IIRC the only BSOD I got on XP on my thinkpad since 2006 was caused by not even driver bug, but by driver that seems to have intentionally caused BSOD.

Win10 even changed the requirements actually: https://www.osr.com/blog/2015/03/18/microsoft-signatures-req...

Personally, I think that signing all drivers off a single root makes sense, but I am concerned about the EV requirement. EricLaw mentioned before that they don't sell them to individuals, for example.

Is it any different than the Apple iOS developer license?

Yes. The certificates Microsoft requires use the standard CA system, and are pretty much bog-standard code signing certificates, so the key you need can also be used to sign other windows apps you make, java apps, mozilla add-ons, etc.

I used my Authenticode cert for this, it wasn't very expensive.

How much out of interest? I see prices of 180 USD a year on Google search. It's not expensive but for say an open source project which might not be bringing in income it's an annoying cost.

http://codesigning.ksoftware.net/ from $73 to $95 per year

You also have to pay for each signature ($100 I think, not really sure). And the certification process is anything but easy (though it depends on the type of the driver).

I didn't, the signing was trivial, this is for a printer driver.

What's the barrier for that? You can develop drivers without signing the drivers and obtain them in the deployment phase.

The open-sourcing is a sign that MSFT is in a tricky spot (BYOD, mobile, tablet, games) and desperately needs to improve relations with the outside world. Expect we'll also see MSFT using more open source in products to compete effectively though I wonder what'd happen with internal best practices that the outside world doesn't have, e.g. SAL. Will they contribute back? Let's see.

Inside MSFT there used to be minimal credit for releasing source which was a strong inhibitor in the employee review process. And a gratuitously awkward internal process for open sourcing code with no path for accepting changes/contributions. Attitudes are definitely improving.

The major benefit of this particular move will be when you're working on Windows drivers - now you can see and completely grok what a piece of code does until it transitions into the kernel proper.

I think we should stop speculating each OSS effort from Microsoft as a sign of weakness and/or desperation. They might eventually conclude that open-sourcing things makes them seem like losers, rather than strengthening developer relations, which is what they're really going for (among other things, I'm certain).

It's also a sign that Microsoft sees its future in services.

Which in that case means that protecting the former "company jewels" of Windows and Office ceases to be less important.

I don't think it's about Windows and Office becoming less important as concepts or products, but that their old sales channel and use cases are outmoded. Windows and Office will still be Microsoft's cash cows; they'll just collect the fees through Azure, OneDrive, and other software-as-a-service packages. Open-sourcing is about keeping Microsoft's platforms competitive so that people will rent Azure nodes.

Microsoft realized they were becoming to FOSS as OS X is to Windows and is trying to counteract that. Microsoft's vision is still valid; they want Microsoft technology running every computer in the world.

Indeed it's clear that Office is very important, they are just unifying products and services. Now you have a unified subscription of $ 9.99 per month for Office 365 + Office Desktop Apps.

Didn't recognise SAL - assuming it is source annotation language:


It looks like this can be used:


"we understand there’s no substitute for having OS source available" Ho ho ho.

Will it help making drivers for filesystems which MS doesn't care to support?

Probably not. The filesystem API Microsoft uses, Installable File System, has been in place and used by a bunch of people since the OS/2 days. Support for filesystems like zfs is lacking more due to apathy than anything else.

The IFS kit was a separate purchase from the DDK, even. There's a pieced-together header floating around on the web (as well as some OSS drivers for things like ext2)...

Drivers aren't much of a threat to the Windows hegemony because since Vista they've needed to be signed. If you don't mind taking the risk of running with driver signature verification turned off you can get FSDs for XFS and Ext4.

Last time I checked, code signing certificates could be had for $400 a year, not an exorbitant price to many tech enthusiasts.

However, being able to support the driver so it passes the certification process with every update is not something many tech enthusiasts would want to do.

Certification is only required if you want to display a "Certified for Windows" logo, prevent a warning dialog from displaying on Windows XP, and/or distribute your driver through Windows Update.

The warning dialogue is displayed on all versions of Windows, depending on the driver. Some can't be installed at all.

I don't see a patent grant...

Whiny ass comments so far. Bravo Microsoft!

"First they ignore you, then they laugh at you, then they fight you, then you win." -Gandhi

why this quote got down voted? it's exactly how Opensource progresses.

1.Because MSFT doing good job 2. Gandhi was sick person, you can search about it , He was afraid of money/tea and so many things.Those good thing we hear about Gandhi I think most of them are propaganda.

1. Sure, Microsoft is doing the right thing after exhausting every other possibility. Closed source didn't work, FUD against open source didn't work (http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt#Mic...), now they need to stop people from leaving their platform and tools in any way possible.

2. Ad hominem. The behavior of an individual doesn't change the truth of what they say.

the behaviour of an individual does affect his creditability though.

I hope Microsoft knows this, but Open Source doesn't imply putting your source on GitHub (and vise-versa). If Microsoft dev teams served source tarballs along with their releases, we'd be just as happy. But perhaps they will actually use the GitHub issue trackers and other neat features, as they are pretty useful.

Uh, publishing your source under a usable license is sorta really the definition of open source. Whether or not you like their dev style or other things is separate and trying to make new definitions. You shouldn't just throw caps on a common description then claim no one is that common thing because you've redefined it.

Uh, they have moved their entire development workflow to GitHub pull requests. Fully transparent and out in the open.

Work has commenced on getting CoreCLR (the official.NET run-time) ported and running on BSD and the following PR's were merged yesterday which add initial support for NetBSD and OpenBSD:

https://github.com/dotnet/coreclr/pull/453 https://github.com/dotnet/coreclr/pull/470

The "port team" is organzing work via the following issue:


We are looking for more people to help out, if this is of interest then please goto above and say Hello ;-)

They have been accepting community contributions on dotnet/coreclr, among other projects:


This is just one of many steps. For instance if you take a look at the following merge someone actually comments regarding what you're talking about: https://github.com/dotnet/coreclr/pull/485

Basically many teams are still on TFS versus GIT and will take some time to move over. But once they're moved over GitHub and their internal stuff will be treated more like separate branches and there will be good, useful history instead of simple bombs from TFS.


Let me see if I have this straight:

- Keeps source closed. Is therefore evil.

- Opens source. Must be up to no good, because is evil.

This might qualify for the original meaning of, begging the question...

They're considered evil not because they kept source closed, but because they actively abused their monopoly to illegally malign their competition. That's what the problem with EEE is.

They're open-sourcing stuff (which will in theory make it harder for them to do it in the future), but that doesn't mean they've repented and have good intentions. They're open-sourcing their software purely out of self-interest, and people are wondering what exactly this self-interest is, and are being quite reasonably cautious.

Considering the company pretty much defined EEE as we know it and is known for lying about competition, I don't think being cautious is a bad thing. I'm happy they're releasing things and trying to be more open, but... let's see where it goes before we start celebrating.

Well, they will need to do a bit more than that to change the prevailing perception that they are up to no good (see http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish and http://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_c...)

And you rightly ask: how much time needs to pass by to forget about all that, and judge MS by its current behaviour? The answer is very subjective, but for me it is something like "a bazillion years".

If by "judge MS by its Current behaviour" you mean the strong ties A.K.A. Strategic partnership with the Government/NSA then I'm afraid the answer is...never.



Whatever MS does in the future doesn't erase all the shit they did to get where they are today. They were basically behaving like mobsters around the planet,no more no less with the blessing of the US government, and still are.A few opensource libraries here and there won't change that fact.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact