- 博客(11)
- 资源 (1)
- 收藏
- 关注
翻译 Makefile -- 二次展开(SECONDEXPANSION)
Makefile -- 二次展开(SECONDEXPANSION)1. Makefiles 构成2. make 如何读取 Makefile3. 如何解析 Makefiles4. 二次展开5. 补充说明(翻译自 GNU make 3.1 What Makefiles Contain、3.7 How make Reads a Makefile、3.8 How Makefiles Are Parsed 和 3.9 Secondary Expansion,总共四节)1. Makefiles 构成Makefil
2021-01-25 00:33:44 2282
翻译 Makefile -- 伪目标
Makefile -- 伪目标(翻译自 GNU make 4.6 – Phony Targets)伪目标不是一个真实的文件名。当用 make 显式指定请求时,伪目标仅仅是将要执行的命令的名字。有两个理由去使用伪目标:一是避免和相同的文件名产生冲突;二是提升性能。如果你写了一条规则(rule),而该规则的命令不会实际创建目标文件,那么 make 每次到达该目标时,其命令总会被执行。例如:clean: rm *.o temp因为 rm 命令不会创建名为 clean 的文件,也许永远也不存在这样的
2021-01-24 21:01:27 1631
原创 qemu + gdb + busybox 内核调试流程
qemu + gdb 调试内核1. 安装 qemu方式一:源码编译安装方式二:直接安装2. 安装 gdb方式一:源码编译安装方式二:直接安装3. 制作 initrd4. 获取内核 vmlinuz 和 vmlinux方式一:内核源码编译方式二:直接从 ubuntu 或 centos 发布件中获取5. 调试内核启动 qemu启动 gdb1. 安装 qemu我在 ubuntu 20.10 上使用了编译安装方式,在 centos 8.2.2004 上使用了直接安装方式,具体如下:方式一:源码编译安装(1)获
2021-01-02 11:56:29 2403 1
原创 Linux 文件系统内核代码学习
Linux 文件系统内核代码学习1. 结构体1.1 inode1.2 dentry1.3 file1.4 files_struct1.5 fdtable1.6 path1.7 vfsmount1.8 super_block2. 函数2.1 filename_lookup2.2 path_lookupat2.3 path_init2.4 link_path_walk(先占个坑,后面边学边完善)1. 结构体对于每一个文件(包括目录、字符设备、块设备、socket 文件、FIFO文件、软连接)均有一个与之对
2020-10-28 23:18:32 988
翻译 Makefile -- 后缀规则
Makefile - 旧式后缀规则后缀规则是一种 make 定义隐式规则的旧式方式。模式规则更加通用、清晰,后缀规则已经被废弃。为了兼容旧的 makefiles,GNU make 依然支持后缀规则。后缀规则有两种形式:双后缀和单后缀。双后缀规则由一对后缀定义:target 后缀和源文件后缀。双后缀规则会匹配任意以 target 后缀结尾的文件。对应的隐式依赖是 target 文件名加上源文件后缀。例如:双后缀 .c.o (target 后缀和源文件后缀分别为 .o和 .c)等效于模式规则 %.o: %.
2020-08-12 00:03:38 3551
原创 ucore lab1 实验报告 01 -- function.mk
ucore lab1 实验报告1. 理解通过 make 生成执行文件的过程1.1 ucore.img 生成过程1. 理解通过 make 生成执行文件的过程1.1 ucore.img 生成过程
2020-08-07 20:08:13 685
原创 Linux 启动流程 -- BIOS/UEFI & bootloader & kernel & initramfs & systemd
Linux 启动流程1. BIOS 启动阶段1.1 启动方式1.2 主要功能2. OS 引导阶段2.1 分区类型2.2 引导方式3. 内核启动阶段4. systemd 启动阶段1. BIOS 启动阶段1.1 启动方式Legacy BIOSUEFI BIOS1.2 主要功能POST加载 bootloader,并把控制权转交给 bootloader2. OS 引导阶段2.1 分区类型MS-DOShttps://www.cnblogs.com/kelamoyujuzhen/p/9
2020-07-04 11:47:22 14907
原创 Lex & Yacc 学习笔记
Lex & Yacc 学习笔记1. Lex & Yacc 简介1.1 Lex - 词法解析器生成器1.2 Yacc - 语法解析器生成器2. Lex & Yacc 原理2.1 Lex 和 Yacc 的关系2.2 Lex & Yacc 输入文件格式2.3 Lex & Yacc 内部工作原理3. Lex & Yacc 进阶参考文献1. Lex & Yacc 简介最近在学习 《跟我一起写 Makefile》的时候,里面提到 Yacc,一时好奇,网上查了些
2020-06-26 08:42:22 1008
原创 内核辅助函数系列 002 --- _find_next_bit:unsigned long 整数数组中第一个 0 或 1 位
基于4.19.55 内核源码参数addr1 带搜寻 0/1 位的整数数组addr2 扩展数组nbits 最大搜索位start 搜索开始位invert 反转掩码返回值invert 等于 0 时,返回第一个非 0 位,等于 ~0UL 时,返回整数数组中第一个 0 位代码在 find_bit.c 中,实现如下:/* * This is a common helper functi...
2020-04-04 22:33:41 469
原创 内核辅助函数系列 001 --- __ffs(unsigned long word):第一个非 0 位
4.19.55 内核源码 __ffs.h参数word 带搜寻非 0 位的整数返回值返回第一个非 0 位,全 0 的情况下返回 BITS_PER_LONG - 1/** * __ffs - find first bit in word. * @word: The word to search * * Undefined if no bit exists, so code shoul...
2020-04-04 20:31:19 958
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人