linux 是遵守GPL协议的。但看了这个协议的介绍,却不太明白。是不是所有基于linux平台的软件都得开源啊?? 因为操作系统是最基础的嘛,其他软件只能是在操作系统之上。
产生这个疑问的主要原因是: 所谓的GPL的传染性。用了GPL的代码,你就也得GPL。引用了GPL的 类库或者dll(windows下的说法,linux下不知道该怎么表达)文件,那么引申产品也要GPL。  那比如,windows平台的应用软件, 许多都需要调用windows的API。当然,在linux下叫系统调用。
  如果这样的话,是不是意味着如果你的基于linux的软件使用了linux下的系统调用,那么你就必须也得开源???
  再扩展下,听说好像linux下的gcc 之类的编译器也是开源的。 那如果用了这个编译器,使用了此编译器提供的标准的开源的c库函数 或者 其他此类编译器的开源的标准库之类的,那么只要你在这个平台下,用了哪怕是c语言 c++ ,做出的产品也得开源吗???   如果说系统调用还有可能规避的话(实际上感觉离开系统调用基本上啥软件也做不出来了吧??),那你用某个语言,但因为在linux这个平台上,你总不可能避开那些开源的库函数或者标准库吧???    尤其听说java也是GPL,那用java开发,至少离不开java的标准库吧???  难道所有java的产品都是开源的了????

解决方案 »

  1.   

    linus为了使广大的硬件厂商支持Linux,在GPL的基础上又发表了一个补丁宣言:只是用到了Linux的系统调用可以不开放源代码(大意如此)
      

  2.   

    http://www.freebsd.org/doc/en/articles/bsdl-gpl/origins-lgpl.htmlThe origins of Linux and the LGPL
    While the commercial Unix wars raged, the Linux kernel was developed as a PC Unix clone. Linus Torvalds credits the existence of the GNU C compiler and the associated GNU tools for the existence of Linux. He put the Linux kernel under the GPL.Remember that the GPL requires anything that statically links to any code under the GPL also be placed under the GPL. The source for this code must thus be made available to the user of the program. Dynamic linking, however, is not considered a violation of the GPL. Pressure to put proprietary applications on Linux became overwhelming. Such applications often must link with system libraries. This resulted in a modified version of the GPL called the LGPL ("Library", since renamed to "Lesser", GPL). The LGPL allows proprietary code to be linked to the GNU C library, glibc. You do not have to release the source to code which has been dynamically linked to an LGPLed library.If you statically link an application with glibc, such as is often required in embedded systems, you cannot keep your application proprietary, that is, the source must be released. Both the GPL and LGPL require any modifications to the code directly under the license to be released.
      

  3.   


     那比如ubantu  这类的linux系统。  内核应该是全部用的linux,但他自己开发了个界面程序。我想,界面程序也该是有系统调用的吧。  那这怎么界定呢??  作为ubantu,他引用了整个GPL的内核。  但实际上,ubantu的目的似乎只是做一个界面。  可如果ubantu也全部开源,那这样的企业咋生存啊??? 虽然好像有基金支持,可怎么盈利呢??