Linux电脑和Windows电脑的相同与不同?优势?难易?

本文以 Linux 代表所有开源操作系统,比如 BSD

1、相同点

Linux和Windows都是台式电脑操作系统,都可以用来操作台式电脑。

从功能上看,台式电脑上的通用软件功能,二者都具备,比如网络、邮件、办公、音视频、游戏等,这一点,二者应该没什么区别,毕竟都是台式电脑操作系统,是一回事。

2、不同

Windows是盈利性商业公司闭源产品,是商业化产品,无法非商业化,只有微软自己可以决定Windows到底是什么样的。
Linux主要是非盈利组织的开源产品,本质上是非商业化产品,但可以商业化,有许多组织可以参与决定Linux是什么样的。

Linux系统与Windows系统最大的不同,应该是其开发模式:Windows是商业开发模式,而Linux是非商业开发模式。

很多人认为二者最大的区别是Linux开源而Windows不开源,其实这只是表面,一个软件是否开源,对于绝大多数使用者来说,并没有太大的意义。而开发模式的不同,则导致两个操作系统有着截然不同的影响。而这个网格上的差异,对用户产生了极为重要的影响。下面我们来讨论一下二者在开发上的差异以及差异所带来的不同影响。

2.1. 开发模式的不同

Windows是微软公司的商业产品,也是典型的商业模式开发的产品,其开发过程对外界来说是全封闭的。

作为商业产品,Windows必须要最大化地为股东赚取收益,因此,在开发Windows时,其方方面面都要以赚钱盈利为前提条件。

而赚钱的最有效方式就是垄断,所以Windows系统不是开放性的,用户只能使用,无法看到任何代码,也无法对系统做任何改动,微软也不允许外界的任何改动。从商业角度来说,这种思路完全正确,政府也保护那些有自主知识产权的软件企业。这种情况下,如果能够再占领用户市场,那么发展壮大就是必然的结果。

不过,这样的方式就会形成一个封闭的循环,垄断➡壮大➡继续垄断➡继续壮大➡继续垄断…

Linux的开发模式则完全不同,其开发过程对任何人都是公开透明的。

作为一个完整的操作系统,Linux是由无数个不同组织/个人开发的组件拼合在一起形成的。换句话说,没有哪一个公司/组织能做到仅仅依靠自己的能力就能够独自创造出完整的Linux操作系统。

我们可以尝试把Linux分解一下,看看大概都能分解成哪些内容;

  1. 内核:Linux内核是Linux操作系统的核心,主要负责硬件驱动和系统管理。硬件驱动比如屏幕、声音、网卡、磁盘等等;系统管理比如内存、应用程序和数据传输等等。Windows系统也有内核,负责的内容基本相同。

Linux内核开发主要由Linus负责统筹,但参与组织/人员数量庞大。

  1. 桌面环境:Linux系统有很多种桌面环境可以选择,这一点不像Windows只有一种桌面环境。所谓的桌面环境,对于用户来说,就是电脑启动后看到的图形界面:事实上,电脑系统没有桌面环境,只靠字符界面也是可以运行的,只不过一些功能受限而已。

不同的桌面环境是由不同的组织/人员开发的。

  1. 应用程序:单纯一个操作系统是无法办公或进行其它工作的,还需要应用程序,比如办公用的Office,Linux系统可以使用LibreOffice;还有GIMP,对应Windows下的Photoshop等等。基本上,在Windows中使用的应用程序,Linux系统中都有类似的程序可以使用。

不同的应用程序是由不同的组织/人员开发的。

我们把Linux系统分解为上面三大类,事实上不止这些,因为一个操作系统的实现是非常复杂的,需要很多底层的东西,而普通用户对这些底层的东西是感受不到的(比如GNU),我们暂不多说。

上面三大类的内容,任何一类,都是由无数个人或者多个不同的组织参与开发的,而且很多都是非独立开发的。

有了上面这些内容之后,一些组织/人员把它们集成在一起,就成了一个完整的Linux系统。在集成过程中,有可能需要一些其它软件,那么这些组织/人员有可能专门开发这些需要的软件,并集成到Linux系统中,完成整个Linux系统的集成工作。从这个意义上讲,Linux系统很像是一辆汽车,由无数种零件和多种材料拼装在一起构成,而这些零件和材料来自完全不同的无数个上游厂家。只不过,Linux系统远比一辆汽车要复杂许多倍。

并且,不同的组织/公司会用这些零件使用不同的方法来集成出不同的Linux系统,这就出现了各种各样的Linux发行版,每个发行版都有自己单独的风格。

Windows则相反,除了应用程序以外,其它东西全部来自于微软自己,甚至微软自己也提供很多重要应用程序,比如办公软件Office。和无数单独的Linux开发者/组织相比,微软是一个真正的庞然大物。但从另一个角度来看,如果把全世界所有的Linux上下游开发者全部加在一起,那么微软反而显得渺小了。

