自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux课程总结

作为一个常年使用windows的计算机学生,通过本门课程,我熟悉了linux相关的命令,以及了解linux的原理如进程切换,系统调用、可执行程序工作原理。本门课程一步步带着我学习了编译内核,构建根文件系统,通过qemu模拟环境启动内核,使用gdb断点调试内核程序,我对linux的内核有了更深入的理解。另外,本门课程让我对vscode也有了更深入的了解,让我懂得了如何用vscode调试linux内核。

2023-05-14 21:43:11 278

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

ARM64 架构下 Linux 系统调用由同步异常 svc 指令触发,当用户态(EL0 级)程序调用库函数 gettimeofday() 从而触发系统调用的时候,先把系统调用的参数依次放入 X0-X5 这 6 个寄存器(Linux 系统调用最多有 6 个参数,ARM64 函数调用参数可以使用 X0-X7 这 8 个寄存器),然后把系统调用号放在 X8 寄存器里,最后执行 svc 指令,CPU 即进入内核态(EL1 级)。系统调用触发的异常最终会跳转到 el0_sync 的同步异常处理程序入口。

2023-04-25 11:32:53 77 1

原创 lab5 深入理解进程切换

这段代码是一个用于进程切换的函数,它接收三个参数:当前的运行队列rq,当前正在运行的进程prev以及要被调度的下一个进程next。该函数的目的是将当前正在运行的进程prev切换为被调度的下一个进程next。这段代码是一个条件语句,根据被调度的下一个进程next所在的地址空间进行选择。代码中,如果next所在的地址空间为空(即next是内核进程),则执行语句1-5;否则执行语句6-8。Linux 内核中的上下文切换函数 是content_switch。

2023-04-25 11:17:21 95 1

原创 linux操作分析lab3

这里首先运行“/sbin/init”,如果失败再运行“/etc/init”,然后是 “/bin/init”,然后是“/bin/sh”(也就是说,init可执行文件可以放在上面代码中寻找的4个目录中都可以),如果都失败,则可以通过在系统启动时再添加的启动参数来指定init,比如init=/home/rootfs/init。init进程是Linux系统的第一个用户态进程,为1号进程,没有父进程,由Linux内核直接启动,接下来还创建了一个kthreadd内核线程,来管理系统的资源。

2023-03-23 17:57:04 150 1

空空如也

空空如也

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

TA关注的人

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