在知乎上有这么一个问题:为什么许多程序员都主张运用Linux?在这个问题上我其实有挺多想聊的,尽管比不上专门用C/C++编译的工程师了解的那么底层,也比不上运维工程师每天触摸Linux,可是咱们的作业中仍是会触摸到不少Linux的,今日咱们来讨论一下学习Linux的必要性以及带来的价值。

本文首发于公众号【前端壹读】,更多精彩内容敬请重视公众号最新消息。

开展历程

  信任对Linux体系有一些了解的童鞋都听过这么一个故事,Linux是一名芬兰的学生Linus Torvalds在Unix体系的基础上开发的,并发布在学校论坛,终究火了起来。可是这么说并不十分的准确,Linux的故事缘起于更早的UNIX体系。

UNIX

  说到Linux,就不能说到大名鼎鼎的UNIX体系,在上世纪60年代末的时分,那时分计算机体系仍是批处理的,在又大又笨的大型机器上运转,要先将程序卡片装入设备,然后等1个小时后才能取运算的成果。不仅慢,还很废纸。

为什么很多程序员都建议使用Linux?

  所以美国电话电报公司(下面简称AT&T公司)下面的贝尔实验室联合麻省理工学院及美国通用电气公司本来是打算开发一个大型机上的多人运用、多任务、多层次的操作体系multics。可是multics这个体系脚步迈得太大了,贝尔实验室以为这个项目周期长、成本高,不久就撤资了,各方也连续退出,项目所以凉凉了。

  可是贝尔实验室下面的两个研讨员肯汤普森(Ken Thompson)和丹尼斯里奇(Dennis Ritchie)对项目封闭很失望,由于他们在这个体系上开发了一个游戏太空游览(Space Travel),实验室的其他人员对这个游戏玩得也很上头。

为什么很多程序员都建议使用Linux?

  所以,为了能够持续玩游戏,肯汤普森和丹尼斯里奇决定自己开发一个操作体系;是的,你没有看错,大神便是大神,出发点都异于常人。肯汤普森找来了一台五年前老旧的PDP-7小型机,尽管称为小型机,可是也有一间屋子那么大!

为什么很多程序员都建议使用Linux?

  正好在这段时间,他老婆带着孩子回娘家住了3个礼拜,也便是说他有整整3个礼拜没有人打扰他的作业。

这件事告诉了咱们,一个男人想要搞大事,老婆不在家是多么的重要!

为什么很多程序员都建议使用Linux?

  在这台机器上,他首要重写了游戏,然后想要开发一个全新的操作体系,由于有之前multics体系的经历,在一个月内他很快完成了内核体系、文件体系、编辑器、编译体系的作业。1969年第一版的UNIX体系正式诞生了。

  在《UNIX传奇》一书中,提及了UNIX体系的高光时刻,上映于1993年的科幻冒险电影《侏罗纪公园》信任不少同学肯定对这部老电影依旧形象深入;其间一个名局面,哈蒙德教授的孙女便是操作UNIX体系,封闭了闸门,然后拯救了一行人,有兴趣能够重温B站视频片段。

这个故事告诉了咱们,多学一门操作体系,在关键时刻说不定能够保命。

为什么很多程序员都建议使用Linux?

  可是UNIX是由不少运用汇编言语完成的,汇编言语用来编程不行强大,也不具备很好的可移植性,所以1971年丹尼斯里奇在B言语的基础上开发出了C言语,1973年UNIX也用C言语进行了重写,随后发布了4、5、6几个版别的UNIX。尔后,UNIX被政府机关、研讨安排、企业、大学纷繁注意,并逐步盛行;随着UNIX体系的广泛盛行,C言语也成为了最受欢迎的言语之一,一向延续至今。

为什么很多程序员都建议使用Linux?

  一开端AT&T公司也没有把UNIX当回事,究竟不是正式的项目,况且在操作体系上(multics)还吃过大亏,也就没想拿它卖钱,因而被免费供给给大学运用,乃至直接给V7版别的源码以做研讨。

  因而在后面的10年,UNIX在各个学术安排得到广泛运用,乃至许多安排在此源码基础上加以改进,其间最著名的变种之一是由加州大学柏克莱分校开发的BSD产品(Berkeley Software Distribution),在此基础上又诞生了三条分支:FreeBSD、OpenBSD和NetBSD,就连苹果电脑的内核Darwin所运用的NextSETP也是BSD的衍生版别。

  AT&T公司一看,哟呵,UNIX竟然这么火,所以意识到了UNIX巨大的商业价值,不再将UNIX源码授权给学术安排,并对之前的UNIX及其变种声明了版权,后面引发了各种长年累月的版权纠纷,这是UNIX的后话。

