Linux内核开发基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内核开发基础相关的知识,希望对你有一定的参考价值。

1.Linux内核简介

 

技术分享

 1.1.Linux系统如何构成

 

内核空间(Kernel Space)+用户空间(User Space)

用户空间 = 用户程序 + C语言库(例如:GNC C Library)

内核空间 = Kernel + 系统调用接口(System Call Interface) + 体系结构相关代码

技术分享

Linux系统被划分用户空间 内核空间 原因?

现在CPU实现不同的工作模式,以ARM为例

A.用户模式(usr)

B.系统模式(sys)

C.外部中断模式(irq)

D.管理模式(svc)

E.快速中断模式(fiq)

F.数据访问中止(abt)

G.未定义指令异常(und)

Linux系统利用CPU使用了耳机指令分别运行Linux内核与应用程序,使操作系统本身得到充分保护。

内核空间与用户空间是程序执行的两种不同状态。

用户空间->内核空间

通过系统调用和硬件中断完成用户空间到内核空间的转移

1.2 内核构成

 7个组成部分

技术分享

 

SCI:system Call interface 系统调用接口

PM:Process Management 进程管理,进程创建、进程调度、进程通信、

MM:Memory Management 内存管理,虚拟地址和物理地址转换、内存回收、(区地址)

Arch:体系结构相关代码(ARM体系)这个地方需要自己修改相关内容

DD:Device Drivers 设备驱动程序

Network Stack:网络协议栈 (Linux支持网络协议多)

VFS:Virtual File System 虚拟文件系统

技术分享

 

以上是关于Linux内核开发基础的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核模块开发基础

Linux驱动基础开发

RK3568平台开发系列讲解(驱动基础篇)Linux 内核源码介绍

RK3568平台开发系列讲解(驱动基础篇)Linux 内核源码介绍

linux基础之内核编译

RK3568平台开发系列讲解(驱动基础篇)Linux内核面向对象思想之继承