Linux - [0.2] - Linux的意义


前文所及,我们谈到了Linux使用的一些简单操作,包括源的配置以及升级系统。而只讲了操作,未提及其意义。

为什么我要用Linux呢?好好的Windows不能用吗,Linux拿来做些什么?

一. Linux是个内核!

我不想挑起什么战争,但是你必须承认,Linux只能是个内核,不信你去最官方的网站去看看:https://www.kernel.org/。想搞清楚这两个概念需要丰富的操作系统知识,因为你没法搞清楚计算机操作系统和计算机操作系统内核的关系,因为两者很模式。

毋庸置疑,操作系统肯定包括操作系统的内核!不然也找不到这两者之间的关系了。如下图:

一个操作系统子程
一个操作系统子程

我们不需要理解什么是子程,只管直观感受。Linux就是上图中的内核,负责与硬件交互,为系统提供系统调用接口。内核是这个大型系统中的一个翻译官,负责打造硬件和操作系统的沟通渠道。

而无论是什么操作系统,都有一个内在的东西——内核,我们没法比较内核的好坏,每个内核都有自己的优缺点,而且时代在进步,它们自身也在不断地被修进创新。

无论是MAC还是Windows,我们知道MAC用的是Unix,而Windows自然是自己的内核,唯一的区别是我们可以很随意找到Unix的内核源码,Windows全系列商业化,很难找得到。而Linux又是基于Unix进化的,不能说是更加先进,有些特性还需要考虑比较充足的各种因素才能分出特定方面的高下。

有传闻说Windows也是源于Unix,这个我不清楚。我们也不是史学家,不必深究这系列的事情。

那么既然内核都是一样的,我们为了什么去使用Linux呢?而Linux又是基于Unix的,那么我们为什么不去学习它的老祖宗Unix呢?

先列出Linux(内核)的几个优点,我们再做相关的分析。

  • 多任务
  • 多用户
  • 多进程
  • 授权保护
  • 系统权限分明
  • ……

二. Unix还是Linux

我找到了一张网上的图片,来自知乎上的问题:“‘MacOS X是基于Unix内核的操作系统’这句话对吗?”。在此称之为族谱吧。

Unix族谱
Unix族谱

族谱告诉我们,Linux源远流长!(当然这个说的是系统,非内核)。

我们可以直接提出Unix -> Linux,但Unix还是存在的,这个可以叫做衍生版本。Linus Torvalds尝试并去完善这个版本,Linux最初名Freax,即为 “自由(free)”+“奇异(freak)” + x(UNIX 系统)的结合字,为啥改名了呢?谁知道,我只知道它有这些特性就够了。

而且Linux基于Unix内核,所以说两者有很大一部分是通用的。

因而在基础入门的过程中,两者是没有太大区别的,我能在这里使用的东西,也能在那里实现。而且!它们只是内核!

我们现在所谓的“学习Linux”只不过是在“学习Linux上的软件工具”,和Linux或者Unix有什么关系?不过是运行在它上面的一些代码而已!

在某些特定的方面,Unix可以说是更加窄向的,初衷还是商业化目的的;而Linux的目的,初始估计只是Linus本人对技术的热爱罢了。我们是不是更喜欢和单纯的人呆在一起呢?

当然,说的是玩笑话。确实Linux相对于Unix更加开放化,而且维持力度更宽泛,在未来发展中趋势更好。不过那是过去的言语,现在在我看来,两者有点竞争关系,Unix还是在继续发展当中的,而Linux基于其发展之后,逐渐独立开来了。

综上:

  1. Linux是基于Unix的,它们都是内核
  2. Linux更加开放(注意:不止开源)
  3. LinuxUnix基础命令没有什么区别

所以入门学习中,我们尝试使用LinuxUnix无太大差别。

那我们继续往下,那么我们所说的Linux是什么?

三. Linux发行版本

中文是个神奇的东西,一个Linux就可以代表英文意思中的LinuxLinux System,具体是什么意义,我们可以全靠意念去交流的(手动滑稽)。

回到正题,我不是专业人士,我给Linux下了个定义,它只能是个内核。至于其他人怎么理解,完全与本文章无关,本文只是代表个人观点。综上,在“学习好Linux”的问题下,我的定义直接是学习内核!而入门,当然不接触到内核本身,我们只是去接触内核外表,专业名词叫做Shell,所以我们可以通过的是Shell来入门Linux。而这个Shell可以理解成内核中的一层壳,而这个壳是你能够接触到的。

