shell的工作原理

本文旨在讲解shell的工作原理,希望读完本文,能使读者对shell的工作原理有一定的认识,废话不多说,开唠!


在讲解shell的工作原理之前,我要首先给大家讲一下什么是操作系统,以Linux操作系统为例:

狭义上的操作系统:指的就是我们的Linux中的内核!

广义下的操作系统:就是Linux内核+Linux外壳以及相配套的程序!


既然简单介绍了什么是操作系统,那么我们就来分享一下什么是Linux外壳呢?其作用是什么呢?以及存在的意义是什么呢?

如果想要了解shell,我们就得从是什么,为什么,怎么做这几点进行分析,那么下面我就简单的举一个例子来介绍一下shell把!

小故事:

假如呢有一个程序员小王,他毕业了,找到了一个不错的工作,家里条件也差不多,但是呢,他却没有对象,因为其是一个程序员么,技术宅,经常跟电脑打交道,很少跟外人进行接触,自然呢,连对象也没有,于是等他毕业之后,家里人也开始催他找对象,但是家里人一想,这孩子确实挺内向的,如果让他自己去找对象,那比登天还难,于是他的母亲,就找了一个媒婆王婆,来对他进行说媒,简单询问小王之后,发现小王对其隔壁那个姑娘翠花感兴趣,想要和她交往,那么王婆就说没问题,小王,专业的事交给专业的人来做,你的亲事我来替你办,于是呢王婆就去隔壁翠花家表示小王对其有意思,想和她进行交往,但是翠花不喜欢小王,于是就将王婆给拒绝了,于是王婆就返回小王家对小王说,隔壁翠花不喜欢你。听到这,小王也就没再多想了!就不再让王婆找翠花了!

到这里,从这一段故事中可以看出,我们将王婆简单的比喻成外壳,翠花比喻成内核,小王就是用户,因为小王不熟悉相亲这种事,于是找了专业的王婆来进行了说亲,这里我们可以看出外壳有一个特点就是将用户的指令转交给内核,以及内核的返回信息再转交给用户!

故事后序:经过一次的相亲之后呢,小王还是忘不了翠花,于是又找王婆让其再次去说媒,王婆想,既然孩子都说了,那就再跑一趟吧,这次呢,没等王婆进入到翠花家里,王婆就看见隔壁的小张和翠花的一家其乐融融的坐一起吃饭呢,这时王婆想,人家都发展成这地步了,你小王肯定没戏了,于是这次王婆根本就没有进入到翠花家,直接就返回到小王家,对小王说,小王,放弃吧,人家都有意中人了!

对于第二次,当王婆发现了问题之后,就不再直接访问翠花家了,而是直接告知小王让其放弃,对于这,我们可以理解成,用户发出的指令不行,直接被外壳程序进行了拦截,可以看出外壳程序会对内核做出保护的机制!!

故事最后:小王还是不死心,再次找到了王婆,可是王婆想了想,人家都到了谈婚论嫁的时候了,你再进去就不合适了,王婆想,我做的可是方圆五公里的相亲呀,不能因为你而败了我的名声呀,又因为王婆比较成功,其名下有婚介所,所以其就让实习生来帮小王进行说媒,这样也不会败了我王婆的名声!于是王婆就让实习生上去帮小王!如此反复.....

对于最后这里,王婆发现小王根本不行,于是找了实习生进行替她操作,防止因为这件事,影响她的名声,这里我们可以简单的理解为shell自己不做,而是让其下面的子进程进行操作,而其自己继续接受其他命令行!

读完这个小故事,应该对shell的工作原理有了一定的认识! 下面就来总结一下吧!

是什么:

所谓的Linux外壳,其实就是用户与内核交互的中间媒介!

作用是什么:

其作用就是将用户输入的指令传递给内核,然后内核执行完命令之后,得到结果,通过外壳再传递给用户。可以看出外壳的作用就是一个中间的媒介!

为什么要存在:

1.进行命令解释

2.保护内核!(用户不清楚内核的属性!)

如何进行工作的

1.通过创建子进程,让子进程进行执行命令!(其中子进程就相当于故事中的实习生!)

2.父进程,继续进行命令行获取!(父进程就是王婆,而shell就是那个婚介所!)

总结:

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户


至此,就简单了介绍了shell的工作原理,希望能对读者有一定的收获!

上一篇:基于 StarRocks 的风控实时特征探索和实践


下一篇:如何为企业策划一场XR虚拟直播?