Reading posts on recent M$'s FUD sent to a Peruvian congressman and subsequent reply as well as a number of articles related to M$'s copyright infringement as to the use of proprietary code in M$'s SoftImage 3D program (follow this link to learn more), I was wondering just how much GPL code may be found in M$'s OS and other software products? I have already come across a number of newsgroup/forum posts abundant with rumors that M$ is indeed secretly using GPL’ed code, even against it’s own ‘anti-piracy’ laws! ;)

Certainly seeing how Windows breaks 10 times on a given day, it is hard to believe that there's any GPL code that is being used internally; otherwise, I guess we'd expect a more reliable performance, eh?

On the other hand, the fact that M$ was able to cover up it's use of other company's proprietary software only adds to the growing doubts in my mind and that of many other followers of the 'free software' movement as to whether M$ is entirely 'pure' and free of any code belonging to the public domain. Imagine the implications of finding snippets of such code in M$’s proprietary software? I believe any piece of such software could be subject to expropriation (that is handed over or licensed back to the public domain).

However, how can one ever find out the underlying truth? Can we as a community of dedicated Perl monks device a method in Perl to compare common GPL code snippets with that of popular M$ products? I believe Perl could be used to compare 'binary signatures' of respective codes. Say, would it might be possible to take byte codes (compiled source) of common (popular) GPL programs and compare them to that of M$ libraries (*.dll files, for example)? Finally, do you believe that with all of it’s text processing features, Perl is fit to crack this puzzle? If yes, then, what would your approach be? I suspect one would have to write a full blown disassembler of some sort in Perl as the initial step in solving this puzzle, eh?

Setting all complicating pieces of the puzzle aside, just imagine what it would be like and feel to discover GPL code in an M$ product. Especially if one of the monastery dwellers is able to pull this trick off in Perl! ;)).

UPDATE:
I should apologize to anyone who found this post offensive in any way. Also, I acknowledge that the 'excessive' use of 'M$' is somewhat inappropriate. I realize and agree with comments in this thread to this affect. Please, accept my sincere apology. I'll attempt to exercise greater diligence to these matters in future posts. Sincerely, vladb. ;/

"There is no system but GNU, and Linux is one of its kernels." -- Confession of Faith
  • Comment on using Perl to look for GPL code in M$ OS binary/source?

Replies are listed 'Best First'.
Re: using Perl to look for GPL code in M$ OS binary/source?
by Beatnik (Parson) on May 09, 2002 at 14:40 UTC
    This being totally off-topic but here goes

    First off, you assume that all GPL code is stable. The license doesn't make code stable, programmers do. I know open source initiatives which still lack the stability you claim it should have. I also know closed source applications that haven't crashed in ages.

    Second of all... Compilers tend to optimize code, play with it til it fits. Every compiler has different strategies of handling code. Also consider that machine code on UN*X looks different from that on Win32. GCC on Win32 geenrates different opcode than it's equivalent on any UN*X box or than Visual C, or any other compiler for that matter. Specific calls can be detected but not the amount of code you're refering to (unless Microsoft is stupid enough to leave the vendor details still in the code they're presumably ripping. The DoubleSpace - Stacker incident is one fine example of that). Let's also not forget the executable encryption/compression tools a la PKLite.

    Last, if you are going to generate source signatures of every GPL (or open source) project and compare them to every product Microsoft releases/released, it'll take some time. You'll end up with more false positives than there are monks in this monastery :) Virus signature databases are already quite large and they scan for specific parts, not code that changes from compiler to compiler.

    Just my 2 Eurocents

    Greetz
    Beatnik
    ... Quidquid perl dictum sit, altum viditur.

      Getting even further off-topic: virus scanners don't have to worry about differences between compilers, as the assumption is that the (inadvertant) coppies are being created of the compiled binary, and not by modifying and recompiling the source.


      We are using here a powerful strategy of synthesis: wishful thinking. -- The Wizard Book

Re: using Perl to look for GPL code in M$ OS binary/source?
by cjf (Parson) on May 09, 2002 at 15:07 UTC

    Beatnik already pointed out several problems with your approach, but since we're on the topic of GPL violations...

    Have you ever used a GPL'd module in your code and not released the code in a GPL-compatible way? As I pointed out in Re: Re: GNU GPL & Commercial Scripts, this is a violation of the GPL. Just something to consider.

    Also, referring to Microsoft as M$ does not help your argument.

      The emphasis should be more on released applications rather than commercial status -- my understanding has always been that if you are not providing the application to the public (for profit or otherwise) then there is no violation. After all, if you can't get your hands on the application, why should you expect access to the code?

      Put another way -- there is no violation pre-release. If you never release, there is never a violation. If you never release beyond in-house, there is still no violation. Profit is irrelevant to that dynamic.

      Matt

Re: using Perl to look for GPL code in M$ OS binary/source?
by perrin (Chancellor) on May 09, 2002 at 15:44 UTC
    Frankly, I don't care if they are using GPL code. If they are, I hope it improves their software. All this garbage about copyrights and licenses is for the benefit of corporations, not people. Share and enjoy.
(OT) I find your use of 'M$' to be offensive and provocative. Please stop.
by demerphq (Chancellor) on May 10, 2002 at 10:13 UTC
    With all due to respect to you but I wish you would grow up. Theres no need to repeat "M$" a zillion times in your post, nor is there to repeat such garbage as

    seeing how Windows breaks 10 times on a given day

    Considering that I've seen similar with some *nix installations, and also that most likely the version that you saw do this is ancient and not advised for the use of a serious computer user I see no reason why you need to harp on about it. (My W2k box has only crashed twice in a year, and that was due to me installing an old device driver)

    This site is about Perl. And Perl runs on just about every OS, from Amiga to VMS. So try and respect that there will be users here (like myself) who find your (and others) overzealous attacks on Microsoft as distasteful and innappropriate.

    BTW Im afraid to say that while you may have an interesting point your total lack of respect has made me completely ignore whatever message you may have intended to transmit. And I suspect that I will not be alone.

    As a last thought yes I do believe that Microsoft has been responsible for a number of negative things and that they are a threat to some of my beliefs and to our community to a certain degree, and that they most likely deserve to be punished. I also think that if *nix actually did what the common business user wanted it to do, as well as Microsoft does then Microsoft would be in a whole lot more trouble in the markets than it is in the courts.

    But I do think that this is not the forum for such debates, especially if the participants (like yourself) cannot be mature enough to be respectful of other users and opinions and to refrain from being offensive.

    Update 2
    Originally this node contained a paragraph that was not in the spirit of the Monastery or indeed in the spirit of this very post. This paragraph was as unnaceptable and innapropriate as your use of M$ everywhere. I have not removed this paragraph entirely but rather banished it to the pages sources code, primarily as I dont believe in rewriting history. Please accept my apology for going too far.
    Thank you to mirod for pointing this out.
    End Update

    Update 3
    I wanted to state that I am completely happy with vladbs apology regarding this matter. We are all perlmonks here, irrespective of OS and we should all be able to overlook our particular beefs with each others OS's. Im glad that in this case we have.
    Peace vladb :-)
    Oh and for any of you who are disappointed about the US DoJ's pursuit of Microsoft you may find that the EU ends up doing the job properly instead. ;-)
    End Update

    Oh and I'm willing to accept the the -- that this node will get if its going to bring an end to this needless MS bashing at every opportunity.

    Yves / DeMerphq
    ---
    Windows isn't the only OS that crashes...