上面提到的这些内容,都在说明一点,即Linux系统本质上是一个非常复杂的组合的结果。而能够实现这样复杂的组合而成为一个完整的Linux操作系统,有一个无法忽略的非常重要的前提,就是开放性。

2.2. 开发模式不同导致的开放性差异

Linux的开放性开发模式,最直接体现就是其源代码是公开的,任何人都可以看得到。这直接导致了另一个结果,就是组成Linux系统的各个部分的源代码基本上全部都是公开的。

内核源代码是公开的,桌面环境源代码是公开的,应用程序源代码也是公开的,其它所有组成Linux系统涉及的源代码基本都是公开的。这样的公开,我们称之为 充分的开放性。这些组件有了充分的开放性之后,其它人或组织才有机会把这些“零件”组合在一起形成一个完整的操作系统。到这里,仅仅是操作系统已经无法概括了,所以我们用另一个说法来表示,叫发行版。

RedHat是一个Linux发行版,Debian也是一个Linux发行版。现在存活的Linux发行版应该有300个左右。之所以会有发行版存在,并且之所以有这么多不同的发行版存在,都是因为一个最重要的原因,就是 充分的开放性

那么,这个所谓的开放性到底带来了什么?

最直接的结果是,任何人和组织都能够在Linux的基础上,进行接下来的开发工作。

比如,最出名的 安卓(android)手机系统 就是由google主导,基于Linux再开发而来;其它例子还有很多,比如大多数的超级计算机,电视机顶盒,路由器,物联网等等。现在的硬件设备制造厂商,如果想给硬件开发一个嵌入式控制系统,第一个想到的恐怕都是Linux。

那么为什么大家都会选择Linux?因为Linux具有的 充分的开放性

因为足够开放,所以大家可以对Linux进行任意的定制,从而把系统重新打造成自己想要的样子。每个人的想法都不同,每个硬件设备的目的也都不一样,所以,每一个基于Linux定制开发的结果也千差万别。

因为足够开放,所以可以随意定制,这样的灵活性导致了Linux在开发领域的应用迅速流行并成为主流。

反过来看,不够开放的Windows则在灵活性上完败。

这里面还有成本等其它方面的影响因素

2.3. 开发模式不同导致的功能差异

基于商业性封闭开发模式的开发过程,尤其是商业公司,都需要考虑一个最重要的商业目的,就是投入产出比,或者说是否赚钱。

微软放弃IE和Edge就是一个典型的例子。

IE和Edge是捆绑在Windows中的,不收费。因为没有销售收入,所以微软对于IE和Edge的投入有限,主要考虑的是能用就行,至于安全性、隐私性、易用性等等,这些核心之外的附加功能全部被降级处理,夸张点说,在人员和资源预算有剩余时就搞一下,没有剩余就这些问题搁一边放着以后再说。毕竟,还有太多能挣钱的项目需要投入。至于IE和Edge,反正用户肯定要用,能用就行。

所以,IE和Edge的开发和升级,必定以商业目的为第一原则。

而作为IE和Edge的竞争对手的Firefox和Chromium则不同。Firefox和Chromium都是免费的,是非商业模式开发,且不是用来销售的。所以,只能以用户数量最大化为开发的第一原则。而为了保证用户数量能够最大化,就必须从用户的角度考虑开发哪些新的功能。这种情况下,IE和Edge所忽略的那些功能,比如安全性、隐私性、易用性等等会使用户产生粘性的功能,都要考虑优先进行开发。

结果,就是我们现在看到的,微软放弃了IE和Edge,转到使用开源的Chromium。这种变化的成本就是那些依赖IE和Edge软件/程序/功能,都会受到影响,因为未来不再提供了。

微软有强大的开发团队和资源,但如果要花很多钱来开发一个并不用来销售的浏览器,那么微软必须要考虑是否值得;或者说,微软必须从商业角度考虑,投入产出比是否可以接受。当投入产出比不适合到无法接受时,必定是从赚钱角度衡量的,这也是作为一个商业公司的正确天然然诺。既然投入产出比无法接受,那么势必要放弃开发,转而使用其它投入产出比更优的替代方案。

这种投入产出比问题对于Firefox和Chromium来说基本上是不存在的,因为Firefox和Chromium唯一要考虑的就是用户数量,所以,用户体验是开发的第一原则。

另一个可以参考的例子是Adobe公司的Flash Player和Photoshop

Flash Player是商业公司Adobe的产品,同IE和Edge类似,是不收费的。所以,开发投入的资源是有限的,因为商业公司的第一目标是赚钱。

HTML5之前,Flash Player已经存活了超过20年。一个经历了20多年迭代的软件工具,很难想象基本没什么大的发展和变化。而现在,Adobe公司彻底结束了Flash Player的开发和支持。

之所以结束,一方面是因为有了替代技术,比如HTML5;另一方面,也是主要原因,是adobe公司没有计划在Flash Player上投入太多的资源,所以导致Flash Player越来越差。

