linux的子系统

文章目录

  • 前言
  • 1.宏观的五个子系统
  • 2.文件系统
  • 3.mtd


前言


1.宏观的五个子系统

Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成:
linux的子系统_第1张图片
进程调度
进程调度控制系统中的多个进程对CPU的访问
linux的子系统_第2张图片
内存管理
主要作用是控制多个进程安全地共享主内存区域
(当CPU提供内存管理单元(MMU)时,Linux内存管理完成为每个进程进行虚拟内存到物理内存的转换)
一般而言,Linux的每个进程享有4GB的内存空间,0~3GB属于用户空间,3~4GB属于内核空间,内核空间对常规内存、I/O设备内存以及高端内存存在不同的处理方式。
linux的子系统_第3张图片
虚拟文件系统
它独立于各个具体的文件系统,是对各种文件系统的一个抽象
它通过一些数据结构及其方法向实际的文件系统如ext2,vfat等提供接口机制
linux的子系统_第4张图片
网络接口
Linux中网络接口可分为网络协议和网络驱动程序
linux网络子系统对网络层次采用了类似面向对象的设计思路,把需要处理的层次抽象为不同的实体,并且定义了实体之间的关系和数据处理流程:

(1)网络协议:网络协议可以理解为一种语言,用于网络中不同设备之间的通信,是一种通信的规范。
(2)套接字:套接字是内核与用户程序的接口,一个套接字对应一个数据连接,并且向用户提供了文件I/O,用户可以像操作文件一样在数据连接上收发数据,具体的协议处理由网络协议部分处理。套接字是用户使用网络的接口。
(3)设备接口:设备接口是网络子系统中软件和硬件的接口,用户的数据最终是需要通过网络硬件设备发送和接收的,网络设备千差万别,设备驱动也不尽相同,通过设备接口屏蔽了具体设备驱动的差异。
(4)网络缓冲区:网络缓冲区也称为套接字缓冲区(sk_buff),是网络子系统中的一个重要结构。网络传输数据存在许多不定因素,除了物理设备对传输数据的限制(例如MMU),网络受到干扰、丢包、重传等,都会造成数据的不稳定,网络缓冲区通过对网络数据的重新整理,使业务处理的数据包是完整的。网络缓冲区是内存中的一块缓冲区,是网络系统与内存管理的接口。

进程通信
信号量、共享内存、管道等

2.文件系统

文件系统以及设备文件系统,参考:
https://blog.csdn.net/weixin_44705391/article/details/122690392

3.mtd

内存技术设备。
MTD设备既非块设备也不是字符设备,但可以同时提供字符设备和块设备接口来操作它。
MTD分层:
linux的子系统_第5张图片
https://www.cnblogs.com/xiaojiang1025/p/6615898.html
https://blog.csdn.net/lwj103862095/article/details/21545791

你可能感兴趣的:(Linux使用,arm,linux,运维)