Linux 内核
文章平均质量分 54
内核
ton_tom
柯镇恶的师弟理所当然不可不戒
展开
-
ELF 相关学习
gun工具链需要安装原创 2021-11-06 19:46:07 · 95 阅读 · 0 评论 -
gdb 调试 c 程序
GDB debug - <PID> debug对就进程号的运行中的程序 -q (quiet) 不打印一些详细的相关信息 或 --silent list(l) 查看程序 break(b) 函数名 / 行号 / 文件名:行号 / 行号 if 条件 info registers 寄存器的当前值 p $esp 显示单个寄存器值 f 0 查看栈帧 layout 在新的窗口显示同步的调试代码 s(tep) step in 单步 n(ext) st原创 2021-04-18 14:58:30 · 155 阅读 · 0 评论 -
gcc 编译学习
gcc 编译选项 gcc -c 只编译不连接 -g 带可调试信息用于gdb -O2 更好的编译连接 -O 优化 -I /directory 指定inclue文件 -static 使用静态库 -wall 生成 -w 不生成警告 -D define -E 预编译生成预处理文件 -s(小写)将符号表及重定位信息从最终的可执行文件中删除 符号解析与重定位 -S 编译(但不汇编)-nostdinc 编译的时候不要在标准系统目录中找头文件 -lptread 链接线程库 -lm原创 2021-05-27 15:27:19 · 970 阅读 · 0 评论 -
栈帧
栈帧statck frame 用栈帧来分配给每个函数调用分配一段内存 ebp为帧指针 ebp与esp之间的部分为当前帧原创 2020-11-21 21:03:04 · 405 阅读 · 0 评论 -
bootsect.s 笔记
boot/bootsect.s被BIOS读入内存绝对地址0x7c00(37KB) bootsect.s执行将自个儿移动到0x90000(576Kb) 将(2KB)boot/setup.s读入0x90200,将内核的其他部分装入0x10000开始处 setup程序利用ROM BIOS中读取机器系统数据,并将其存到0x90000开始处,覆盖了bootsect.s 将系统从0x10000移到0x00000处,进入保护模式,并跳转到系统运行剩于部分(在0x00000处)将系统从0x10000移到0x...原创 2020-11-20 16:16:37 · 137 阅读 · 0 评论 -
makefile 写法学习
make file 语法targets:prerequisitescommand $^: 代表所有的依赖文件 $@: 代表目标 $<: 代表第一个依赖文件命令前加@取消回显gcc -c 只编译不连接-g 带可调度信息-o2 更好的编译连接-o 优化-I /directory 指定inclue文件-static 使用静态库-wall 生成 -w 不生成警告-D define...原创 2020-08-06 20:39:40 · 407 阅读 · 0 评论 -
保护模式 80386
控制寄存器原创 2020-11-15 20:24:04 · 312 阅读 · 0 评论 -
虚拟内存、内核空间和用户空间
32位地址对应4G字节的虚存空间内核对用用户虚存空间的使用,堆栈在用户区的顶部,从上向下伸展,而进程的代码和数据都是自底向上分配空间。原创 2020-11-14 17:37:32 · 490 阅读 · 0 评论 -
bochs 设置及使用
bochs下载地址s 单步调试b 0xaa 设置断点c 跳转到断点处r 查看寄存器内容sreg 显示段寄存器内容原创 2020-11-10 11:10:11 · 870 阅读 · 2 评论 -
Linux 与 AT&T汇编
AT&T编码格式mov %eax(源),%ebx(目的)mov $value,%ebx 将变量value的地址给ebxmov $4,%ebx 传立即数操作数长度 b(byte), w(word),l(long)movw %ax,%bx 指定操作数长度远转移ljump section,section,section,offset远调用lcall section,section,section,offset远程返回指令lret $stack_adjustr原创 2020-08-10 23:00:54 · 243 阅读 · 0 评论