UNIX的一条哲学是让每个程序尽量独立的做好一个小的功能 。而shell充当了这些小功能之间的“胶水” , 让不同程序能够以一个清晰的接口(文本流)协同工作 , 从而增强各个程序的功能 。这也是Linux老鸟鼓励新手多用shell , 少用图形化界面的原因之一 。
(shell也有很多种 , 最常见的是bash , 另外还有sh , csh , tcsh , ksh 。它们出现的年代不同 , 所支持的功能也有差异 。)

一个使用bash shell的终端
一个shell对应一个终端 (terminal) 。曾经来说 , 终端是一个硬件设备 , 用来输入并显示输出 。如今 , 由于图形化界面的普及 , 终端往往就像上图一样 , 是一个图形化的窗口 。你可以通过这个窗口输入或者输出文本 。这个文本直接传递给shell进行分析解释 , 然后执行 。
最后 , 我们进入一般的应用 。应用是一个程序 , 它可以
1.直接调用系统函数
2.调用库函数
3.运行shell脚本
这些应用可以由多种语言开发 。最常见的是C语言 。
总结
Linux利用内核实现软硬件的对话 。
通过系统调用的这个接口 , Linux将上层的应用与下层的内核分离 , 隐藏了底层的复杂性 , 也提高了上层应用的可移植性 。
库函数利用系统调用创造出模块化的功能 ,
Shell则提供了一个用户界面 , 并让我们可以利用shell的语法编写脚本 , 以整合程序 。
上面就是Linux系统架构的介绍了 , 从文中的图片可以看出 , Linux系统主要由硬件、内核、系统调用、shell、库函数这几个部分构成 , 通过本文的阅读相信你对Linux系统有了一定的了解 。
推荐阅读
- aqm-al00是华为什么型号
- 如何练习减肥、瘦身瑜伽?在瑜伽书里是两个字
- oc105是什么手机
- 孩子问为什么要上班,父母应该如何回答
- 洗水标图案各代表什么
- 母亲总是忍不住发怒吼孩子,究竟如何控制
- 圣诞老人的鹿叫麋鹿还是驯鹿
- 如何定义成功
- 充电暖水袋里面是什么液体
- 佘山高度是多少米
