自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Linux lab4

随后,以 svc 指令对应的 el0_sync 为例,el0_sync 处的内核汇编代码首先做的就是保存异常发生时程序的执行现场(保存现场,即用户栈、通用寄存器等),然后根据异常发生的原因(ESR_EL1 寄存器中的内容)跳转到 el0_svc,el0_svc 会调用 el0_svc_handler、el0_svc_common 函数,将 X8 寄存器(regs->regs[8])中存放的系统调用号传递给 invoke_syscall 函数。一.安装工具并配置内核。

2023-05-24 12:06:22 53 1

原创 Linux操作系统分析课程总结报告

作为一名跨专业读研学生,通过两个月linux课程的学习,对linux系统有了进一步深入的了解,学会了使用qemu调试linux内核,熟悉了linux常用操作与命令,面对繁杂的linux源码有了读下去并能够读懂的信心,通过内核源代码和知识点结合的学习方式,我终于明白了Linux系统的结构和设计原理,以及系统各个功能之间是如何分工协作的,通过自己动手运行和调试内核,我深刻体会到了一个操作系统是如何运作起来的。irqfd是基于eventfd的机制来实现的,用于用户态与内核态,以及内核态之间的事件通知;

2023-05-14 14:36:03 240

原创 lab5 Linux内核切换

如果被调度的下一个进程是用户态进程,调用 membarrier_switch_mm 函数,执行一些内存障碍操作,并将当前进程的 active_mm 字段设置为 NULL,将被调度的下一个进程的 active_mm 字段设置为其自己的 mm 字段。如果被调度的下一个进程next是用户进程,则调用membarrier_switch_mm函数,执行一些内存障碍操作,确保内存一致性,并传入当前进程prev的active_mm字段和被调度的下一个进程next的mm字段。否则执行语句6-8。

2023-04-25 19:52:28 77 1

原创 Linux内核调试环境搭建及start_kernel实验

命令行下打断点跟踪代码还是不够方便,用VSCode边看代码随时打断点单步执行会更方便一些,这需要配置.vscode/tasks.json和.vscode/launch.json。配置文件参见https://github.com/mengning/linuxkernel/tree/master/src/kerneldebuging。总是卡在这里,调用堆栈如左侧所示,未找到原因。5.使用vscode调试。init脚本执行成功!

2023-03-22 20:08:43 209

原创 通过汇编理解存储程序计算机和函数调用框架

在main函数中,pushq与movq语句分别将%rbq压栈(%rsp++)、%rbp指向%rsp;执行(之前的call func存放了返回信息),用%rbp-16存放func的返回值%eax(相当于开辟空间定义变量b);,pushq与movq语句分别将%rbq压栈(%rsp++)、%rbp指向%rsp;执行退栈操作,将%rbp指向以%rsp指向的值为地址的空间;分别将其存入%rbp-4、%rbp-8、%rbp-12中;用%rbp+16的地址接收%ecx传参寄存器的值;将%rbp+16的值赋给%eax;

2023-03-13 11:51:33 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除