Slashdot Mirror


Open Source Code Finds Way into Microsoft Release

linumax tells us eWeek is reporting that Microsoft, for the first time, has included open source code in the release of one of their products. The Complete Cluster Edition of Windows Server 2003 will be including the Message Passing Interface (MPI) library. From the article: "MPI is key middleware that was designed by a consortia of all the supercomputing vendors in the 1990s to allow the easy portability of code. It abstracts away things like low-latency interconnect, and our focus is making it super easy for ISVs to move their code."

23 of 433 comments (clear)

  1. strings ftp.exe by cuerty · · Score: 5, Informative

    What about doing a: $ strings ftp.exe BSD Licensed software it's open source.

    --
    >Linux is not user-friendly.
    It _is_ user-friendly. It is not ignorant-friendly and idiot-friendly.
    1. Re:strings ftp.exe by LurkerXXX · · Score: 2, Informative

      No. It was circa NT 3.x and maybe 4.0 if I recall. They have since re-written it.

    2. Re:strings ftp.exe by nmb3000 · · Score: 1, Informative
      Not sure the exact significance, but this is with the file FTP.EXE included with Windows XP in C:\Windows\System32:

      [root@aptiva:~]# strings ftp.exe | grep Copyright
      @(#) Copyright (c) 1983 The Regents of the University of California.

      So... whatever that means :)
      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    3. Re:strings ftp.exe by Quila467 · · Score: 3, Informative

      I was curious, so I had to try it. ftp.exe from Windows XP Home SP2 contains no reference to BSD other than this string: Copyright (c) 1983 The Regents of the University of California. Sounds like BSD to me.

    4. Re:strings ftp.exe by Krach42 · · Score: 3, Informative

      Microsoft already has released a product with GPL software in fact.

      If you install Services for Unix 3.5 (available free from Microsoft) then it comes with "gcc".

      --

      I am unamerican, and proud of it!
    5. Re:strings ftp.exe by man_of_mr_e · · Score: 1, Informative

      You might want to look again, especially at the copyright dates. Then compare them to the first open source release of BSD (Networking Release 1, 1989).

      You'll note that the copyrights pre-date the NR1 (which had all the copyrights updated on it), by at least 6 years, which means the code is older than the first open source release, which likely means that the code was licensed from Berkeley directly under a non-open source license.

  2. uh? by diegocgteleline.es · · Score: 5, Informative

    Windows has included open source code for a long time. And not just C:\windows\system32\ftp.exe (run strings to that file), why is then that several microsoft products haven been affected by zlib vulnerabilities, uh? Just read the fu***** license, it's all there.

    1. Re:uh? by moosesocks · · Score: 3, Informative
      zlib isn't open source in the traditional sense.

      zlib is simply released with no strings attached whatsoever. only catch is that the author's not responsible for anything that happens with it.

      most people equate OSS with the GPL or a BSD-style license. zlib is released more or less without any license at all. It's a few lines that make it VERY VERY CLEAR that the authors don't care what the hell you do with it as long as they're not implicated

          This software is provided 'as-is', without any express or implied
          warranty. In no event will the authors be held liable for any damages
          arising from the use of this software.
      Permission is granted to anyone to use this software for any purpose,
        including commercial applications, and to alter it and redistribute it
        freely, subject to the following restrictions:
       
        1. The origin of this software must not be misrepresented; you must not
          claim that you wrote the original software. If you use this software
          in a product, an acknowledgment in the product documentation would be
          appreciated but is not required.
        2. Altered source versions must be plainly marked as such, and must not be
          misrepresented as being the original software.
        3. This notice may not be removed or altered from any source distribution.
      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    2. Re:uh? by jellomizer · · Score: 3, Informative

      Well it is still open source. It is just has less restrictions then other licenses. Just because it doesn't give some odd political statement it doesn't make it any less Open Source.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    3. Re:uh? by Bogtha · · Score: 4, Informative

      zlib isn't open source in the traditional sense.

      zlib is simply released with no strings attached whatsoever. only catch is that the author's not responsible for anything that happens with it.

      Er, that is "open source in the traditional sense".

      zlib is released more or less without any license at all.

      That's obviously not true. Licenses aren't ethereal things that can sort-of-but-not-really exist. They are either there or they aren't. zlib certainly has a license, and you must abide by it if you want permission to copy it.

      It's a few lines that make it VERY VERY CLEAR that the authors don't care what the hell you do with it as long as they're not implicated

      In other words, it's fundamentally the same as the BSD license. For example, FreeBSD:

      For the simply curious, the license can be summarized like this.

      • Do not claim that you wrote this.
      • Do not sue us if it breaks.

      The idea that somehow the "right" or "traditional" form of open-source is the GPL is a myth propogated by some misinformed Slashdotters and bears no resemblance to the truth.

      --
      Bogtha Bogtha Bogtha
  3. Nope, not the first time by hoovs · · Score: 2, Informative

    Ralph Giles of Xiph.org did an interview, where if I remember correctly he said that Microsoft, or rather Bungie, which Microsoft owns, used Ogg in Halo 2 and Speex in Xbox Live.

  4. Re:Question by hoka · · Score: 2, Informative

    I've done only initial programming in MPI for a distributed systems course I took, so keep that in mind. What I think MPI is big for is how popular it is. MPI is a very open standard, has been adopted for a long time, and is used in quite a few research projects because some implementations are heavily optimized. Some of the bonuses of MPI include the ability to make groupings and do group-messages (with all sorts of abilities to combine/redirect group messages), blocking/nonblocking sending receiving (standard really), and its pretty easy to program in. It took me about two days to get a good feel for it and start designing some built-in features the hard way for the assignment, and it worked very well.

    You should also note that Wikipedia calls it the "de facto standard", which I agree with (at least from a research pov).

  5. Re:Wait a minute by _Sprocket_ · · Score: 4, Informative

    Yep. GPL. A cancer. A looming danger to any commercial enterprise who even uses it. Anything the GPL touches get's absorbed. Yet Microsoft's own Services for Unix has used GPLed software for years. And they've maintained their proprietary licensing and intellectual property. Huh. Odd, that.

  6. Re:Open Invitation by Anonymous Coward · · Score: 1, Informative
    who knows how much "open source code" has "found its way" into MS releases

    Posting as AC to protect the guilty.

    Several times I have found GPL licensed code in the proprietary system I am paid to work on. I pointed it out to management (who did understand the issue) and suggested BSD licensed alternatives.

    So I am sure it happens all over the place, but more often because the person who puts the code there doesn't understand the GPL.

    One junior programmer told me that this part of the GPL...

    2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    ...means that you can use GPL code for anything at all as long as you don't change it. Don't ask me why. That's just what he thinks.

  7. Re:TCP/IP stack by joebutton · · Score: 5, Informative

    > I believe they obtained a special license to use
    > it how they wish. So it's not an example of
    > stealing code under the BSD license.

    The special license *is* the BSD license. It pretty much says you're allowed to do what you want with the code, including putting it in your evil and bloated OS.

  8. Re:what implementation by oudzeeman · · Score: 4, Informative

    OK, I read TFA and they are using an open source implementation of MPI2 (MPICH2). Maybe the summary should have mentioned that... but I guess unless you're a cluster guy like me it doesn't really matter which MPI they used.

  9. Re:RTFA by Anonymous Coward · · Score: 2, Informative

    Huh? The BSD license makes no demands other than posting a copyright notice. Thats why we have BSD vs GPL license flamewars all the time.

  10. Re:Question by CouchP · · Score: 2, Informative

    TIBCO, according to my readings of "Enterprise Integration Patterns" (Hohpe-Woolf) is more akin to BizTalk and at a much higher level.

  11. Re:Wait a minute by d_jedi · · Score: 2, Informative

    No, if you look closely, most of Microsoft's comments were directed at the GPL in particular (esp. the more colourful comments about it being a cancer, and communist - actually, I think that last one was courtesy of our friend Darl).

    The problem with the GPL is that if you use even a few lines of GPL code, you have to release the whole thing under the GPL.. which pretty much kills any commercial work (ie. for profit) on these projects (which some will argue is a good thing).

    MPI is licensed BSD, so anyone can use it for anything pretty much.. including inside a closed source program. IMHO, it's much more free (as in freedom) as you don't have the obligation, as you do with the GPL, to release your source code modifications.

    --
    I am the maverick of Slashdot
  12. Re:Question by brsmith4 · · Score: 4, Informative

    I've done quite a bit of MPI programming using the MPICH and MPICH2 implementations. MPI itself is nothing more than a specification that addresses issues with sharing memory between processors, whether they are in the same 'box' or connected through some fabric like Ethernet or some of the high-speed interconnects.

    The specification is focused mainly on the syntax of the API to make Fortran, C, C++, and Java (?Not sure if Java is actually part of the spec yet) codes compile and operate smoothly across different MPI implementations like MPICH or LAM, to name a couple (I've never run into an MPI implementation, personally, that has screwed with the standard. All my codes have always compiled and functioned cleanly across multiple implementations (after extensive debugging, of course ;-) ).

    MPICH and MPICH2 provide many different "drivers" to allow its use over 100Mb/GigE ethernet (ch_p4), Myrinet (provided by Myricom, ch_gm), Infiniband, ccNUMA or NUMA-like systems (ch_shmem, or lock-free ch_shmemlf), and drivers for globus systems.

    With interconnect fabrics like ethernet and low-latency Myrinet and IB, Message passing typically involves passing actual data between hosts across this fabric and the ch_p4, ch_gm drivers handle this transparently (this part of the setup, selecting the driver, is a function of your Administrator and not the developer). On large memory SMPs, MPI may pass addresses or references rather than the actual data, taking advantage of the fact that the hardware is designed to allow any single CPU to address any region of memory rather than flooding the memory bus with unnecessary transactions.

    Take parallel video rendering for example, where we might be simply gzipping each frame... on a cluster-style interconnect, each host must have a copy of the frame it is operating on so it must be passed along the interconnect to the host before work is done (or it can be read by each host from the original file, if that file is shared across the cluster or copied to each node. This becomes very I/O bound and suffers from the slowness of hard disks). On an SMP, a pointer to the beginning of that array may be passed to the thread or process trying to do the work, while the segment of that video is stored in RAM.

    Being able to share memory in such a way allows fine-grained calculations like very-large-matrix operations over slower interconnects AND SMPs (though your performance on the slower interconnects will suffer because of the bandwidth or latencies induced by the interconnect).

    As well, MPICH at least, provides excellent support for debugging parallel applications through the mpirun_dbg.* commands. It uses your favorite debuggers whether they be gdb, ddd, dbx, or totalview.

    MPI in a nut shell, provides for the easy creation of multiple process threads and facilitates the sharing of data between each thread to enable parallel processing regardless of how your CPUs and memory are connected. Don't know anything about TIBCO though, nor have I ever heard of it... Sorry if this was too much or too little info. I'm not really aware of the average /.er's experience with such things.

  13. Re:Open Invitation by AstroDrabb · · Score: 2, Informative

    Some students get access to a _small_ part of the Windows OS source code at some schools. The amount of code they get to see under the "shared" source stuff is very small. Governments (even the US govt.) don't even get access to 100% of the MS OS source code through the "shared" source initiative. MS is proprietary and they don't give up their code not matter what the MS-Marketing-Machine tries to say. End of story.

    --
    If Tyranny and Oppression come to this land,
    it will be in the guise of fighting a foreign enemy. -James Madison
  14. MPICH2? What interests me... by jd · · Score: 3, Informative
    ...is WHY they would choose the version of MPI that is regarded as a great reference edition but not that good for serious work. MPICH2 does not support shared libraries under Microsoft's C compiler or under Windows (MPICH2's docs) or external data representations. Their version of ROMIO also hangs when using MPI threads.


    (Also, MPICH sucks when used with multiple devices - you have to compile it with the device(s) you're using, and can only configure it for one device type at a time. So if you're planning on using a mix of Infiniband, Globus and Ethernet, forget it. It won't work.)


    Probably the best MPI library out there is Open MPI, which supports the MPI2 standard, supports MPI threads and progress threads, is much more optimizable for different platforms and was developed by groups ranging from Los Alamos Laboratories (yes, the nuke place) and the LAM/MPI development team.


    Ok, you have a choice between two implementations. One is slow, has a poor release cycle and has been forked numerous times (MPICH, MPICH2, MP-MPICH, Globus MPICH, GAMMA MPICH and MVICH are all forks off the same code-base). The other is partially written in assembler, is developed by a broad consortium of MPI experts and is unlikely to fork as the maintainers are really good about integrating new code. Which would you pick?


    I am also concerned about Microsoft's history of "Embrace and Extend' - are they planning on breaking the MPI-2 specifications for their own purposes? I can't see any value in them doing so, but I don't see any value in 'Embrace and Extend' anyway.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  15. Re:Not the First, but a first. by Anonymous Coward · · Score: 1, Informative

    No, they can't use it legally without giving proper credit and claim it's their code.