为什么学习Linux系统?”很多人回说:“因为Linux系统是开源的,所以要去学习。”其实这个想法是完全错误的!开源的操作系统少说有100个,开源的软件至少也有10万个,为什么不去逐个学习?所以上面谈到的开源特性只是一部分优势,并不足以成为您付出精力去努力学习的理由。

对普通用户来讲,开源共享精神仅具备锦上添花的效果,我们更加看重的是,Linux系统是一款优秀的软件产品,具备类似UNIX系统的程序界面,并继承了其良好的稳定性。而且,开源社区也在源源不断地提供高品质代码以及丰富的第三方软件支持,能够在高可用性、高性能等方面较好地满足工作需求。

当然,大多数读者应该都是从微软的Windows系统开始了解计算机和网络的,因此肯定会有这样的想法“Windows系统很好用啊,而且也满足日常工作需求呀”。客观来讲,Windows系统确实很优秀,但是在安全性、高可用性、高性能方面却难以让人满意。您应该见过下面这张图片。虽然蓝屏不是经常可以看到的,但若这样的“事故”发生在生产环境中则是绝对不敢想象的。

为什么要在需要长期稳定运行的网站服务器上、在处理大数据的集群系统中,以及需要协同工作的服务器环境中采用Linux系统呢?

还有一个更极端的应用场景——全球超级计算机竞赛。每年全球会评选出计算峰值速度最快的500台超级计算机,其中包括美国的Summit、Sierra和中国神威·太湖之光、天河二号等超级计算机。这些超级计算机无一例外采用的都是Linux操作系统。

为了能更清晰地比较Linux和Windows具体的差别,进行了简单归纳,如下图所示。这些差别是由刘遄老师凭借工作经验总结出来的,或许您现在不完全认同,但没关系,您可以在学习中慢慢感受。

坦白来讲,每位投身于Linux行业的技术人或者程序员只要听到开源项目就会由衷地感到自豪,这是一种从骨子里带有的独特情怀。开源企业不单纯是为了利益,而是互相扶持,努力服务好更多的客户。开源社区更是与全球用户唇齿相依,任何人都可以贡献自己的代码与灵感,任何人也都可以从开源社区中受益。如此良性循环下来,开源软件便具备了4大关键性优势。

低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源代码没有人来维护,您将进退维谷。而且相较于商业软件公司,开源社区很少存在倒闭的问题。并且,源代码一旦公布于世,任何人或组织都可以接手进行新的维护工作。

高品质:相较于闭源软件产品,开源项目通常是由开源社区来研发及维护的,参与编写、维护、测试的用户数量众多,一般的bug还没有等暴发就已经被修补。另外,在灵感不断碰撞、代码不断迭代的交流氛围中,程序员也不可能将“半成品”上传到开源社区中。

低成本:开源工作者大多都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目可以节省大量的人力、物力和财力。

更透明:没有哪个笨蛋会把木马或后门代码放到开源项目中,这样无疑是把自己的罪行暴露在阳光之下,很容易被他人发现。

1965年,当时,为了解决服务器的终端连接数量的限制和处理复杂计算的问题,贝尔(Bell)实验室、通用电气(GE)公司以及麻省理工学院(MIT)决定联手打造一款全新的操作系统——MULTICS(多任务信息与计算系统)。但由于开发过程不顺利,遇到了诸多阻碍,后期连资金也出现了短缺现象,最终在1969年,随着贝尔实验室的退出,MULTICS也终止了研发工作。而同年,MULTICS的开发人员Ken Thompson使用汇编语言编写出了一款新的系统内核,当时被同事戏称为UNICS(联合信息与计算系统),在贝尔实验室内广受欢迎。

1973年时,C语言之父Dennis M. Ritchie了解到UNICS系统并对其非常看好,但汇编语言有致命的缺点——需要针对每一台不同架构的服务器重新编写汇编语言代码,才能使其使用UNICS系统内核。这样不仅麻烦而且使用门槛极高。于是Dennis M. Ritchie便决定使用C语言重新编写一遍UNICS系统,让其具备更好的跨平台性,更适合被广泛普及。开源且免费的UNIX系统由此诞生。

