首页 » 软件开发 » 详解linux内核分析--linux体系结构和内核源码介绍(内核源码代码目录体系结构)

详解linux内核分析--linux体系结构和内核源码介绍(内核源码代码目录体系结构)

雨夜梧桐 2024-07-24 22:35:12 0

扫一扫用手机浏览

文章目录 [+]

Linux可以分为两部分,分别为用户空间和内核空间具体如下图:

a) 用户空间包括:用户的应用程序、C库

b) 内核空间包括:系统调用接口、内核(狭义内核)、平台架构相关的代码

详解linux内核分析--linux体系结构和内核源码介绍(内核源码代码目录体系结构) 软件开发
(图片来自网络侵删)

2. 为什么要分为内核空间和用户空间

我们在分析u-boot的时候就说到过,我们的cpu在不同的工作模式下可以访问的寄存器是不一样的,所以为了保护我们的操作系统,避免用户程序将内核搞崩,所以进行了内核空间和用户空间的划分。

a) Arm处理器工作模式划分:usr、FIQ、IRQ、svc、abt、und、sys

b) X86处理器工作模式划分:Ring0—Ring3,Ring0下可以执行特权指令,可以访问IO设备,Ring3则有很多的限制

注:我们可以通过系统调用和硬件中断来完成用户空间到内核空间的转移

3. Linux内核结构(广义内核)

Linux内核由七个部分构成,具体如下图:

a) 系统调用接口(SCI):open、read、write等系统调用

b) 进程管理(PM):创建进程、删除进程、调度进程等

c) 内存管理(MM):内存分配、管理等

d) 虚拟文件系统(VFS):为多种文件系统提供统一的操作接口

e) 网络协议栈:提供各种网络协议

f) CPU架构相关代码(Arch):为的是提高至移植性

g) 设备驱动程序(DD):各种设备驱动,占到内核的70%左右代码

Linux内核源码简介

1. 源码获取

Linux内核获取有两种方法,一种是在www.kernel.org 直接获取,另一种是使用git获取

2. 源码目录简介

其源码主要有以下目录(介绍重要目录):

a) Arch目录:存放处理器相关的代码。
下设子目录,分别对应具体的CPU,每个子目录有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用

b) Include目录:内核所需要的大部分头文件目录。
与平台无关的在include/linux子目录下,与平台相关的则放在include相应的子目录中。

c) fs目录:存放各种文件系统的实现代码。

d) init目录:init子目录包含核心的初始化代码(不是系统的引导代码)。
其包含两个文件main.c和version.c,可以用来研究核心如何工作。

e) ipc目录:包含核心进程间的通信代码。

f) kernel目录:包含内核管理的核心代码。
与硬件相关代码放在arch//kernel目录下。

g) mm目录:包含了所有的内存管理代码。
与硬件相关的内存管理代码位于arch//mm目录下。

h) scripts目录:包含用于配置核心的脚本文件。

i) lib目录:包含了核心的库代码,与硬件相关的库代码被放在arch//lib/目录下

篇幅有限,linux内核先介绍到这,后面再针对linux内核其他方面做个深入介绍,感兴趣的朋友可以关注下!

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0