[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: this affects DotGNU (was: this doesn't affect DotGNU (was Re:[DotGN

From: Carsten Kuckuk
Subject: Re: this affects DotGNU (was: this doesn't affect DotGNU (was Re:[DotGNU]New addendum for MS redistributables))
Date: Sat, 23 Mar 2002 18:35:06 +0000

Norbert Bollow wrote:
> With the exception of C# programs, probably, because
> corresponding free libs are under construction so that no
> non-free libs are going to be necessary for running
> typical compiled C# programs.

That's correct.

> Concerning other programs, in what ways are they hobbled
> exactly? [..]

The API that Win32 operating systems expose to applications,
are C functions that reside in Kernel.dll, GDI.dll, User.dll
and a few other places. These are very low level things like
OpenFile(), DrawLine(), SendMessage(), etc. There is no concept
of classes and methods here, so writing programs directly to 
this API is very difficult and error prone. So what Microsoft,
Borland, and others did, was they wrote object-oriented wrapper
around the handles in these APIs and came to abstractions like
CFile, CWindows, etc. They put a lot of work into these class
libraries and shipped them with their compilers. Systeme Nat
wrote the MFC and Microsoft licensed it / bought it from them.
MFC was very successful so that other compilers soon also shipped
with it, and it is now the standard for GUI application on 
Windows. Pretty much all practically relevant applications
on Windows are written using the MFC. As the MFC is not part
of the operating system, but shipped with the compiler, the 
MFC has to be redistributed together with the application
to the end user of the program in compiled form. But it 
does not stop there. The C++ and the C standard specify a
set of standard libraries to be present on all systems. C
programers expect to have fopen(), printf(), etc. available,
and C++ programmers want to have streams. So Microsoft's 
C++ compiler also has libraries that translate these standard
calls into Win32 API calls (C99-fopen() <-> Win32-OpenFile())
etc. This is what the MSVCRT.DLL is all about. So not only
MFC programs, but also command line tools compiled by Microsoft
Visual Studio.NET are affected by this license change and
must not be run under non-Windows operating systems.

> [..] Do you think that this license actually gives
> Microsoft legal means to take action against someone who
> runs their "redistributable" on a computer which does not
> have Microsoft Windows installed? [..]

Well, the end-user has a contract with the ISV and not wirh
Microsoft, so Microsoft would have a difficult time sueing
the end users. 

> [..] Or is it just (like I
> tend to think) a matter of putting "requires Microsoft
> Windows" on the box of any software that is produced with
> Microsoft's tools?

That's more what it is. But it also forces ISVs to put better
system checks into their setup programs. The point here is, 
that Microsoft makes it illegal to use programs developed
with VS.NET on Linux or BSD systems. Imagine you are the CIO
for a big firm and want to change all your desktop 
computers to Linux or Lindows. With this change in the 
license, s/he will soon be in a position where it is not
legal for him/her to run mission critical software on these
desktops. If the company is really big and its stock is listed,
then they have to disclose this fact to their shareholders.
Do you really think a CIO is going to take this risk?

Carsten Kuckuk

reply via email to

[Prev in Thread] Current Thread [Next in Thread]