linux驱动编程(四)--Linux体系结构、Linux内核结构

本文主要介绍了Linux相关知识。首先阐述了Linux体系结构,包括内核空间和用户空间,二者通过系统调用和硬件中断转移。接着介绍了Linux内核结构,如SCI层、PM层等。最后详细说明了Linux内核源码目录结构,涵盖arch、drivers等多个目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Linux体系结构

这里写图片描述

1.内核空间(kernel space)

-系统调用接口
-内核支持
-硬件支持

2.用户空间(user space)

-用户应用
-c库
为何分开?
答:分工产生效率
安全角度:cpu工作模式不同,执行的指令或者访问的寄存器不同
通过“系统调用”和“硬件中断”来完成用户空间到内核空间的转移

二、Linux内核结构

这里写图片描述

1.SCI层(System Call Interface)

提供一套标准的系统调用函数来访问Linux内核

2.PM层(Process Management)

创建进程(fork,exec)
停止进程(kill,exit)
进程通信(signal)
进程调度
控制活动进程共享CPU

3.MM层(Memory management)

控制多个进程安全的共享内存区域

4.VFS虚拟文件系统(Virtual File System)

隐藏各种文件的具体细节,为文件系统提供统一的接口
一切皆文件

5.设备驱动(Device Drivers)

控制特定的硬件设备
网络设备
块设备
字符设备
杂项设备

6.网络协议栈(Nerwork Stack)

网络实现协议

三、Linux内核源码目录结构

这里写图片描述
树型结构

arch目录–平台目录,架构目录

内核支持的每个的cpu架构对应一个子目录arm,x86,powerpc,mips等
包括boot mm kernel等子目录,分别控制系统引导,内存管理,系统调用,还有lib(硬件相关库) tools(生成镜像工具)等。还包括动态调频,主频设置等

binary目录 无源码驱动以二进制放到该文件
block目录 部分块设备驱动
crypto目录 加密压缩CRC校验
Documentation目录 内核使用说明文档
drivers目录 设备驱动
firmware目录 固件接口
fs目录 存放各种文件系统的实现代码
include目录 通用头文件
init目录 内核初始化代码
ipc目录 进程通信源码
virt目录 内核虚拟机
kernel目录 Linux核心功能源码,程序调度,进程控制,模块化
lib目录 库文件代码
mm目录 实现内存管理(与平台体系无关的部分)
net目录 网络协议实现代码
samples目录 内核编程的范例
script目录 配置裁剪内核的工具脚本
security目录 安全模型代码
sound目录 音频设备的驱动程序
tools目录 将.c编译成目标文件,连接合并成可运行的内核镜像文件
usr目录 实现用于打包(tar)和压缩(cp)的cpio等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值