linux驱动编程(四)--Linux体系结构、Linux内核结构
一、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(生成镜像工具)等。还包括动态调频,主频设置等