当前位置:首页 > 教育培训 >

linux 内核分析(Linux 内核分析发送缓冲区)

来源:原点资讯(www.yd166.com)时间:2023-06-12 00:26:32作者:YD166手机阅读>>

概述

前段时间朋友让整理Linux内核这一块的内容,抽空整理了下linux内核方面,主要从linux体系结构和linux内核源码两个方面来做介绍。


Linux体系结构

1. Linux体系结构(linux系统构成)

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

linux 内核分析,Linux 内核分析发送缓冲区(1)

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

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

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

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

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

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

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

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

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

linux 内核分析,Linux 内核分析发送缓冲区(2)

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获取

linux 内核分析,Linux 内核分析发送缓冲区(3)

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内核其他方面做个深入介绍,感兴趣的朋友可以关注下!

linux 内核分析,Linux 内核分析发送缓冲区(4)

栏目热文

linux内核参数大全(Linux升级内核)

linux内核参数大全(Linux升级内核)

作为一名优秀的Linux运维工程师,参数优化是一门十分重要的功课。你是不是一听到这个词就头痛?没关系,小编帮你快速掌握这...

2023-06-11 23:57:38查看全文 >>

图解linux内核(通俗易懂讲解linux内核)

图解linux内核(通俗易懂讲解linux内核)

前言:本文和其它的“Linux内核分析”文章都基于如下约定: 内核版本为Linux 3.10.29(该版本是一个long...

2023-06-12 00:17:24查看全文 >>

linux内核配置详解(linux内核的配置原则)

linux内核配置详解(linux内核的配置原则)

前言 Linux内核是操作系统的核心,也是操作系统最基本的部分。 Linux内核的体积结构是单内核的、但是他充分采用了微...

2023-06-12 00:07:24查看全文 >>

linux设备树详解(linux 设备树与驱动)

linux设备树详解(linux 设备树与驱动)

设备树的出现上一节说过设备树的出现是为了解决内核中大量的板级文件代码,通过 DTS 可以像应用程序里的 XML 语言一样...

2023-06-11 23:45:29查看全文 >>

linux完整内核(Linux卸载内核)

linux完整内核(Linux卸载内核)

这是一个困扰 Linux 用户的常见问题。这也是考试和面试中经常问到的一个问题。下面是你需要了解的所有内容。你可能在网...

2023-06-12 00:11:30查看全文 >>

linux基本命令(linux常用命令图解)

linux基本命令(linux常用命令图解)

我们并不是每天都会谈论 Linux 的命令行。但正如一些读者指出的那样,你们也想学习一些命令行的技巧。因此,我整理了一份...

2023-06-12 00:31:29查看全文 >>

linux内核的使用(linux内核的主要功能)

linux内核的使用(linux内核的主要功能)

概述嵌入式设备驱动开发中将驱动程序以模块的形式发布,更是极大地提高了设备使用的灵活性——用户只需要拿到相关驱动模块,再插...

2023-06-11 23:48:09查看全文 >>

英雄联盟为什么调不了符文(韩国英雄联盟为什么那么强)

英雄联盟为什么调不了符文(韩国英雄联盟为什么那么强)

最近英雄联盟大更新后迎来不少吐糟,特别是对于那些步入社会的老玩家,本来就没啥时间玩,大更新后完全看不懂符文等,表示纷纷弃...

2023-06-12 00:12:19查看全文 >>

英雄联盟没有一键符文是怎么回事(英雄联盟一键符文不见了)

英雄联盟没有一键符文是怎么回事(英雄联盟一键符文不见了)

如果Wegame取消一键配置符文,这个做法是否正确?网友:普天同庆就在近期,大家有没有发现,在玩英雄联盟的时候,导入符文...

2023-06-12 00:12:59查看全文 >>

英雄联盟符文设置失败(英雄联盟设置符文页出错)

英雄联盟符文设置失败(英雄联盟设置符文页出错)

#520游我宠你#随着科技的进步,电子游戏也是越来越多样化,这让游戏爱好者有了更多的选择。可即使如此,每个赛季仍有大量玩...

2023-06-11 23:54:07查看全文 >>

文档排行