但是在1979年,贝尔实验室的上级公司AT&T看到了UNIX系统的商业价值和潜力,不顾贝尔实验室的反对声音,依然坚决做出了对其商业化的决定,并在随后收回了版权,逐步限制UNIX系统源代码的自由传播,渴望将其转化成专利产品而大赚一笔。崇尚自由分享的黑客面对冷酷无情的资本力量心灰意冷,开源社区的技术分享热潮一度跌入谷底。此时,人们也不能再自由地享受科技成果了,一切都以商业为重。

面对如此封闭的软件创作环境,著名的黑客Richard Stallman在1983年发起了GNU源代码开放计划,并在1989年起草了著名的GPL许可证。他渴望建立起一个更加自由和开放的操作系统和社区。之所以称之为GNU,其实是有“GNU’s Not Unix!”的含义,这暗戳戳地鄙视了一下被商业化的UNIX系统。但是,想法和计划只停留在口头上是不够的,还需要落地才行,因此Richard便以当时现有的软件功能为蓝本,重新开发出了多款开源免费的好用工具。在1987年,GNU计划终于有了重大突破,Richard和社区共同编写出了一款能够运行C语言代码的编译器——gcc(GNU C Compiler)。这使得人们可以免费地使用gcc编译器将自己编写的C语言代码编译成可执行文件,供更多的用户使用,这进一步发展壮大了开源社区。随后的一段时间里,Emacs编辑器和bash解释器等重磅产品陆续亮相,一批批的技术爱好者也纷纷加入GNU源代码开放计划中来。

在1984年时,UNIX系统版权依然被AT&T公司死死地攥在手里,AT&T公司明确规定不允许将代码提供给学生使用。荷兰的一位大学教授Andrew(历史中被遗忘的大神)为了能给学生上课,竟然仿照UNIX系统编写出了一款名为Minix的操作系统。但当时他只是用于课堂教学,根本没有大规模商业化的打算,所以实际使用Minix操作系统的人数其实并不算多。

芬兰赫尔辛基大学的在校生Linus Torvalds便是其中一员,他在1991年10月使用bash解释器和gcc编译器等开源工具编写出了一个名为Linux的全新的系统内核,并且在技术论坛中低调地上传了该内核的0.02版本。该系统内核因其较高的代码质量且基于GNU GPL许可证的开放源代码特性,迅速得到了GNU源代码开放计划和一大批黑客程序员的支持,随后Linux正式进入如火如荼的发展阶段。Linus Torvalds最早发布的帖子内容的截图如下。

  Hello everybody out there using minix -I'm doing a (free) operating system (just a hobby, won't be big andprofessional like gnu) for 386(486) AT clones.  This has been brewingsince april, and is starting to get ready.  I'd like any feedback onthings people like/dislike in minix, as my OS resembles it somewhat(same physical layout of the file-system (due to practical reasons)among other things).I've currently ported bash(1.08) and gcc(1.40), and things seem to work.This implies that I'll get something practical within a few months, andI'd like to know what features most people would want.  Any suggestionsare welcome, but I won't promise I'll implement them :-)Linus torvalds

Linux系统的吉祥物名为Tux,是一只呆萌的小企鹅。相传Linus Torvalds在童年时期去澳大利亚的动物园游玩时,不幸被一只企鹅咬伤,所以为了“报复”就选择了这个物种作为吉祥物。这个故事是否可信无从考证,但万幸是只企鹅,而不是老虎或者狮子,否则就不是换个Logo这么简单的事了。

1994年,红帽(Red Hat)公司创始人Bob Young在Linux系统内核的基础之上,集成了众多的常用源代码和程序软件,随后发布了红帽操作系统并开始出售技术服务,这进一步推动了Linux系统的普及。1998年以后,随着GNU源代码开放计划和Linux系统的继续火热,以IBM和Intel为首的多家IT巨头企业开始大力推动开放源代码软件的发展,很多人认为这是一个重要转折点。2012年,红帽公司成为全球第一家年收入10亿美元的开源公司,后来是20亿、30亿……不断刷新纪录。

时至今日,Linux内核已经发展到5.6版本,衍生系统也有数百个版本之多,它们使用的都是Linus Torvalds开发维护的Linux系统内核。红帽也成为开源行业及Linux系统的领头羊。

