Linux 系统框架分析(一)

一、linux内核结构框图

对内核结构框图有个总体的把握,有助于理解为什么驱动要这样写,为什么写的应用程序所用的C库接口能够产生这么多的事情。

框图可以看出来,linux系统,包括五个系统

一、Linux内核结构介绍

Linux 内核是操作系统的核心部分,它负责管理系统的资源、进程调度、设备驱动程序等核心功能。以下是 Linux 内核的主要组成部分和结构:

进程管理:

调度器(Scheduler): 决定在多任务系统中哪个进程获得 CPU 时间。

进程控制块(Process Control Block,PCB): 存储有关进程的信息,如寄存器状态、进程状态等。

内存管理:

虚拟内存管理: 管理进程的虚拟地址空间,包括分页机制、页面置换等。

物理内存管理: 负责跟踪系统中的物理内存,包括内存分配、释放等。

文件系统:

虚拟文件系统(VFS): 提供文件系统的抽象接口,使得不同类型的文件系统可以共享相同的 API。

文件描述符表: 管理打开文件的信息,每个进程都有一个文件描述符表。

设备驱动程序:

字符设备和块设备驱动: 用于管理字符设备(如终端)和块设备(如硬盘)。

网络设备驱动: 处理网络设备和协议栈。

网络协议栈:

TCP/IP 协议栈: 包括网络层、传输层等,用于实现网络通信。

套接字层: 提供应用程序与网络协议栈之间的接口。

系统调用接口:

系统调用: 提供用户空间程序与内核之间的接口,允许用户程序请求内核执行特权操作。

中断和异常处理:

中断处理程序: 处理硬件中断,允许外部设备向 CPU 发送信号。

异常处理程序: 处理由于错误或异常情况而引发的事件。

定时器和时钟管理:

内核定时器: 用于实现计时和时间管理。

实时时钟(RTC): 处理硬件时钟。

同步和互斥机制:

信号量、自旋锁、互斥体等: 用于确保多个进程或线程之间的同步和互斥。

系统初始化和启动:

引导加载程序(Bootloader): 负责加载内核镜像到内存中。

启动过程: 初始化硬件、文件系统等,最终执行第一个用户空间进程。

这些组件一起构成了 Linux 内核的核心结构。内核的源代码是 modulized 的,允许添加或删除特定功能的模块,以适应不同的需求。整个内核的结构和实现细节非常庞大,具体的功能和特性取决于具体的内核版本和配置。

内核是一个很厉害的超级逻辑,把硬件底层的东西抽象化,对用户来说只需要调API就好了,根本不需要管寄存器,协议,总线...(单片机会去直接操作),这些全部由操作系统做好。动不动写个操作系统是不现实的。

三、驱动认知

驱动(Driver)是一种用于使操作系统与硬件或其他软件交互的程序或模块。驱动程序充当操作系统与硬件之间的桥梁,允许它们有效地通信和协作。以下是关于驱动的一些基本认知:

硬件与操作系统的交互: 操作系统本身并不了解所有硬件设备的细节。驱动程序提供了一个标准的接口,使得操作系统能够与硬件设备进行通信,而无需了解设备的底层细节。

功能和作用:

设备驱动: 控制和管理硬件设备,如打印机、图形卡、网络适配器等。

文件系统驱动: 提供对不同文件系统的支持,例如 FAT、NTFS、ext4 等。

虚拟设备驱动: 创建虚拟设备,如虚拟磁盘、虚拟网络设备等。

字符设备驱动和块设备驱动: 用于字符设备(如终端)和块设备(如硬盘)的控制。

网络设备驱动: 管理网络接口卡和网络协议栈的通信。

相关推荐
IC 见路不走28 分钟前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘40 分钟前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵1 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
汀沿河1 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35001 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
小哥山水之间2 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
ldj20202 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos
翻滚吧键盘2 小时前
opensuse tumbleweed上安装显卡驱动
linux
cui_win3 小时前
【内存】Linux 内核优化实战 - net.ipv4.tcp_tw_reuse
linux·网络·tcp/ip
CodeWithMe6 小时前
【Note】《深入理解Linux内核》 Chapter 15 :深入理解 Linux 页缓存
linux·spring·缓存