
◆ 博主名称: 晓此方-CSDN博客 大家好,欢迎来到晓此方的博客。
⭐️Linux系列个人专栏: 【主题曲】Linux
⭐️ Re系列专栏:我们思考 (Rethink) · 我们重建 (Rebuild) · 我们记录 (Record)

文章目录
- 概要&序論
-
- [一,Linux 内核与 Shell 的关系](#一,Linux 内核与 Shell 的关系)
概要&序論
这里是正在准备完结C++的此方 本文作为指令篇的最终篇,不介绍更多的指令了,我们来聊一聊:Linux的指针的原理------shell外壳程序及其工作原理。(本文内容篇幅较短)
一,Linux 内核与 Shell 的关系
1.1什么是Shell?
Linux 严格意义上说是一个操作系统,我们称之为 "核心(kernel)" ,但我们一般用户,不能直接使用 kernel。而是通过 kernel 的 "外壳" 程序,也就是所谓的 shell,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel?
从技术角度,Shell 的最简单定义:命令行解释器(command Interpreter) 主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 同时,将核心的处理结果翻译给使用者。

1.2类比与作用
所有的图形化界面和命令行终端/控制台 ,都可以认为是外壳程序。安卓也可以理解成包裹着Linux内核的外壳程序。
对比 windows GUI,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入 D 盘的操作,我们通常是双击 D 盘盘符,或者运行起来一个应用程序)。
shell 对于 Linux,有相同的作用:
- 解析指令:对我们的指令进行解析,解析指令给 Linux 内核。
- 反馈结果:反馈结果在通过内核运行出结果,通过 shell 解析给用户。
1.3用一个例子来帮助更好的理解
以下内容纯属瞎编
村里有个程序员叫小王 ,不仅闷骚,还特别宅。他的生活里只有 0 和 1,让他去敲代码他在行,但要让他去面对村头那个美若天仙、却高冷的 小花 ,他瞬间就会因为"系统过载"而死机。
小王深知,小花就像家里最精密的保险箱,直接硬闯不仅会被当成流氓(非法指令),还可能被小花反手一个"防御性重置"。于是,小王找到了村里路子最广、嘴皮子最溜的王婆。
第一访:初试成功
小王对王婆说:"帮我问问小花,能不能给我一张她的近照(获取数据)。"
王婆扭着腰去了,她深谙小花的脾性,把小王的"宅男黑话"翻译成了体贴的问候。小花点点头,把照片交给了王婆。王婆喜滋滋地跑回来,把照片递给小王,顺带还说了一句:"妥了,返回值:0(执行成功)!"
第二访:惨遭拒绝
过了一周,小王胆子大了,让王婆去问:"小花,能把你的存折密码告诉我吗?"
王婆这回刚开口,小花脸就绿了,直接把王婆轰了出来,并附赠了一个大大的白眼。王婆灰头土脸地跑回来对小王摊摊手:"别想了,权限拒绝,错误码:403(Permission Denied)。"
第三访:实习生顶包(关键一战)
第三次,小王心血来潮,非要王婆去问小花能不能一起去吃火锅。王婆刚走到小花家门口,扒着窗户一看,心凉了半截------小花正和隔壁帅气的小帅 共进晚餐呢!
王婆心想:"坏了,这要是把这消息直接传回去,依小王那玻璃心,不得直接崩溃、当场撒手人寰(进程崩溃)啊?要是小王挂了,谁给我发佣金(系统停摆)?"
为了保住自己的名声和系统的稳定,王婆灵机一动,转头从兜里掏出一个分身符,变出了个实习生(子进程) 。王婆叮嘱实习生:"你去,把这个'修罗场'的情况确认一下。要是真成了,你回来报信;要是出事了,你被骂就被骂了,反正别连累老娘。"
结果,实习生果然被愤怒的小花一扫帚赶出了家门(子进程报错退出)。王婆站在远处安全区观察着,拍拍胸口,镇定地走回小王家,把实习生的遭遇润色了一下报给小王。王婆(父进程)依然稳如泰山,随时准备处理下一次请求。
1.4核心架构拆解
看完这个故事,你会发现 Linux 的设计逻辑简直神了。以下是角色与技术的真实对应关系:
| 故事角色 | 计算机术语 | 底层逻辑说明 |
|---|---|---|
| 小王 | User (用户) | 拥有主观意愿但不具备操作硬件权限 ,且操作具有不确定性。(保护内核) |
| 小花 | Kernel (内核) | 掌控 CPU、内存等核心资源。为了安全,严谨非授权直接访问(隔离机制)。 |
| 王婆 | Shell / Bash | 命令解释器。充当用户与内核之间的"防火墙"与"翻译官"。 |
| 翻译/沟通 | Command Parsing | 将人类可读指令转换为内核能听懂的系统调用 (System Call)。 |
| 报错/白眼 | Exit Code | 程序执行后的状态码 。0 表示成功,非0(如 127, 139)表示翻车。 |
| 王婆分身 | fork() & exec() | 核心黑科技 。Shell 会通过 fork 创建一个子进程去执行危险任务。 |
| 分身阵亡 | Process Isolation | 子进程即便崩溃(Crash),也不会导致父进程(Shell)挂掉。 |
好了,本期内容到此结束,我是此方,我们下期再见。バイバイ!