Linux和Microsoft Windows的一个主要区别就是Linux是自由软件,而Windows是封闭软件。除此以外,还有下列诸多区别。
Linux的源代码级别的可定制性:可满足用户对高性能、高效率或界面等涉及用户体验的方面高度的需求。Windows的封闭特性导致了架构的不透明,普遍被认为是一种混合核心型的操作系统,部分图形界面的代码处在核心状态运行,因此Windows图形界面的反应速度上要高于GNU/Linux,但也因此使图形界面的错误有可能导致整个系统故障。
相对于Windows内核的封闭,Linux内核源代码的开放让漏洞很容易被发现。
带有研究学习性质的个人和团体,因为授权协议的不同,Windows的学习和引用的门槛更高,但是现有资源支持更为广泛;Linux则是基于网络,轻易获取最新资源。
Windows以商业软件为主,Linux则以自由软件为主。由于大多数人缺乏使用自由软件的习惯,使得“找不到相应的应用软件”成为Windows用户转换至Linux平台的一大阻力。
因为Linux用户不多,所以游戏软件公司选择以用户压倒性胜利的Windows作为开发平台,除了少数愿意制作两种操作系统都能使用的游戏公司外,Linux能执行的游戏软件不多而且很少有能跟Windows匹敌的游戏。但是,这一局面随着威尔乌(Valve)开发SteamOS而有所缓解,一些3A大作,例如XCOM 2以及Dota 2专门开发了Linux版。Vulkan (API)的开发使得在Linux上实现高效的游戏画面渲染成为了可能。
早期的Windows系统无法解决多语言问题,因此针对每一种语言都要发行新的版本才能支持当地语言和使用此语言的软件。例如在英文系统上安装中文软件就会出现显示异常的现象,在中文系统上安装日语软件同样会出现显示不完全的问题。
从Windows 2000开始,Windows系统开始支持Unicode编码以及同时支持多个国家的不同语言软件。但是在支持西方语言和中文时仍然可以见到软件乱码的问题。
Linux在解决多语言问题方面比Windows做得要好。在Linux系统中主要存在的问题是在本地化不彻底,因为更新特别迅速,需要志愿者长时间维护,经常可以发现在中文发行版的Linux中出现个别菜单或者选项为英文等情况。相对于Windows系统必须先安装语言包随后通过设置并重启以支持非本地语言版软件,Linux只要修改一个环境变量就可以改变菜单显示语言,这样甚至可以强制以指定的语言来执行特定应用程序而无须更改系统设置。
Linux和Windows都可以支持Unicode编码,但是Linux显示多多少少还是有问题。特别是中文字体上,因为自由的高质量中文字体较少,Linux需要大量调试才可以完美显示中文。随着文泉驿、cwTeX开源中文字体、思源黑体计划的进展,这个问题也在缓解。