用户程序:1
这里是写的应用程序,由基础C语言 + C库构成一个应用程序。
如QQ,钉钉,firefox浏览器,evolution查看邮件,会对C库里的进程,网络通信,管道,消息队列进行接调用
函数库:
这里是C库,提供应用程序支配内核工作的接口,靠提供各种API函数实现支配内核
open,read,write,close……
这里的C库是跟系统调用接口打交道
系统调用接口:
这里是虚拟文件系统,VFS,这里是去控制内核里的进程间通信,程序调度,不同类型的文件系统的访问,修改
sys_open,sys_read,sys_write,sys_close……
文件系统:
ext4,vfat,tmpfs
设备驱动程序:
不同设备的驱动程序,完成对不同硬件的控制
硬件:
喇叭,串口,寄存器,LED灯,CPU,内存磁盘
壳shell:
一个shell对应一个终端 (terminal)。曾经来说,终端是一个硬件设备,用来输入并显示输出。如今,由于图形化界面的普及,终端往往就像上图一样,是一个图形化的窗口。你可以通过这个窗口输入或者输出文本。这个文本直接传递给shell进行分析解释,然后执行。
- (shell也有很多种,最常见的是bash, 另外还有sh, csh, tcsh, ksh。它们出现的年代不同,所支持的功能也有差异。)