关键词:
文章目录
Linux系统移植:内核源码目录分析
一、目录文件简述
先看一下一级目录:
首先看一下 linux 自带的文件夹
目录 | 功能 |
---|---|
arch | 存放架构文件相关目录,该目录下,每种架构都有对应子目录,架构子目录用于控制系统引导、系统调用、动态调频、主频设置等,架构子目录的 configs 存放配置文件,而 boot/dts 目录里面是对应开发平台的设备树文件 |
block | 块设备相关目录,像 SD 卡、EMMC、NAND、硬盘等存储设备属于块设备,block 目录中存放着管理块设备的相关文件 |
crypto | 加密相关目录,存放着加密算法文件,比如常见的 crc、crc32、md4、md5、hash 等加密算法就在里面 |
Documentation | 文档手册相关目录,想了解 Linux 某个功能模块或驱动架构的功能,就可以在 Documentation 目录中查找有没有对应的文档 |
drivers | 驱动相关目录,根据驱动类型的不同,分门别类进行整理,比如 drivers/i2c 就是 I2C 相关驱动目录,重点目录 |
firmeare | 固件相关目录 |
fs | 文件系统相关目录,存放文件系统,比如 fs/ext2、fs/ext4、fs/f2fs 等,分别是 ext2、ext4 和 f2fs 等文件系统 |
include | 头文件相关目录 |
init | 初始化相关目录,存放 Linux 内核启动的时候初始化代码 |
ipc | 进程间通信相关目录,存放进程间通信的具体实现代码 |
kernel | 内核相关目录 |
lib | 库相关目录,都是一些公用的库 |
mm | 内存管理相关目录 |
net | 网络相关目录 |
samples | 例程相关目录 |
scripts | 脚本相关目录,编译的时候会用到很多脚本文件,这些脚本文件就保存在此目录中 |
security | 安全相关目录 |
sound | 音频处理相关目录 |
tools | 工具相关目录 |
usr | 与 initramfs 相关的目录,用于生成 initramfs |
virt | 提供虚拟机技术支持 (KVM) |
然后看一下相关文件:
源码自带文件:
目录 | 功能 |
---|---|
.gitignore | git 工具相关文件 |
.mailmap | 邮件列表 |
COPYING | 版权声明 |
CREDITS | Linux 贡献者 |
Kbuild | Makefile 会读取此文件 |
Kconfig | 图形化配置界面的配置文件 |
MAINTAINERS | 维护者名单 |
Makefile | Linux 顶层 Makefile |
README | Linux 描述文件 |
REPORTING-BUGS | BUG 上报指南 |
编译生成文件:
目录 | 功能 |
---|---|
.config | Linux 最终使用的配置文件,编译 Linux 的时候会读取此文件中的配置信息。最终根据配置信息来选择编译 Linux 哪些模块,哪些功能 |
.missing-syscalls.d | 不清楚 |
.tmp_xx | 不清楚 |
.version | 和版本有关 |
.vmlinux.cmd | cmd 文件,用于连接生成 vmlinux |
Module.xx modules.xx | 一系列文件,和模块有关 |
System.map | 符号表 |
vmlinux | 编译出来的、未压缩的 ELF 格式 Linux 文件 |
vmlinux.o | 编译生成中间文件 |
外部文件:
目录 | 功能 |
---|---|
linux_build.sh | 编译脚本 |
二、VSCode 创建源码工程
VSCode 创建源码工程很简单,解压缩工程后,进入工程建立工作区
然后编译 settings.json 配置脚本,屏蔽掉无关文件,方便分析代码:
主要就是 search.exclude,搜索排除,和 files.exclude 文件排除,排除不用的目录和文件,如下:
代码编写后保存刷新一下目录,就会发现排除文件夹在目录不会显示了,比如架构目录只剩下 arm 文件夹了
rk3399系统移植|移植linux主线5.4.32内核
更新时间更新内容2022-10-26初稿文章目录一、linux原生内核初试1.下载2.编译3.生成boot.img镜像3.启动测试二、移植到friendlyRK3399-SOM开发板1.新建单板2.新建设备树:3.编译4.测试三、rootfs挂载问题1.问题描述2.问题分析3.问题解决源码一... 查看详情
linux内核移植初探(代码片段)
...、支持的硬件平台广泛;超强的网络功能;多任务多用户系统;模块化的设计五大子系统:进程管理;内存管理;文件系统;网络协议;设备管理内核获取路径:芯片厂商、内核源码官方linux内核的目录结构层次结构:平台相关... 查看详情
linux内核移植入门(代码片段)
...性,支持的硬件平台广泛2.超强的网络功能3.多任务多用户系统4.模块化的设计五大子系统:1.进程管理子系统2.内存管理子系统3.文件系统子系统4.网络协议子系统5.设备管理子系统获取linux内核:1.内核官方发布点2.芯片厂商提供内核... 查看详情
linux系统移植:内核获取和编译(代码片段)
文章目录Linux系统移植:内核获取和编译一、获取Linux内核二、Linux内核编译Linux系统移植:内核获取和编译一、获取Linux内核Linux由Linux基金会管理与发布,Linux官网为https://www.kernel.org,选取合适的版本来使用就行... 查看详情
i.mx6ull系统移植|移植linux原生5.4.32内核
更新时间更新内容2022-09-22初稿文章目录一、linux原生内核初试1.下载2.编译3.下载到开发板4.启动结果分析二、移植linux内核1.新建单板1.1.新建单板配置文件1.2.新建设备树文件2.测试三、适配新的开发板1.修改model2.添加心跳灯3.修改... 查看详情
linux系统移植:kernel顶层makefile(下)(代码片段)
文章目录Linux系统移植:Kernel顶层Makefile(下)一、makedefconfig过程二、Makefile.build脚本分析三、make过程四、built-in.o文件编译生成过程五、makezImage过程Linux系统移植:Kernel顶层Makefile(下)继续分析Linux内核... 查看详情
linux内核获取初次编译源码目录分析(代码片段)
目录Linux内核获取Linux内核初次编译Linux内核源码目录分析1、arch目录2、block目录3、crypto目录4、Documentation目录5、drivers目录6、firmware目录7、fs目录8、include目录9、init目录10、ipc目录11、kernel目录12、lib目录13、mm目录Linux内核获取关... 查看详情
linux系统移植:原厂kernel移植到开发板(代码片段)
文章目录Linux系统移植:原厂Kernel移植到开发板一、获取原厂内核并编译二、内核启动测试三、添加自己板子文件3.1板子配置文件3.2板子设备树3.3编译四、重要配置修改4.1主频修改4.2EMMC驱动修改4.3网络驱动修改4.4保存修改后... 查看详情
linux系统移植:bootz启动linux内核(代码片段)
文章目录Linux系统移植:bootz启动Linux内核一、images的全局变量二、do_bootz函数三、bootz_start函数四、do_bootm_states函数五、bootm_os_get_boot_func函数六、do_bootm_linux函数Linux系统移植:bootz启动Linux内核一、images的全局变量启动Linu... 查看详情
鸿蒙内核源码分析(挂载目录篇)|为何文件系统需要挂载|百篇博客分析openharmony源码|v65.01(代码片段)
...篇.本篇为:v65.xx鸿蒙内核源码分析(挂载目录篇)|为何文件系统需要挂载|51.c.h.o文件系统相关篇为:v62.xx鸿蒙内核源码分析(文件概念篇)|为什么说一切皆是文件|51.c.h.ov63.xx鸿蒙内核源码分析(文件系统篇)|用图书管理说文件系统|51.c.h.o... 查看详情
2内核的配置和移植(代码片段)
...有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。源码在开发板光盘中有。可以自己去linux下解压然后ma... 查看详情
linux系统移植:根文件系统构建(代码片段)
文章目录Linux系统移植:根文件系统构建一、什么是根文件系统二、根文件系统目录2.1子目录bin2.2子目录dev2.3子目录etc2.4子目录lib2.5子目录mnt2.6子目录proc2.7子目录usr2.8子目录var2.9子目录sbin2.10子目录sys2.11子目录opt三、BusyBox创... 查看详情
linux内核linux内核源码目录说明①(arch目录|block目录|certs目录|crypto目录|documentation目录)
...目录四、crypto目录五、Documentation目录在上一篇博客【Linux内核】Linux内核源码结构(下载Linux内核源码|使用VSCode阅读Linux内核源码)中,使用了VisualStudioCode查看Linux内核源码,本篇博客开始分析Linux内核源码结构;一、arch目录arch目录是... 查看详情
linux内核源码目录(代码片段)
...#xff0c;还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统 查看详情
linux内核源码分析之页表(代码片段)
目录页表说明虚拟地址转换为物理地址过程内核中的宏以及说明页表用来把虚拟页映射到物理页,并且存放页的保护单位,即访问权限。页表说明5级页表如下1)页全局目录(PageGlobalDirectory,PGD)2) 页四级目录(Page4t... 查看详情
内核的配置和编译原理(代码片段)
《2.uboot和系统移植-第15部分-2.15.内核的配置和编译原理》 欢迎访问《朱老师物联网大讲堂》官方网站 www.zhulaoshi.org 以获取本课程更多信息第一部分、章节目录2.15.1.linux内核源码目录结构12.15.2.linux内核源码目录结构22.15.3.内... 查看详情
tiny4412开发板支持linux吗
Android和Linux是两码事,Android系统是基于Linux内核的。我们编译的Android源码是Android系统本身的源码,而内核是指通过原生Linux源码移植过来的内核源码,所以它们需要我们分别编译。并且Android系统的版本号和Linux源码的版本号是... 查看详情
tiny4412开发板支持linux吗
Android和Linux是两码事,Android系统是基于Linux内核的。我们编译的Android源码是Android系统本身的源码,而内核是指通过原生Linux源码移植过来的内核源码,所以它们需要我们分别编译。并且Android系统的版本号和Linux源码的版本号是... 查看详情