为什么学习Linux系统?相关推荐

  1. 忠告初学者学习Linux系统的8点建议

    忠告初学者学习Linux系统的8点建议 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到 ...

  2. 学习Linux系统的态度及技巧

    学习Linux系统的态度及技巧 Linux作为一种简单快捷的操作系统,现在被广泛的应用.也适合越来越多的计算机爱好者学习和使用.但是对于Linux很多人可能认为很难,觉得它很神秘,从而对其避而远之,但 ...

  3. 学习Linux系统清理/var/log/journal/垃圾日志教程

    学习Linux系统清理/var/log/journal/垃圾日志教程 journal介绍 常见的日志文件 查看垃圾文件的方法 清空 /var/log/journal 文件的方法 1.用 echo 命令 ...

  4. 学习linux系统有什么用?

    学习Linux系统有很多用处.Linux是一种操作系统,用于在计算机上运行应用程序.它在服务器.笔记本电脑.台式机.移动电话.平板电脑和智能手表等设备上都得到广泛使用. 学习Linux可以帮助您了解计 ...

  5. 技术宅学习Linux系统还是很有前途的

    老实说,我之所以入了Linux的坑,纯粹只是为了追我现在的男朋友,也就是技术宅.如果不是为了追我男朋友的话,我估计我这辈子都不会去接触linux.好吧,今天写一写过往事情,也是为了怀念当初追男友的一些 ...

  6. 总结六条对我们学习Linux系统有用的忠告

    接触linux需要的是端正自己的态度,这个玩意可不是一天两天就能拿得下的.学习个基础,能装系统.能装常见服务.能编译.能配置存储空间.能配置系统参数.能简单查看系统负载等基本够用.但这些只保证能做机房 ...

  7. 学习Linux系统的十一点建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux的一些建议. 一.从基础开始 常常有些朋友在Linux论 ...

  8. 浅谈身为小白学习Linux系统的四点实用建议

    2019独角兽企业重金招聘Python工程师标准>>> 游戏.办公.安全,可以总结为是方便当代人们在生活中的刚需,我们大都是这些服务的使用者,而把单个功能整合起来那就必须谈到互联网, ...

  9. 给你们讲讲我自己是怎么学习Linux系统的

    2019独角兽企业重金招聘Python工程师标准>>> 我是一个理工男,本科是搞电子的,但是一直对计算机的一些东西感兴趣,自己在课下喜欢学一些编程语言,后来进入了实验室,看到师兄在弄 ...

最新文章

  1. How to POST JSON data with Curl from Terminal/Commandline to Test Spring REST?
  2. 1月12日,HTML学习笔记2
  3. 星座图与IQ调制总结+BPSK、QPSK、8PSK、16QAM等的区别与总结
  4. 用c++来开发php的底层模块|用c++来开发apache模块,Apache模块开发实例(2)
  5. App设计灵感之十二组精美的地图导航App设计案例
  6. MYSQL 表锁情况查看
  7. 打入硅谷的局外人|Decode the Week
  8. java url编码解码
  9. Facebook上的一道题,超过50万的评论和1万3500次分享
  10. 天才编程少女16岁获哈佛offer,全民网红时代,我们该怎么做?
  11. 鸿蒙测试版苹果,华为鸿蒙OS 2.0开发者Beta新增招募 苹果macOS 11.4测试版发布
  12. *最近培训的一个题目:蚂蚁爬竿
  13. 管理感悟:宁可五个阶段做三个月,绝不一个阶段做二个月
  14. 第12期《啊哈算法 PDF版本》
  15. 数学节 | 最受读者喜爱的十大图灵数学好书
  16. hadoop面试题(全)
  17. word如何调整字间距离_WORD如何调整行间距和字间距
  18. grpc流式传输心得
  19. 计算机网络基础判断题
  20. mac可装云服务器_Mac 下阿里云服务器的配置方法

热门文章

  1. java之实现简单的传入一个小数和一个整数,根据传入的整数,输出一个有整数位个小数的小数
  2. oracle分区表的作用
  3. 计算机视觉与深度学习公司
  4. 什么是 Power BI Desktop?
  5. .Net 根据年份计算周次和起止日期
  6. PHP文件包含漏洞(利用phpinfo)复现
  7. Hive_处理NULL的几个函数 NVL, COALESCE, NULLIF
  8. 自学Python之字符串总结
  9. java词云生成,kumo项目详解
  10. 网络协议-TCP协议详解