因而来看一下发行版本,我们先前使用的一个系统叫做Debian,它和Windows 10还有Mac OS是同等地位的,这个才叫做操作系统。

说一下Debian,一个内核是Linux的操作系统。行话就叫做Linux发行版本,想了解世界上有些什么发行版本的话,可以点击这个网站查看: DistroWatch.com

毫无疑问的,世界发行版本千千万,而实际上我知道的也就那么一两个,Debian是其中一个。许多系统是基于Debian的,常说的Ubuntu和国内很火的Deepin都是基于Debian开发的。而过去几年的Mint是基于Ubuntu的,至于现在(2019-01-13)排名第一的系统Manjaro,是基于Archlinux的,至于Archlinux是什么……

请不要纠结! 它们都是一样的!

它们都一样的,内核是Linux,外边是一层Shell,而Shell又是一个程序,市面上不过就是三个主流Shell,一个是Bash,一个是Zsh,还有一个挺简单的Fish。最普遍的是Bash,我们之前创建的虚拟机,Debian默认用的就是Bash

所有的发行版本,除去图形界面的问题,都是在用Shell在交互,而交互中使用的字符被称为命令,而命令只要用的是同一个Shell,功能效用基本上是一个样子的。

懂了吧,我们用的,要记的,命令,所谓的Linux命令,不过是Shell命令或者是一些程序

那我们目标明了,向着Linux学习,入门——Shell,基础——Linux!

因而,世界上这么多发行版本……它们总有这么个共同点,而最大的不同,可能是包管理器不同,就是安装软件的方式不一样,可能还有一些为了方便系统操作的,不同版本自己开发的一些工具。除此之外,几乎没有什么相关的差别了。包括两大“邪教”,ArchlinuxGentoo,只要突破了安装的界限,Gentoo可能还要突破内核的问题,等你所有系统配置完成,基本上都是一样的了。

四. 多用户是它的特点(别个也有这个特点)

你试试在Windows上面实现同一时刻多个用户连接?(XP时代,过时的挑衅)

肯定不行的,别问我怎么知道的(继续过时的自信)。而Unix创建的初衷就是满足多用户同时登录一个电脑,Linux继承了Unix,明显这一特性也被继承了。我们可以多用户同时登录一个电脑,而且这些用户的权限也可以安排得明明白白。

至于有什么实际意义?牛逼不就行了吗?

不是,不是,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,是个很高效的处理方式。一个工厂中每个人都有分工,而且这些分功也及其明细,因而处理任务清晰透明,你完全可以清晰明了得掌握这些信息,你是掌控着,学习好管理的技能,你能将整个系统安排的高效清晰。

而,对不起,Windows实际上也已经是多用户系统了。

所以,Linux唯一剩下的优势是:稳定。

五. 稳定!

说起Linux,肯定是它的稳定性极佳。Linux与生俱来的就是那种“永不停机”的气质,造就了它现在的成就。

当然,这个只是看哪些发行版本,有些发行版本把本来的稳定性践踏得一无是处。

排除这些一无是处的版本,还是有很多很好的发行版本的。

而明显Linux发行版本很多,Windows一次只有一个主打版本,Mac OS同理。

所以还是人多比较打得赢架啊!

别了,直接总结

说了那么多,到底那些教科书告诉我们的东西,真的已经过时了,这个时代发展得这么快,Windows都能兼容Linux了,还有什么好意思去对比两者好坏的?那些曾经Linux/Unix具有的特点,在我们认为Windows没有的现在它都有了,优势全无。

但是,很遗憾,Windows还不是个很好的开发平台。

Linux还能做很多事情:

  1. 具有强大的命令行界面
  2. 用户更贴近内核
  3. 内核源码是这个世界上最优秀的代码构成的
  4. 服务器部署超于Windows
  5. 能搭建优秀的开发平台
  6. 编译特性使软件更适配硬件
  7. ……

当然,最重要的因素,还不过是高逼格吗?

……

那你为了什么学习它呢?


本文作者: 极木|Gemo
简书链接: https://www.jianshu.com/p/74a83c1c228e
博客链接: https://blog.gemo.one/coding/268/linux-0-2-linux的意义/by/gemo/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!