早在 20 世纪 70 年代,UNIX 系统是开源而且免费的,但是在 1979 年时,AT&T 公司宣布了对 UNIX 系统的商业化计划,随之开源软件业转变成了版权式软件产业,源代码被当作商业机密,成为专利产品,人们再也不能自由地享受科技成果。

于是在 1984 年,Richard Stallman 面对于如此封闭的软件创作环境,发起了 GNU 源代码开放计划并制定了著名的 GPL 许可协议。

图 1 Richard Stallman

Richard Stallman,理查德·马修·斯托曼,自由软件运动的领袖、GNU 计划的创立者。

1987 年时,GNU 计划获得了一项重大突破,即发布了 gcc 编译器,这使得程序员可以基于该编译器编写出属于自己的开源软件。随之,在 1991 年 10 月,芬兰赫尔辛基大学的在校生 Linus Torvalds 编写了一款名为 Linux 的操作系统,该系统因其较高的代码质量且基于 GNU GPL 许可协议的开放源代码特性,迅速得到了 GNU 计划和一大批黑客程序员的支持,随后 Linux 系统便进入了如火如荼的发展阶段。

1994 年 1 月,Bob Young(红帽创始人)在 Linux 系统内核的基础之上,集成了众多的源代码和程序软件,发布了红帽系统并开始出售技术服务,这进一步推动了 Linux 系统的普及。

1998 年以后,随着 GNU 源代码开放计划和 Linux 系统的继续火热,以 IBM 和 Intel 为首的多家 IT 企业巨头开始大力推动开放源代码软件的发展。

到了 2017 年年底,Linux 内核已经发展到了 4.13 版本,并且 Linux 系统版本也有数百个之多,但它们依然都使用 Linus Torvalds 开发、维护的 Linux 系统内核。RedHat 公司也成为了开源行业及 Linux 系统的带头公司。

初步接触 Linux 的读者,或者有这样一个疑问,Windows 系统也很好用,也能满足日常工作需求,为什么要学习 Linux 系统呢?

有些初学者会将“Linxu 系统是开源的”作为这个问题的答案,其实不然。开源的操作系统少说有 100 个,开源的软件至少也有十万个,为什么不去逐个学习?Linux 的开源特性只是一部分优势,并不是学习 Linux 的主要原因。

对于用户来讲,开源精神仅具备锦上添花的效果,真正的原因在于,Linux 系统是一款优秀的软件产品,具有类似 UNIX 的程序界面,而且继承了 UNIX 的稳定性,能够较好地满足工作需求。

大多数读者应该都是从微软的 Windows 系统开始了解计算机和网络的,客观来讲,Windows 系统确实很优秀,但是在安全性、高可用性与高性能方面却难以让人满意。例如,如果你经常使用 Windows,应该见过如图 2 所示的这个界面。

图 1 Windows系统崩溃

想必读者现在已经能猜到,为什么要在需要长期稳定运行的网站服务器上、在处理大数据的集群系统中,以及需要协同工作的环境中采用 Linux 系统了。

图 2 Linux相比Windows的优势

从图 2 中,也可以看出 Linux 系统相较于 Windows 系统的具体优势。

1.6 为什么要学Linux,它比Windows好在哪里?的更多相关文章

  1. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  2. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  3. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  4. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  5. 为学Linux,我看了这些书

    为学Linux,我看了这些书   去年开始,抱着学习的态度开始了我的Linux学习,到现在,差不多一年了,收获很多,不敢说精通Linux,但是,还是对得起"略懂"这两个字的.这一年 ...

  6. 十天学Linux内核之第十天---总结篇(kconfig和Makefile & 讲不出再见)

    原文:十天学Linux内核之第十天---总结篇(kconfig和Makefile & 讲不出再见) 非常开心能够和大家一起分享这些,让我受益匪浅,感激之情也溢于言表,,code monkey的 ...

  7. 十天学Linux内核之第九天---向内核添加代码

    原文:十天学Linux内核之第九天---向内核添加代码 睡了个好觉,很晚才起,好久没有这么舒服过了,今天的任务不重,所以压力不大,呵呵,现在的天气真的好冷,不过实验室有空调,我还是喜欢待在这里,有一种 ...

  8. 十天学Linux内核之第八天---构建Linux内核

    原文:十天学Linux内核之第八天---构建Linux内核 今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看 ...

  9. 十天学Linux内核之第七天---电源开和关时都发生了什么

    原文:十天学Linux内核之第七天---电源开和关时都发生了什么 说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自 ...

  10. 十天学Linux内核之第六天---调度和内核同步

    原文:十天学Linux内核之第六天---调度和内核同步 心情大好,昨晚我们实验室老大和我们聊了好久,作为已经在实验室待了快两年的大三工科男来说,老师让我们不要成为那种技术狗,代码工,说多了都是泪啊,, ...

随机推荐

  1. SpringBoot静态资源配置访问上传文件

    使用SpringBoot项目开发上传文件的代码时,如果想访问已上传的文件,但处于测试阶段,而不想配置Nginx服务并启动这么繁琐,那么配置以下代码即可 @Override public void ad ...

  2. Thymeleaf使用遇见的问题,如字符串不相等

    所属情况:内联JavaScript语言 当使用Thymeleaf取请求参数的值时,会出现数组符号包围值的问题,可通过[0]进行取出里面的字符串,取值之前需先判断值是否存在,不然会抛出索引0不存在问题 ...

  3. 解释 Spring 支持的几种 bean 的作用域?

    Spring 框架支持以下五种 bean 的作用域:singleton : bean 在每个 Spring ioc 容器中只有一个实例.prototype:一个 bean 的定义可以有多个实例.req ...

  4. JVM的基础知识

    一.JVM的基础知识 1.JVM内存结构: 1.JVM堆内存结构: 2.JVM内存分配: 3.Java的堆机构和垃圾回收: 4.Jvm堆内存配置参数: 5.JVM新生代概念和配置: 6.JVM老生代概 ...

  5. 插值方法 - Lagrange插值多项式

    Lagrange插值多项式代码: 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Wed Mar 25 15:43:42 202 ...

  6. 如何解决Visual Studio 2017 运行后控制台窗口一闪就消失了

    出现这种情况的原因 安装使用Visual Studio 2017 后,用Ctrl+F5运行程序,结果控制台窗口一闪就没了,也没有出现"press any key to continue-&q ...

  7. 《基于.NET Core构建微服务》系列文章(更新至第6篇,最新第7篇,已发布主页候选区)

    原文:Building Microservices On .NET Core – Part 1 The Plan 时间:2019年1月14日 作者:Wojciech Suwała, Head Arch ...

  8. 从0搭建vue后台管理项目到颈椎病康复指南(一)

    网上搜索了很久Vue项目搭建指南,并没有找到写的比较符合心意的,所以打算自己撸一个指南,集合众家之所长(不善于排版,有点逼死强迫症,如果觉得写的有问题,可以留言斧正,觉得写的太差的,可以留言哪里差, ...

  9. 【Android开发】Webview 和 JS 交互问题

    一,安卓原生调用JS代码 1,js代码: function handlePasteDataFromApp(pasteStr) { showInfo('pasteData: aaaaa' + JSON. ...

  10. java中接口interface有什么用呢?举例!

    接口只有方法的定义,没有方法的任何实现.那这有什么意义呢?马克-to-win: 接口就像一个服务合同.接口只关心必须得干什么而不关心如何去实现它.有 意义吗?有意义.马克-to-win:比如我们的软件 ...