Re:Linux系统篇(五)指令篇 ·四:shell外壳程序及其工作原理


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



文章目录


概要&序論

这里是正在准备完结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,有相同的作用:

  1. 解析指令:对我们的指令进行解析,解析指令给 Linux 内核。
  2. 反馈结果:反馈结果在通过内核运行出结果,通过 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)挂掉。

好了,本期内容到此结束,我是此方,我们下期再见。バイバイ!

相关推荐
其实防守也摸鱼2 小时前
sqlmap下载和安装保姆级教程(附安装包)
linux·运维·服务器·测试工具·渗透测试·攻防·护网行动
焦糖玛奇朵婷2 小时前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
jingyu飞鸟2 小时前
Linux系统发送邮件,解决信誉等级低问题 docker compose修改启动一键使用
linux·运维·docker
Lumos_7772 小时前
Linux -- exec 进程替换
linux·运维·chrome
李白客2 小时前
国产数据库选型指南:从技术路线到实战要点
运维·数据库·数据库架构·迁移学习
数智化精益手记局2 小时前
人员排班管理软件的自动化功能解析:解决传统手工人员进行排班管理耗时长的难题
运维·数据结构·人工智能·信息可视化·自动化·制造·精益工程
jy41932172 小时前
VPS 网络质量怎么测?一篇讲清楚多节点 ping、tcping 和回程路由
运维
爱吃芹菜炒肉3 小时前
Chapter 16: Power Management
服务器·c语言·网络·tcp/ip·pcie
wicb91wJ63 小时前
Nginx反向代理与负载均衡配置详解
运维·nginx·负载均衡