加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

【GNU/Linux kernel源码分析】刨根问底,速览

发布时间:2022-10-22 14:01:48 所属栏目:Linux 来源:未知
导读: 文章目录
博主昵称:一拳必胜客
博主主页面链接:博主主页传送门
博主专栏页面连接:专栏传送门–计算机考研
创作初心:本博客的初心是每天分享记录自己学习的脚步,和各位技术友探讨交流,

文章目录

博主昵称:一拳必胜客

博主主页面链接:博主主页传送门

博主专栏页面连接:专栏传送门–计算机考研

创作初心:本博客的初心是每天分享记录自己学习的脚步,和各位技术友探讨交流,同时给同样感兴趣的朋友以参考;

博主研究方向:渗透测试、嵌入式、机器学习;

博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;

‘’

 特别鸣谢:木芯工作室

特别鸣谢:木芯工作室 、Ivan from Russia

为什么会写这样一篇“无效水文”,我想是由于我的这样一种强迫症,对于任何的学习,在不理解原理,无法把他与我的已知知识架构产生联系的时候,我会本能地拒绝这种知识,所以由于这种偏执,很多情况下拖慢了自己的进度,因为很多时候无法有效收集到有用的资料linux 拖库,软件实训的时候,老师只会丢给一个配置文件,然后在此基础上做一些修改开发,可以除了可以勉强做一个垃圾出来,没有任何意义。就连再去做一个垃圾的能力都没有。这种情况直到毕业我才感觉无法再继续这样的生活了,于是开始大量学习,阅读专业书籍。这次就想对这些原本困扰我的东西进行一次小的抛砖引玉式的总结,当然也是把别人已经写过的一些文章综合一下,让入门的人对此好奇的人产生初步印象。 总之,人生没有白走的路。五年之前你正在梦想你今天的生活。 还有,当我们在经历冬季的时候,新西兰正被春风吹拂。所以做自己认为对的事情吧。

1. Linux kernel 1. 源代码目录结构分析

1、Linux 内核源代码包括三个主要部分

1)内核核心代码:包括linux内核整体架构分析笔记描述的各子系统和子模块,以及其他支撑子系统,如:电源管理、linux初始化等。

2)非核心代码:例如库文件(因为 Linux 内核是一个自包含的内核,即内核不依赖其它的任何软件,自己就可以编译通过)、固件集合、

KVM(虚拟机技术)等。

3)编译脚本、配置文件、帮助文档、版权说明等辅助性文件。

在这里插入图片描述

include/ :内核头文件,需要提供给外部模块(例如用户空间代码)使用。

kernel/ : Linux 内核的核心代码,包含了 进程调度子系统,以及和进程调度相关的模块。

mm/ :内存管理子系统

fs/ ---- VFS 子系统。虚拟文件系统(Virtual File System,简称 VFS)是 Linux 内核的子系统之一

net/ ---- 不包括网络设备驱动的网络子系统。

ipc/ ---- IPC(进程间通信)子系统。

arch// ---- 体系结构相关的代码,例如 arm, x86 等等。

arch//mach- ---- 具体的 machine/board 相关的代码。

arch//include/asm ---- 体系结构相关的头文件。

arch//boot/dts ---- 设备树( Device Tree)文件。

init/ ---- Linux 系统启动初始化相关的代码。

block/ ---- 提供块设备的层次。

sound/ ---- 音频相关的驱动及子系统,可以看作“音频子系统”。

drivers/ ---- 设备驱动

lib/ ---- 实现需要在内核中使用的库函数,例如 CRC、 FIFO、 list、 MD5 等。

crypto/ ----- 加密、解密相关的库函数。

security/ ---- 提供安全特性( SELinux)。

virt/ ---- 提供虚拟机技术( KVM 等)的支持。

usr/ ---- 用于生成 initramfs 的代码。/usr不是user的缩写,其实usr是Unix Software Resource的缩写, 也就是Unix操作系统软件资源所放置的目录,而不是用户的数据;所有系统默认的软件都会放置到/usr, 系统安装完时,这个目录会占用最多的硬盘容量

firmware/ ---- 保存用于驱动第三方设备的固件。

samples/ ---- 一些示例代码。

tools/ ---- 一些常用工具,如性能剖析、自测试等。

Kconfig, Kbuild, Makefile, scripts/ ---- 用于内核编译的配置文件、脚本等。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!