Windows的源代码是保密的,而Linux的源代码是开放的。从字面上讲这当然是意味着原则上任何人都可以改进Linux。但是需要指出的是,原则上可以做的事情并非实际上就一定能够或者应当做。Linux源代码的高度的开放性主要是针对系统开发人员的,源代码的开放性使得Linux系统中的缺陷能够很快地被来自世界各地的高手所发现和弥补,这是十余年来Linux发展的关键。但对于普通用户来说,修改自己赖以工作的Linux机器的源代码却是非常不明智的行为。Linux内核多年来经过无数高手的锤炼,一个普通用户能够改进它的几率是微乎其微的(破坏它的可能性倒是很大的)。因此在肯定源代码开放性对操作系统本身乃至整个软件业发展的深远意义的同时也不应该夸大它对普通用户的直接帮助,源代码的开放性并不增加一个普通用户对系统的掌控程度。
Linux源代码的开发性使得各大学的操作系统课程和教材几乎都是以Linux或其他类似的系统为蓝本,因此使得受过正规计算机专业教育的几乎所有学生以及几乎所有对操作系统感兴趣的人都对Linux有相当程度的了解和喜爱。这对于Linux未来的发展有着十分正面的影响。
应用程序界面(API)
一个操作系统的API(ApplicationProgramInterface)是操作系统提供的与应用软件的接口,对于软件开发人员来说十分重要。一般认为Linux的API要比Windows优美。不过由于Windows下有诸如VisualStudio这样的直接支持WindowsAPI的大型工具软件,从而大大降低了Windows编程对于拥有并熟悉这些工具的人员的困难程度。
系统可调节性
Linux具有比Windows大得多的可调节性。许多早期的Windows骨灰级用户在系统可调节性上有一种怀旧感,觉得在DOS和早期Windows时代他们曾经是机器的主人,随着Windows的演化,后来他们只拥有Windows,不再直接拥有机器了(现在他们连Windows也不拥有了)。而Linux却始终如一地保持着系统的高度可调节性。
Linux的源代码的开放性也可以被视为终极意义上的可调节性,但是,前面说了,对于普通用户来说,这种可调节性实际上是几乎不存在的。
另一方面,在各自可调节的范围内,Windows要比Linux易于调节(这在很大程度上得益于Windows界面的规范性)。在早期,Linux的调节往往需要用户直接修改参数文件,即使对于有一定经验的用户,这也是一件令人头疼的事。近年来Linux在这方面做了很大的改进,开发了许多工具软件,不过和Linux下的许多其它类别的软件类似,Linux的工具软件也呈现一种发散性,即有不止一种软件可以做同一件事。这使得用户在转换机器和LinuxDistribution时往往因为不同环境下工具软件的不同而需要学习新的工具或重新安装旧的工具。