linux内核结构
用户级
函数库 :提供了应用程序支配内核干活的接口
内核级
Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。 1.进程调度(Process Scheduler):控制多个进程对CPU的访问,使得多个进程能在CPU中微观串行运行,看起来却像是并行运行。驱动程序编程中,若没有获得资源则进入休眠,直到被唤醒。 2.内存管理(Memory Manager) 允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存(为每个进程进行虚拟内存到物理内存的转换)即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。 3.虚拟文件系统(VirtualFileSystem,VFS) 隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。 4.网络接口(NET) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。 5.进程间通讯(IPC) 支持进程间各种通信机制。 用于多进程,多资源的互斥访问,进程间同步和消息传递。主要有管道,信号,信号量,共享内存,FIFO,socket
硬件级
CPU,内存,磁盘,其他设备等
linux体系架构
shell是系统的用户界面,是一个特殊的应用程序(命令行),提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。
Shell是可编程的,它可以执行符合Shell语法的文本,这样的文本称为Shell脚本,通常短短的几行Shell脚本就可以实现一个非常大的功能,原因就是这些Shell语句通常都对系统调用做了一层封装。为了方便用户和系统交互,一般一个Shell对应一个终端,终端是一个硬件设备,呈现给用户的是一个图形化窗口。我们可以通过这个窗口输入或者输出文本。这个文本直接传递给shell进行分析解释,然后执行。
|