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族谱族谱告诉我们,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
基于其发展之后,逐渐独立开来了。
综上:
-
Linux
是基于Unix
的,它们都是内核 -
Linux
更加开放(注意:不止开源) -
Linux
和Unix
基础命令没有什么区别
所以入门学习中,我们尝试使用Linux
,Unix
无太大差别。
那我们继续往下,那么我们所说的Linux
是什么?
三. Linux发行版本
中文是个神奇的东西,一个Linux
就可以代表英文意思中的Linux
和Linux 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
!
因而,世界上这么多发行版本……它们总有这么个共同点,而最大的不同,可能是包管理器
不同,就是安装软件的方式不一样,可能还有一些为了方便系统操作的,不同版本自己开发的一些工具。除此之外,几乎没有什么相关的差别了。包括两大“邪教”,Archlinux
和Gentoo
,只要突破了安装的界限,Gentoo
可能还要突破内核的问题,等你所有系统配置完成,基本上都是一样的了。
四. 多用户是它的特点(别个也有这个特点)
你试试在Windows
上面实现同一时刻多个用户连接?(XP时代,过时的挑衅)
肯定不行的,别问我怎么知道的(继续过时的自信)。而Unix
创建的初衷就是满足多用户同时登录一个电脑,Linux
继承了Unix
,明显这一特性也被继承了。我们可以多用户同时登录一个电脑,而且这些用户的权限也可以安排得明明白白。
至于有什么实际意义?牛逼不就行了吗?
不是,不是,不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,是个很高效的处理方式。一个工厂中每个人都有分工,而且这些分功也及其明细,因而处理任务清晰透明,你完全可以清晰明了得掌握这些信息,你是掌控着,学习好管理的技能,你能将整个系统安排的高效清晰。
而,对不起,Windows
实际上也已经是多用户系统了。
所以,Linux
唯一剩下的优势是:稳定。
五. 稳定!
说起Linux
,肯定是它的稳定性极佳。Linux
与生俱来的就是那种“永不停机”的气质,造就了它现在的成就。
当然,这个只是看哪些发行版本,有些发行版本把本来的稳定性践踏得一无是处。
排除这些一无是处的版本,还是有很多很好的发行版本的。
而明显Linux
发行版本很多,Windows
一次只有一个主打版本,Mac OS
同理。
所以还是人多比较打得赢架啊!
别了,直接总结
说了那么多,到底那些教科书告诉我们的东西,真的已经过时了,这个时代发展得这么快,Windows
都能兼容Linux
了,还有什么好意思去对比两者好坏的?那些曾经Linux/Unix
具有的特点,在我们认为Windows
没有的现在它都有了,优势全无。
但是,很遗憾,Windows
还不是个很好的开发平台。
Linux
还能做很多事情:
- 具有强大的命令行界面
- 用户更贴近内核
- 内核源码是这个世界上最优秀的代码构成的
- 服务器部署超于
Windows
- 能搭建优秀的开发平台
- 编译特性使软件更适配硬件
- ……
当然,最重要的因素,还不过是高逼格吗?
……
那你为了什么学习它呢?
本文作者: 极木|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 许可协议。转载请注明出处!