Settings

Theme

The Windows Driver Frameworks are on GitHub

blogs.msdn.com

283 points by canacrypto 11 years ago · 86 comments

Reader

kriro 11 years ago

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.

  • brudgers 11 years ago

    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.

    • igorgue 11 years ago

      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.

aceperry 11 years ago

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.

  • pjmlp 11 years ago

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

    • NicoJuicy 11 years ago

      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?

      • pjmlp 11 years ago

        There isn't any malware when downloading from

        http://www.oracle.com/technetwork/java/javase/downloads/inde...

        Or when packaging the Java application with the runtime

        http://docs.oracle.com/javase/8/docs/technotes/tools/windows...

        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.

        • brudgers 11 years ago

          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.

          • chokolad 11 years ago

            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.

            https://minecraft.net/download

            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.

          • pjmlp 11 years ago

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

            • NicoJuicy 11 years ago

              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.

            • keenman 11 years ago

              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.

            • danielbarla 11 years ago

              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.

            • brudgers 11 years ago

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

          • Mindless2112 11 years ago

            Apparently, you can turn the crapware offer off.

            https://www.java.com/en/download/faq/disable_offers.xml

        • Lawtonfogle 11 years ago

          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.

      • khoffrath 11 years ago

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

      • throwawayaway 11 years ago

        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.

    • luisrudge 11 years ago

      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.

      • noselasd 11 years ago

        > 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

      • hughw 11 years ago

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

  • pikachu_is_cool 11 years ago

    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?).

    • josteink 11 years ago

      > 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/

    • Rapzid 11 years ago

      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.

  • chrismarlow9 11 years ago

    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).

  • btzll 11 years ago

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

NamTaf 11 years ago

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

  • ikonst 11 years ago

    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.

    • NamTaf 11 years ago

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

  • auxym 11 years ago

    Linux has ndiswrapper

    • NamTaf 11 years ago

      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.

maguirre 11 years ago

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.

ximeng 11 years ago

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.

  • frozenport 11 years ago

    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.

    • stinos 11 years ago

      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.

      • dfox 11 years ago

        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.

  • yuhong 11 years ago

    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.

  • geon 11 years ago

    Is it any different than the Apple iOS developer license?

    • Sanddancer 11 years ago

      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.

  • tonyedgecombe 11 years ago

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

  • wslh 11 years ago

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

MrZipf 11 years ago

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.

  • anon4 11 years ago

    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).

  • threeseed 11 years ago

    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.

    • cookiecaper 11 years ago

      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.

      • wslh 11 years ago

        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.

  • ximeng 11 years ago

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

    https://www.cs.cmu.edu/~fp/courses/15122-f10/lectures/25-sal...

    It looks like this can be used:

    https://msdn.microsoft.com/en-us/library/ms182032(v=vs.110)....

baxter001 11 years ago

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

shmerl 11 years ago

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

  • Sanddancer 11 years ago

    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.

    • andreiw 11 years ago

      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)...

  • whoopdedo 11 years ago

    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.

    • ikonst 11 years ago

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

      • rplnt 11 years ago

        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.

        • cypher543 11 years ago

          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.

          • rplnt 11 years ago

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

monocasa 11 years ago

I don't see a patent grant...

elchief 11 years ago

Whiny ass comments so far. Bravo Microsoft!

throwawaymsft 11 years ago

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

  • crazychrome 11 years ago

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

    • 0xFFC 11 years ago

      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.

vortico 11 years ago

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.

  • MichaelGG 11 years ago

    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.

  • ghuntley 11 years ago

    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:

    https://github.com/dotnet/coreclr/issues/455#issuecomment-82...

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

  • bhuga 11 years ago

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

    https://github.com/dotnet/coreclr/pulls

  • BinaryIdiot 11 years ago

    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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection