自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 问答 (4)
  • 收藏
  • 关注

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

通过对Linux操作系统分析课程的学习,我了解了Linux的基本使用,如一些基本的命令(ls、ps、find、grep),接着又深入了解了Linux内核的执行过程,比如系统调用、进程调用、中断等,对Linux系统有了更加深刻的认识。在阅读Linux源码的过程中,我学会了使用VScode和gdb工具辅助学习,其中遇到了许多问题,通过网上查询和询问同学的方式,最终得到解决。在前几节课时,老师通过讲解汇编代码和手动模拟栈,使我对函数的调用和系统调用有了更加深刻的认识。

2023-05-15 20:27:09 112 1

原创 深入理解进程切换

(4)__switch_to_asm将prev进程的寄存器状态压栈,其中RIP寄存器是在调用__switch_to_asm时(即使用了call指令)压栈的,__switch_to将寄存器状态转化为next进程的状态,并通过return(即ret指令),将next原来栈顶地址sp存入RIP寄存器。(2)进行进程切换时,首先要通过int 0x80触发系统调用,这时候会调用schedule()函数切换到内核线程,内核线程再次调用schedule()函数从原来的进程切换到新的进程。进程切换就是变更进程上下文。

2023-04-27 20:48:26 141 1

原创 以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34

在ARM64系统环境下是通过X8寄存器传递系统调用号,在基于华为鲲鹏处理器的openEuler操作系统云主机环境下分析静态编译反汇编代码可以发现C库函数time内部封装的是gettimeofday系统调用,系统调用号为0xa9(169),通过查阅Linux内核源代码中的include\uapi\asm-generic\unistd.h可以找到169号gettimeofday系统调用对应的内核处理函数为sys_gettimeofday。原因是在配置.config时,选项被覆盖了,将选项添加到文件尾部。

2023-04-24 22:22:15 176 1

原创 基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析

电脑加电启动首先由bootloader加载内核,内核紧接着需要挂载内存根文件系统,其中包含必要的设备驱动和工具,bootloader加载根文件系统到内存中,内核会将其挂载到根目录/下,然后运行根文件系统中init脚本执行一些启动任务,最后才挂载真正的磁盘根文件系统。(5)新建init脚本文件,并放到根文件系统根目录下(rootfs/init),init内容如下。(3)安装curses库(之后会基于curses库的文本窗口界面配置Linux)(1)从浏览器中下载.deb文件,执行如下命令安装。

2023-03-23 21:53:06 140

空空如也

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

TA关注的人

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