初步读懂linux内核结构

一、 linux内核结构框图导读
初步读懂linux内核结构_第1张图片

二、 linux内核层级解释

用户级:

用户程序:用户程序主要就是我们写的应用程序,由基础C语言和标准C库构成一个应用程序
例如:我们之前写的ftp云盘项目就是一个应用程序,还有微信,QQ等等的app

函数库:例如C库,函数库就是提供应用程序支配内核干活的接口,靠各种的API函数实现支配内核。
例如:open,read,write函数等等,这里的C库是跟系统调用接口打交道的

内核级:

Linux内核主要由五个子系统组成进程调度,内存管理,虚拟文件系统,网络接口,进程间通信
1.进程调度(Process Scheduler):控制多个进程对CPU的访问,使得多个进程能在CPU中微观串行运行,看起来却像是并行运行。驱动程序编程中,若没有获得资源则进入休眠,直到被唤醒。
2.内存管理(Memory Manager) 允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存(为每个进程进行虚拟内存到物理内存的转换)即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。
3.虚拟文件系统(VirtualFileSystem,VFS) 隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。
4.网络接口(NET) 提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。
5.进程间通信(IPC) 支持进程间各种通信机制。 用于多进程,多资源的互斥访问,进程间同步和消息传递。主要有管道,信号,信号量,共享内存,FIFO,socket

设备驱动程序:不同的设备驱动程序,完成对不同硬件的控制

硬件级:

寄存器,LED灯,串口,CPU,内存,磁盘,其他设备等

三、linux体系架构图
初步读懂linux内核结构_第2张图片
这是linux内核结构图的另一种说法,其他的跟上面的都一样,在这里我想说一下的是最外面的壳shell,这个shell有时候面试的时候也会唠嗑一下,所以总结一下到底是什么一回事

1.在linux中shell的含义是什么?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”

2.shell如何执行用户的指令?

shell有两种执行指令的方式,
第一种方法是用户事先编写一个sh脚本文件,内含shell脚本,而后使用shell程序执行该脚本,这种方式,我们习惯称为shell编程。

第二种形式,则是用户直接在shell界面上执行shell命令,由于shell界面的关系,大家都习惯一行行的书写,很少写出成套的程序来一起执行,所以也称命令行。

总结:shell可以说只是为用户与机器之间搭建成的一个桥梁,让我们能够通过shell来对计算机进行操作和交互,从而达到让计算机为我们服务的目的。

在这里针对第二种方式再进行简单的讲解,以便更好地理解shell
一个shell对应一个终端 (terminal)。曾经来说,终端是一个硬件设备,用来输入并显示输出。如今,由于图形化界面的普及,终端往往就像下图一样,是一个图形化的窗口。你可以通过这个窗口输入或者输出文本。这个文本直接传递给shell进行分析解释,然后执行。

初步读懂linux内核结构_第3张图片
linux内核体系架构参考

学习笔记,仅供参考

你可能感兴趣的:(linux,linux内核结构,linux,面试)