
Linux内核设计与实现
文章平均质量分 68
trouble-i-am-in
我就是个彻头彻尾的loser,所以我除了我的命,我没什么好输的了。
展开
-
VSCode搭建Linux Kernel源码阅读环境
VSCode搭建Linux Kernel源码阅读环境 参考博客 首先,我就是想看看源码而已,暂时不需要一个正在运行的Linux环境,所以我就没有什么虚拟机,SSH之类的那么麻烦的东西,我现在单纯就是想当我看到一个结构体的时候,编译器能帮我找找在哪里定义的而已。 再来就是我的环境是mac,所以安装软件用的是brew。 安装global 这个就简单了:brew install global。 然后使用: which global which gtags 来看看有没有安装成功,并记录下对应的路径,我的路径是:原创 2021-08-05 14:04:41 · 4815 阅读 · 0 评论 -
《庖丁解牛Linux内核》笔记之:调用堆栈
《庖丁解牛Linux内核》笔记之:调用堆栈 参考视频 基础知识介绍 在基础知识里讲过在使用cal调用函数时,会在之前的堆栈上创建一个新的堆栈,这里想讨论的就是如何实现调用函数时的参数传递。 下面的代码我是在自己的mac电脑上获取到的。 这里以一个超级简单的代码为例子: int add(int a,int b,int c,int d){ int e=1; return a+b+c+d+e; } int main() { int a,b,c,d,e; a=1; b=2;原创 2021-05-16 19:22:52 · 316 阅读 · 0 评论 -
《庖丁解牛Linux内核》笔记之:汇编基础
《庖丁解牛Linux内核》笔记之:汇编基础 参考视频 下面的说法都来自x86CPU寄存器。 值的不同表示方法 %eax 类似这种就是直接操作该寄存器,效果类似于C语言中的指针:*和&。 (%eax) 这里代表()中的内容是一块地址,而(%eax)代表直接读取其中的地址对应的值。 $123 这里的代表的是具体的值,即十进制的123。 123 这种只有一个数值的,代表其本身是一个地址。 常见寄存器 eax:累加寄存器,主要用来临时存放运算结果 ebx:基地址寄存器,顾名思义,这里存储的就是一个原创 2021-05-16 13:28:38 · 395 阅读 · 0 评论 -
Linux内核基础笔记:基础知识
以下笔记内容都来自《Linux内核设计与实现》。 Linux内核基础笔记:基础知识 内核代码下载地址: github 官网 内核代码结构: 内核代码特性 1 无libc库 或 无头文件 在源码中出现的类似:#include <linux/string.h>的代码,指的是include下的文件夹linux中的string.h,一般的头文件都在该目录下。 然后一些常用的C语言标准库中的函数,就在lib中,比如字符串的操作就在lib/string.c中。 简单来说两者的关系就是,lib提供函数,原创 2021-05-13 23:24:40 · 282 阅读 · 0 评论