为什么很多程序员都建议使用Linux?

Linux

  时间来到了80年代,随着AT&T公司闭源UNIX体系,在学校里给学生用的操作体系很少;其时计算机首要运用的操作体系有UNIX、MS-DOS和MacOS这几种,UNIX已经开端商用,比较昂贵,仅局限于大型机;MS-DOS体系比较简陋,且源代码被软件厂商严厉保密;而MacOS咱们肯定也都知道,是专门用在苹果计算机上的体系,并且其时应该没有黑苹果一说。

  1987年其时在荷兰阿姆斯特丹Vrije大学当教授的美国人安迪塔内鲍姆(AndrewS.Tanenbaum)为了让学生更好的了解操作体系的原理,就仿照BSD的源代码,编写了一个类UNIX体系,取名为MINIX,意为迷你的UNIX,并且敞开全部代码给大学教育和研讨用;既然是MINI,它的代码体量也是比较小的,全部代码共约12000行,并且仅仅一个教育东西,没有什么实践的运用价值。

  1991年,咱们的主人公Linus Torvalds(简称Linus)在芬兰赫尔辛基大学期间,开端对UNIX产生了浓厚的兴趣;在校期间,由于Linus常常要用他的终端仿真器(Terminal Emulator)去拜访大学主机上的新闻组和邮件,他对MINIX只允许在教育上运用很不满,一起也为了方便读写和下载文件,他开端写归于自己的类UNIX体系;在一个暑假没日没夜的开发中,终究开发出了Linux的第一个内核(0.02版),并取名Linus' Minix,后来改名为Linux。

  1991年10月Linus在Minix新闻组发布消息,对外宣告Linux内核的诞生,并揭露了内核源码;揭露后Linux由于结构清晰、功用简练,一经发布当即收受好评;后来在许多热心支撑者的帮助下,通过多次版别晋级迭代,终于在1994年3月,Linux1.0正式发布。

  Linux的标志和吉祥物是一只叫做Tux的企鹅,它的由来是由于Linus之前在澳洲时,在动物园里曾被一只企鹅咬了一口,便挑选了企鹅作为Linux的标志。

为什么很多程序员都建议使用Linux?

  如同最初汤普森和里奇没有想到UNIX体系的成功相同,Linus也没有想到自己花了一个暑假做着玩的内核体系,竟然能以商品化操作体系的形态,运转在今日全球数十亿台设备上。

  在Linux的官网,有这么一篇文章,什么是Linux,详细的介绍了Linux的功用、内核每个部分作用,以及为什么咱们要运用Linux,感兴趣的童鞋能够看看。

Linux与UNIX的差异和联络

  咱们上面说到了一个词:类UNIX体系,那什么是类UNIX体系呢?

类UNIX体系是指继承UNIX的设计风格演变出来的体系。

  类UNIX体系便是长得像UNIX、但实践不是UNIX的体系;其实本质上便是借鉴了UNIX体系的界面、特性(多用户、多任务等),可是没有直接抄人家的源代码,究竟人家是有版权限制的,因而更多是思想理念上的传承。上面说到的BSD、MINIX体系,以及Linux体系都归于类UNIX体系。由于UNIX规范确定价格昂贵,所以现在唯一取得UNIX规范确定的为苹果的MACOS体系。

  Linux体系和UNIX体系首要有以下差异:

  1. 开源性:UNIX是闭源的,Linux是开源的。
  2. 跨渠道性:UNIX体系大多是与硬件配套的,只能在作业站或小型机上运转,且价格昂贵;而Linux则可运转在多种硬件渠道上。

Linux发行版

  咱们许多时分都能看到Linux发行版这个词,或许又看到说Linux内核怎么样,许多同学容易混淆这两个概念。其实最初Linus开发的Linux仅仅一个内核,是一个供给设备驱动、文件体系、进程办理、网络通信等功用的体系软件,是硬件和软件之间进行通信的桥梁,内核并不是一套完整的操作体系;咱们能够把内核了解为手机的芯片,有了芯片,手机的各个功用才能运转起来,因而内核是整个操作体系的中心。咱们在The Linux Kernel Archives网站能够下载到各种版别的Linux内核,并且对其进行编译。

内核是操作体系重要组成部分,接近于物理硬件,不是操作体系。

  咱们常说的Linux体系,其实更多说的是广义上Linux众多的发行版,由于你并不会直接去操作体系的内核。发行版是指一些安排或厂商将Linux的内核与各种软件、软件包办理器等封装起来,并供给体系装置界面、体系配置和桌面环境等,构成了Linux的发行版。相当于小米、VIVO的手机厂商,将芯片集成到手机里,装上屏幕、外壳、扬声器、电池等等部件,然后把手机整个的卖给你。

  Linux的各个发行版运用的是同一个Linux内核(内核版别或许有差异),因而在内核层不存在什么兼容性问题;每个发行版有不相同的感觉,仅仅在发行版的最外层(比方界面、包办理器)才有所表现。

uname -srm指令能够查看Linux体系的内核版别号。

  Linux的发行版别有许多,其大体能够分为两类:

  • 商业公司保护的商业版别,以著名的Red Hat为代表;
  • 社区安排保护的免费版别,以Debian、Ubuntu为代表。

  有些同学或许会开端疑惑了,上面不是说Linux是开源的吗?为什么还会有商业版?是的,Linux内核是开源的,可是开源不等于免费,商业版收费的是它的商业服务和支撑。

  比方Red Hat尽管运用的都是开源软件,可是付出了许多人工将成千上万的开源软件整合成一个体系,并且保证软件间的兼容性安稳性,供给后续的支撑、保护以及晋级服务,因而它是收费的;假如你氪金氪了足够多,比方购买他们的高级服务,你乃至能够让Red Hat的工程师现场过来给你处理问题。

为什么很多程序员都建议使用Linux?

  许多同学或许仍是觉得开源收费不太能了解,但其实假如你去尝试编译多个开源软件,或许在操作体系时遇到一些莫名其妙的过错,然后你花费几天找遍github、stackoverflow和Google也没有找到问题而苦恼时,你会觉得假如有人能够帮你处理问题是一件十分高兴的事。更何况企业项目在运转时往往都会追求快速上线,计时依照天乃至小时,这个时分快速处理问题就显得十分的重要;这点费用对于企业来说是十分划算的。

这件事告诉了咱们,天下没有免费的午饭,免费往往是最贵的。

  下面咱们简略介绍几个常见的Linux发行版别。

Red Hat

  Red Hat(红帽公司)创立于1993年,是一家开源处理方案供货商,部位于美国北卡罗来纳州的罗亨通。

  1993年,Bob Young 成立了ACC公司,这家公司首要是做邮购业务,主营业务是出售Linux和Unix的软件附件。1994年,Marc Ewing创立了自己的Linux发行版,并将其命名为:红帽Linux,Ewing在就读卡内基梅隆大学期间曾经戴着一顶红色的康奈尔大学长曲棍球帽子,这是他的祖父赠送给他的。Young在1995年收买了Ewing的企业,两者合并成为红帽软件公司,由Young担任首席执行官。

  Red Hat公司的产品首要包含RHEL(Red Hat Enterprise Linux,收费版别)和 CentOS(RHEL 的社区克隆版别,免费版别)、Fedora Core(由 Red Hat 桌面版开展而来,免费版别)。

Fedora

  Fedora Linux是由Fedora项目社区开发、红帽公司资助,方针是创立一套新颖、多功用并且自由的操作体系。

  Fedora对于用户而言,是一套功用齐备、更新快速的免费操作体系;而对资助者Red Hat公司而言,它是许多新技术的测试渠道,因而它的安稳性不如Centos。

CentOS

  CentOS能够了解为是根据Red Hat商业版体系的社区编译重发布版,完全开源免费,因而相较于其他一些免费的Linux发行版会更加安稳,也因而一般企业里常用作服务器操作体系。

Debian

  Debian是现在国际最大的非商业性Linux发行版之一,是由国际范围1000多名计算机业余爱好者和专业人员在业余时间制做。

Ubuntu

  Ubuntu是根据Debian开展而来,界面友好,容易上手,对硬件的支撑十分全面,是现在最合适做桌面体系的Linux发行版,并且Ubuntu的一切发行版都免费供给,也是笔者个人十分喜爱的一个Linux发行版。

  Ubuntu的创始人马克沙特尔沃思(Mark Shuttleworth)是一名有传奇色彩的南非人,他在大学毕业后创立了一家安全咨询公司,后以5.75亿美元被收买,一跃成为南非本地的富翁。2002年马克自费乘坐罗斯联盟号飞船,在国际空间站中度过了8天的韶光,之后创立了Ubuntu社区。他说太空的所见正是他创立Ubuntu的精力地点。Ubuntu这个词也是来源自非洲一个部落,意思是”人道””我的存在是由于咱们的存在”,是非洲传统的一种价值观。

为什么很多程序员都建议使用Linux?

  作为Linux发行版中的后起之秀,Ubuntu在短短几年时间里便迅速生长为从Linux初学者到实验室用计算机/服务器都合适运用的发行版。

如何挑选

  Linux体系的发行版有许多,就不逐一介绍了,在《Linux从入门到通晓》一书中整理了不同的发行版;咱们如何来挑选不同特性的版别呢?

  1. 假如你需求一个服务器体系,想要一个比较安稳的服务器,能够挑选CentOS或许RHEL。
  2. 假如你需求桌面体系,既不想用盗版,也不想在体系配置上糟蹋太多时间,能够挑选Ubuntu。
  3. 假如你喜爱折腾新功用特性可选Fedora。

Linux的优势

  信任计算机科班出身的同学在大学里都会触摸一门课程:计算机操作体系,笔者在大学里,这门课教师让用过一段的时间的Ubuntu开发,做做作业,其时觉得指令行shell就像深不见底的黑洞,太麻烦了,完全没有图形化界面来的方便快捷;可是作业了一段时间,触摸了一下Linux体系,熟悉指令行之后,哎,真香,比Windows好用多了。

  简略介绍一下,笔者也算是Linux体系中度用户吧,个人桌面体系主力尽管是Windows 10,首要是由于之前体系存了许多文件材料等;现在转向运用Ubuntu 22.04体系;自己将家用搁置的一台电脑改造成为家用nas体系,搭载CentOS 7,因而改造的过程中触摸了不少Linux体系的指令,所以就开端自学并喜爱上。

  我信任许多童鞋开端学习和运用Linux体系应该和我相同,首要是在作业中开端的,由于究竟Linux体系下娱乐、游戏、社交功用有限,全面运用Linux体系会带来必定的限制(首要是没有微信),我平常也是将Linux体系作为日常作业和编程开发的一个补充。

PS:steam渠道也支撑Ubuntu了,QQ推出了全新的Linux3.0版别。

  下面简略的介绍几个觉得运用Linux体系的个人引荐观点吧,仅供参阅。

界面优雅美观

  常言道:始于颜值,陷于才调;看惯了Windows下千人一面的图标,说实话,运用Ubuntu 22有一部分原因确实是被它的界面所吸引的。

为什么很多程序员都建议使用Linux?

  打开Ubuntu体系,咱们会发现,整体的风格十分简练优雅。

为什么很多程序员都建议使用Linux?

  许多刚从Windows转过来的小伙伴(包含我自己),一开端触摸Ubuntu桌面,会常常感觉不习惯,常常会疑惑:

桌面的那些我的电脑、回收站等图标都去哪了?

  包含在装置完许多运用后,咱们发现这些运用也不会在桌面留下任何痕迹,没有Windows软件那种装置完后,还要死皮赖脸的请求你创立桌面快捷方法,还给你默认勾选;只要一不留神,你的桌面说不定就多了三四个不常用的图标。

  因而在Windows体系,咱们用过一段时间后会有各式各样冗杂的图标存在;可是Ubuntu就不会有这样的烦恼,用了几个月,我的桌面也仅仅只要刚开端的主目录文件夹存在,加上Foxit Reader创立的一个图标,仅此而已。

  Ubuntu界面的设计者考虑到,大部分用户在作业时,桌面上的图标简直都是被运用窗口遮住,把窗口移开来查找想要的运用是一件十分苦楚的事,因而停用了桌面图标,改用在运用程序中供给了进口;点击右下角的按钮,咱们能够看到一切的程序。

为什么很多程序员都建议使用Linux?

  对于一些常用的程序,咱们能够将它固定到下方的程序坞中,方便随时拜访。Ubuntu给了咱们一个洁净的环境,让咱们能够更专心于当时的作业环境,更少被其他弹框打扰;因而更合适用来干活。

