关注我,持续学习linux技术!
如果你是第一次看到或听到这个词,一定会很茫然,Linux到底是什么呢?它可以做什么?我们为什么要学习它呢?这些问题阿铭下面就为你逐一揭开谜底。
Linux呢,简单讲就是一个操作系统,跟我们平时使用的Windows一样,我们可以在上面运行各种各样的软件。比如,可以打开PPT,可以看视频,可以玩游戏。在我们身边,其实到处都是Linux的身影,比如大家使用的Adroid手机,这个手机里的系统其实就是基于Linux内核改造的。除了这个Android外,Linux使用最广的领域当属服务器领域。
那服务器又是什么呢?我们暂且把服务器当成公司用的电脑吧,虽然说法不太恰当,但,的确是公司使用的,我们个人是不可能用到服务器的。公司用服务器做什么呢?在解释这个问题之前,你可以先思考一个问题:你平时手机里哪个软件使用最多?微信?抖音?支付宝?王者荣耀?阿铭觉得微信肯定首当其冲,毕竟微信是大家相互沟通、支付的必要工具。你想一下,你的微信在没有网的情况下是不是啥都干不了?那你有没有思考过,为啥没有网,我们手机里的微信不能用?
这是因为,手机里的微信叫做客户端软件,其实还有一个服务器在腾讯的机房里放着,你的微信客户端想要收到好友的信息,必须要和远程的微信服务器通信。而Linux主要用于服务器领域,也就是说,服务器上安装的操作系统大部分都是Linux,当然还有一部分是Windows或者Unix。这个Unix又是个什么鬼?Unix也是一种操作系统,不过是收费的,通常都是和服务器打包卖的,就比如苹果的操作系统Mac OS就只能安装在苹果的电脑里。
这个Unix和Linux还是有一些渊源的。在Linux诞生之前,那会电脑并没有像现在这么普及,而是只有大学或者一些有钱的企业才用到。毕竟那时候,计算机硬件和软件都是非常昂贵的,所以那会计算机上跑的系统基本上都是Unix,其实刚才提到的Mac OS也是一种Unix。而比尔盖茨的Windows离问世还有十万八千里呢。Unix操作系统最早是给大学里免费使用并且开源的,所以不管是老师还是学生都可以免费学习它。但后来可恶的资本家为了赚钱把Unix不再开源和免费给大学使用了。所以,这时候就有一个大学计算机教授模仿Unix开发了一个叫做Minix的微型操作系统,它是专门用来给学生教学用的。随着时间推移,在1991年的时候出来一个很牛逼的学生,他的名字大家一定要记住哈,叫做Linus Torvalds,他因为对Minix感兴趣,然后就自己基于Minix开发了一个新的操作系统,Linus给它起了一个名字就叫做Linux。
不过Linux仅仅是个内核,我们还不能在上面运行软件呢。说到这个内核,你也许存在疑问,它跟操作系统有啥关系呢?内核,其实就是操作系统最核心的组件,就像我们的大脑控制我们的身体一样。内核主要负责管理系统的进程、内存、设备驱动程序,还有文件、网络都得靠内核来管理和调度。我们电脑里的网卡、声卡、显卡的驱动都是靠内核来实现的,内核工作机制非常复杂。阿铭觉得,大家刚刚接触Linux,所以我们不需要在这些细节上花太多时间,毕竟工作中根本就不会涉及到这么底层的东西,大家做个简单了解就够了。
Linux内核是完全开源的,所有人都可以下载它的源代码,可以说Linux就是免费的。既然Linux开源免费,那么是不是意味着有很多人使用才对。但事实上,Linux在个人电脑领域用的并不多,至少在咱们国内用的人不多,这是因为Linux在图形化方面确实没有Windows体验好,而且有一个很关键的因素,就是在咱们国家Windows盗版太多了,盗版也不用花钱啊。个人用户虽然少,但是服务器上绝大多数安装的系统可都是Linux。
还是继续之前的故事吧,其实在Linus开发出linux内核之前,就已经有一个叫做Richard Stallman的牛人看不惯Unix收费和不开源,在1983年的时候发起了一个运动,我们把它叫做GNU,Richard发起这个运动的目的为了打造出一套完全开源免费的操作系统。为了让该运动更具影响力,Richard在1985年创立了Free Software Foundation,翻译成中文叫做自由软件基金会。其中,比较出名的软件,像GCC、Emacs、GNOME都是基于GNU的,只不过GNU一直都没有开发出一个合适的内核,直到Linus把Linux公开,GNU Linux才组成了一个完整的操作系统。
关于GNU,还有一个非常重要的概念,叫做GPL,它是GNU运动为保证其软件在后续的发展中仍保持开源开放而为其软件设立的“使用条款”。其最大的特点是要求任何人基于使用了GPL许可证发行的软件修改而成的软件都必须开源。其中Linux就是使用GPL发布的。
既然Linux是免费开源的,所以,在Linux刚刚发布的那几年,基于Linux的发行版就如雨后春笋般纷纷冒了出来。业界有太多Linux发行版,有一些你可能听过,比如Redhat、Ubuntu、麒麟、深度等。
麒麟和深度是咱们国内的发行版,其中深度在业界叫做Deepin,它是基于Debian来的。其实,Linux从正式发行以来,衍生的发行版都有好几千了,只不过能够存活下来的都是有组织有企业支撑的,个人开发的发行版一般都不会太长久。毕竟,开发一个操作系统是需要花费大量人力和才力的。下面阿铭就说几个比较出名的发行版吧。
Debian是1993年诞生的,基于Debian在2004年又诞生了一个Ubuntu发行版,Ubuntu流行度非常高,在国内使用Ubuntu的个人爱好者很多。
Slackware也是1993年诞生的,基于它在1994年又诞生了SUSE发行版。阿铭当时在腾讯工作时,腾讯有不少服务器安装的系统就是Slackware。
Redhat是1994年诞生的,基于Redhat在2003年诞生了CentOS,其实CentOS在咱们中国用的非常非常多,只不过2014年被Redhat收购,然而Redhat公司在2019年被IBM收购,后续2020年Redhat宣布CentOS将终止既定的维护计划,这对国内使用CentOS的公司来说并不友好,所以后续CentOS这个发行版最终会被时代遗弃。
国内的红旗RedFlag是1999年诞生的,不过发展并不怎么好。
Redhat的企业版RHEL是2002年诞生的,上面提到的CentOS就是基于这个RHEL来的。
阿铭在后续章节用的Linux系统叫做Rocky Linux, 为什么要学它呢?这得先说说CentOS的历史。其实,在前些年服务器领域使用量最多的发行版是CentOS,因为CentOS是基于RHEL来的,可以说它和RHEL几乎一模一样。而CentOS是完全开源免费的,既免费又稳定的好东西,大家没有理由不用啊。在CentOS发展如火如荼之际,Redhat公司意识到CentOS的存在严重影响到了他的商业收益。所以,Redhat不惜重金收购了CentOS。既然都卖给了Redhat,那么CentOS就注定了走向灭亡。毕竟Redhat肯定不会继续让CentOS成为它赚钱的绊脚石。
之前的CentOS改名为CentOS Stream了,红帽又将这个CentOS Stream作为了RHEL发行版的上游产品,也就是说新出来的各种软件先到Stream上跑,跑一段时间没有啥bug了,再往RHEL上放。而早期的CentOS就是RHEL的下游产品,它是等RHEL发行后,再基于它的源码进行编译来的。阿铭接下来用的Rocky就是RHEL的下游发行版。所以说你学Rocky就是在学RHEL。在这里有几个时间点,阿铭觉得你有必要了解一下。2019年的时候,Redhat推出CentOS Stream版本,然后就宣布了两个事情:CentOS8于2021年12月31日停止维护,而CentOS7于2024年6月30日停止维护。
目前,企业中使用CentOS8的并不多,但是使用CentOS7的太多了。好在Redhat给大家留了足够多的时间。那么,到时候企业会选择什么发行版呢?阿铭觉得,无外乎两大分支:RHEL系列、Ubuntu系列。
再来说说Rocky Linux吧,CentOS被收购后,发版规则发生了变化,所以早期的CentOS缔造者肯定是不爽的啊,所以这帮人又重新搞了一个开源社区发行版Rocky Linux。阿铭让大家学Rocky并不是说让你以后在企业里用它(当然你用也没有任何风险),而是因为Rocky就是基于RHEL来的,它就像早期的CentOS一样,是RHEL的下游产品,非常稳定而且完全免费。再一个重要原因,很多发行版都是基于RHEL或者兼容RHEL的,比如Oracle Linux、阿里云的服务器系统、aws的、腾讯云的、国产操作系统麒麟、华为openEuler等。所以,你学了Rocky,那么你也就掌握了其它类似的发行版。
在我们身边,其实还有一些使用Linux系统的领域,比如银行ATM机、门禁、自动售卖机等。可以说,在IT技术领域,大部分工作岗位都和Linux有关联,比如你做嵌入式开发要懂Linux吧,因为嵌入式就是在Linux里做的。做网络也要懂Linux吧,因为很多网络设备系统就是Linux。做后端开发也要懂Linux,因为开发的程序跑的服务器是Linux。而做运维的呢,更得懂Linux,毕竟运维每天都要和服务器打交道。
关注我,持续学习Linux技术。
,