但同样是Adobe公司的另外一个产品Photoshop则不同,Photoshop更新速度快,功能多,市场基本没有竞争对手。到今天,同是Adobe公司的两个产品,却有着截然不同的结果:Flash Player被彻底放弃,而Photoshop如日中天。而导致这样结果的主要原因,则完全是因为这两个产品的开发模式完全是商业开发模式主导的。既然是商业开发模式,那么自然要对赚钱的项目增加投入,对不赚钱的项目减少投入。

Adobe公司的PDF Reader也不赚钱,为什么还在继续开发?

PDF Reader存在的意义是支撑Adobe Acrobat。如果要阅读PDF文件,就需要有一个能打开PDF文件的阅读器,PDF Reader就是这个阅读器。如果没有了PDF Reader,那么Acrobat就成了被阉割过的产品,功能严重不完善;而Acrobat是非常赚钱的产品,尤其在某些领域是事实标准,比如印刷行业。所以,虽然PDF Reader与Flash一样不收费,但PDF Reader却是收费产品Acrobat的一部分,而且是必不可少的一部分。所以,只要Acrobat还继续能赚钱,那么PDF Reader就会继续存在和继续开发。

市场上有第三方开发的PDF文件的阅读器,但因为PDF Reader是免费的,所以很多人会使用PDF Reader。

3、和Windows相比,为什么说Linux不难

Linux难学难用的这个观点,应该说是十几年甚至二十几年前的观点了。因为那个时候的Linux确实不完善,尤其是用户界面,缺少很多Windows用户习以为常的功能。

但到了今时今日,这个结论已经完全过时了,主要有两个原因:

一是Linux系统在很多年前就已经在服务器领域完全打败了Windows系统,这可以证明Linux的稳定性。

二是经过这些年的发展和完善,Linux系统已经完全可以胜任办公或家用领域的应用。

第一点无需证明,只要看一下各种服务所使用的操作系统就知道了,比如云服务器操作系统,再比如路由器系统等等,Linux完胜。

第二点想证明的话要稍麻烦一点,因为需要大量的测试和使用体验。驿窗经过几年的探索和研究,已经证明了第二点是成立的。

四、使用Linux,比使用Windows有哪些优势

优势有很多,无法全部列举,这里挑一些大家比较关心的列出来。

1、安全性优势

这里的安全性,并不是说Linux一定比Windows更安全,而是说,在我们面临的安全问题中,Linux在逻辑上有明显的优势,而这些优势,会转化为潜在的安全性优势。

我们举个例子。

病毒

Windows系统一定要装一个杀毒软件,而Linux系统基本不用装杀毒软件。这个说法并不是夸张,Linux系统可以使用的一个开源杀毒软件叫做ClamAV,其病毒库中的病毒特征码,95%是针对Windows系统的。这个现象并不是说Linux一定比Windows安全,而是说作为电脑病毒的攻击对象,Windows被攻击的可能性要比Linux高很多倍。

这有一定的客观原因。Windows系统用户量大,且各种版本系统内核结构比较单一同质化,只要开发出一个病毒,基本上就可以覆盖全部的Windows系统和用户。而Linux系统则不同,不同的发行版的内核结构多样化,同一发行版用户定制选项不同,这些原因导致开发通用病毒的难度成几何倍数上升。且Linux用户量小,病毒覆盖的范围也就相对变小。两相比较,开发Linux病毒在在投入产出比上显然是非常不合算的,所以Linux病毒数量要远小于Windows数量。

另外,由于系统文件管理机制的原因,Windows病毒的传播相对更容易,而Linux病毒的传播相对更困难。这也导致了Linux病毒的数量稀少。

2、隐私性优势

Linux系统有一个特别明显的特征,即源代码公开优势,系统中使用的软件程序绝大部分都是开源的,代码完全公开。这种情况下,如果在软件中夹杂了一些特殊功能,比如收集个人隐私或者偷偷把电脑上的文件上传到网络服务器上,因为代码公开可查,所以很容易就被发现,而一旦被发现,肯定就臭名远扬了。

而商业性的闭源软件就没有这个优势,不是说商业性闭源软件一定会偷偷做什么事,而是说闭源软件不像开源软件那么透明,在安全审计方面有经验的第三方人员很难从代码层面进行审计。

另外,商业性闭源软件从商业角度讲,为了赚钱,有动机去做一些不道德的事情;再加上如果商业公司内部本身允许存在一些不道德的行事规则的话,那么很可能出现“偷偷把电脑上的文件上传到网络服务器”这样的事情。并且,事实是,此类不道德事件在Windows系统上一直在不断发生,只不过今天是这个应用程序,明天是那个应用程序而已。

而Linux系统则罕有出现此类问题,源代码的公开透明可审计是主要原因。因为源代码公开后,任何人都可以对代码进行检查,从而最大限度地防止出现类不道德事件。

并且,开源软件开发的模式导致多数软件的开发是以用户第一为原则,所以在开发时通常会主动避免此类功能,这也是开源软件罕见有不道德事件发生的原因之一。

五、Windows用户入门Linux的障碍分析

未完结