3 ms·
Whoa. That is actually pretty cool. I didn't realize that Microsoft would open-source such a core piece of technology.
by quanticle 15y ago
Whoa. That is actually pretty cool. I didn't realize that Microsoft would open-source such a core piece of technology.
- bunderbunder 15y agoDepending on how you want to define "open source", they've been doing it for a long time. They often make the source available to look at, but don't permit the creation of derivative works. That said, one of my the nicer things about developing in .NET is that the library source is so accessible. I can easily step into library code from the debugger if I need to. If I haven't already downloaded the source code for that component then the IDE will automatically grab it for me before stepping in. So for my purposes (just wanting to figure out WTF is happening under the hood), the source code generally feels much more accessible on Microsoft's platform than it does on more orthodox open source ones.
- quanticle 15y agoThat depends on the library, of course. Yes, if the library is open source or shared source, you can step into it with no trouble. But if you're using a closed source library (a phenomenon that's far more common in the Windows world than in the Linux world), you're eventually going to run into problems where the library returns an unexpected value and you just don't know why.
- bunderbunder 15y agoBut even then, it depends on the library. For the most part .NET assemblies are so easy to decompile that even when you don't have the source that doesn't end up being much of an impediment. (The only thing you really don't get is comments.) There are some vendors who insist on obfuscating their assemblies, but they're easy enough to avoid.
- Danieru 15y agoEven if they don't obfuscate the library's license will often have an anti-reverse engineering clauses.
- ajryan 15y agoSeriously? I can see a license that prevents you from creating a clone by inspecting decompiled source.. but a license that doesn't allow you to attach a debugger?
- bunderbunder 15y agoWouldn't be enforceable, I'm guessing, as per the protections for reverse engineering that the DMCA codified in 17 USC ss. 1201(f): . . .a person who has lawfully obtained the right to use a copy of a computer program may circumvent a technological measure that effectively controls access to a particular portion of that program for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs. . .
- MichaelGG 15y agoHe's referring to the .NET base class libraries (System.* and others). Microsoft releases the source so you can debug right into it.[1] The BCL is far from "open source", it's a "read only, nothing else, not even compile" type license IIRC. But you can step right into the C# implementation of most of the shipped-with-.NET libraries. 1: http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-...
- davyjones 15y agoIf I recall correctly, I read a while ago they have even opened up their kernel code to Univ programs. Don't know if that is still true.
- ryanmolden 15y agoThey have done that for quite awhile, at least it was happening ~8 years ago when I took an OS course at my school. Windows source was available, can't recall which version.
- mhansen 15y agoWindows Research Kernel. It's an almost-complete source code of Windows ~2003. There's a few omissions, like the TCP/IP stack. https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=7366&c1=en-us&c2=0 https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID...