在之前的博客中,我使用 C 和 Python 分别实现了一个简单的 Shell,这是一个很有意思的小程序,可以让你了解你每天都在使用的工具。而在简单的 Shell 之下则是一系列的系统调用,例如:read, fork, exec, wait, write等等。现在让我们继续这段旅程,开始学习这些系统调用是如何在 Linux 中实现的。
在之前的博客中,我使用 C 和 Python 分别实现了一个简单的 Shell,这是一个很有意思的小程序,可以让你了解你每天都在使用的工具。而在简单的 Shell 之下则是一系列的系统调用,例如:read, fork, exec, wait, write等等。现在让我们继续这段旅程,开始学习这些系统调用是如何在 Linux 中实现的。
本文参考自Write a Shell in C
让我们自顶向下的思考一下 Shell。一个 Shell 在它的生命周期里主要做了三件事。
初始化:Shell 会在初始化时读入和执行配置文件。这会改变 Shell 接下来各方面的行为。
解释:Shell 在解释阶段(也就是等待用户输入的阶段)读入标准输入的命令并解释执行。
终结:在用户输入 shutdown 命令后,Shell 会释放掉占用的内存并终结自己。
Update your browser to view this website correctly. Update my browser now