开源

  开源带来的一大显而易见的好处便是,你不必每次装置完体系去找各种Windows激活东西了,信任许多小伙伴都有装完体系被下面各种软件分配的惊骇,不装的话体系各种提示,装了又怕有风险。

  开源意味着运用者能够免费自由运用、查看和修改体系的源代码,这种完全敞开通明的架构对于政府安排或许特殊需求的安排等来说是十分重要的。

  一起你会发现Linux体系有广泛的硬件支撑,乃至能够拿出一台上个世纪老旧的intel飞跃3处理器来运转也能很流通;正是得益于开源的特色,许多程序员不断地向Linux社区供给代码,使得Linux有着丰厚的设备驱动资源,对干流硬件有着很好的支撑,简直能运转在一切干流的处理器上。

  在超赞的Linux软件这篇文章中,作者整理了十分多Linux中开源的软件,也都是日常很有用的软件。

体系安全安稳

  体系安全安稳之于电脑,如同法令对于人们,是最基本的要求和准则。大多数小伙伴应该也是从Windows开端触摸计算机和网络的,因而觉得Windows也能满意日从的作业需求。但客观来说,在安全性、高性能方面,Windows相比Linux依然有不小的距离。

  运用Windows过程中信任咱们在日常中会遇到不少卡顿、蓝屏的状况产生;笔者在之前的公司就遇到IT装完体系,一段时间常常蓝屏死机的状况产生,然后数次重装体系,这在办公时是及其苦楚的。

为什么很多程序员都建议使用Linux?

  可是Linux体系极少呈现卡顿状况,除非你运转多个大型的软件。在我实践的体会中,在同一配置的电脑中,运转相同多软件的状况下,Linux体系的流通度是明显优于Windows电脑的。

  在Windows中,咱们常常会遇到磁盘空间不行的状况,尤其是C盘空间,许多软件都会默认装置到C盘(比方Chrome),或许将缓存文件放到C盘,过一段时间就需求整理;但在Linux体系中不需求。

  首要Linux体系装置完成后,本身不会占用太多的磁盘空间,占用较少的资源;其次Linux体系自身的树形目录结构已经将每个文件的位置规范了,/home是用户目录,/usr软件目录等等进行划分,咱们能够将硬盘格式成一个区,然后直接挂载根目录。

为什么很多程序员都建议使用Linux?

  正是由于Linux体系的安全安稳高效,因而Linux天然合适用来做服务器;无论是企业级的大型服务器,仍是最近盛行的家用nas体系;无论是你用的手机操作体系,仍是看家用大屏电视机,亦或是细巧的机顶盒,Linux体系呈现在生活中的各个角落。

总结

  要想学好Linux,不能只记住几个指令,最好的方法是为自己建立一个Linux的环境,在真实的环境下进行学习;Ubuntu便是一个比较合适初学者的发行版;假如怕装体系麻烦,最简略的方法是在Windows10下装置Ubuntu子体系体会,参阅装置教程,不过有一些指令会被阉割。

  假如手头有搁置移动硬盘,想要真实体会一下Ubuntu体系(虚拟机体会不好),又不想放弃Windows体系,能够将Ubuntu环境装置到移动硬盘,打造自己的个人移动作业渠道;这样你不管是在办公室仍是回家干活,只需求随身携带一块小小的硬盘就能轻松将作业用到的一切材料打包带走,保持作业的进度和环境。

  刚装完体系,看着空荡荡的桌面,你或许会不知所措,或许会苍茫Ubuntu体系下能够做什么?;双击装置exe不再存在了,而是通过指令行来装置,乃至连接网络也要敲指令,当你熟悉指令行的环境后,你会发现这是一种高效的方法,也是另一种的体会。借用一位知乎长辈的话:

Windows为不知道自己正在做什么的人设计,Linux为知道自己要做什么,正在做什么的人设计。

  在这里,你能够做任何事,你能够热衷于更换各种酷炫的桌面和主题,也能够享受学习带来的无穷乐趣;先是指令,再是shell脚本,建立服务器,学习数据库,布置自己的网站等等;我信任,你也会喜爱上这个简练而优雅的开源国际。

更多文章: Linux下好用的神级办公软件

假如觉得写得还不错,敬请重视我的主页。更多文章请拜访谢小飞的博客