Linux(五) 之 bash工作原理

磨刀不误砍柴工,理解bash工作原理,就好比为学习Linux打好了地基
一. Linux的基本原则:
1、由目的单一的小程序组成;组合小程序完成复杂任务;
2、一切皆文件;
3、尽量避免捕获用户接口;
4、配置文件保存为纯文本格式;
Linux加载过程:
Linux(五) 之 bash工作原理
文章图片

二. bash命令工作流程:
概念:
bash也就是/bin/目录下的二进制程序了,比如ls,mv,cp等等
首先简要介绍下,在Linux下,kernel内核暴露了300多个系统调用的接口,即system call 300多个,比如:work(),open(),close(),fstat(),fork()等等.
所有的程序都最后脱离不了调用这300多个接口(这300多个接口放在/lib或者/lib32或者/lib64下),就好比所有的java程序脱离不开jdk一样.
首先装一下strace,用来查看命令的工作流程
yum install strace -y
Linux(五) 之 bash工作原理
文章图片

1.查看ls的命令流程
Linux(五) 之 bash工作原理
文章图片

more t2即可看到ls命令流程了
Linux(五) 之 bash工作原理
文章图片

可以流程一步一步分析
2.流程图:
Linux(五) 之 bash工作原理
文章图片

【Linux(五) 之 bash工作原理】1)首先由init启动Linux系统,加载好系列的文件
2)用户输入命令,终端捕获到.
3)进行字符串解析.
4)找到对应的/bin/bash
5)将对应的bash通过fork复制到内存当中
6)bash通常由很多system call接口构成,按其顺序压入栈中,而将数据存入堆中.
7)由内核一个一个调用.

    推荐阅读