自定义博客皮肤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源码分析课程总结报告

以前对这些概念仅限于概念上的了解,在这门课中,通过源码的讲解,可以了解到这些过程究竟是怎样的,这些过程包括:Linux的核心编译、系统调用、进城的创建(调度以及切换)、可执行程序的原理。在了解这些概念前,老师还带领我们大致了解了一下汇编语言,向我们说明了汇编语言是与具体的处理器息息相关的,也带领我们了解到从老的16位一直到64位处理器的不同的区别、ARM处理器和x86处理器汇编语言的区别。(2)内核线程主动调用schedule(),只有进程上下文的切换,没有发生中断上下文的切换,与最一般的情况略简略;

2023-05-15 17:29:35 85 1

原创 Linux操作系统分析-实验五

进程上下文切换的核心函数为`context_switch`,这一段代码位于内核中(目录为`kernel/sched/core.c`),与体系结构无关。`context_switch()` 一共有三个传入参数,其中`rq`表示当前就绪队列,`struct rq`是一个成员非常多的结构体,描述了此CPU上所运行的所有进程,`prev`与`next`分别指向了是前序、后序进程的描述符。

2023-04-26 14:17:08 214 1

原创 Linux操作系统分析 实验四

这时CPU是知道异常类型和异常向量表的起始地址的,所以可以自动把VBAR_EL1寄存器的值(vectors),和第3组Synchronous的偏移量0x400相加,即vectors + 0x400,得出该异常向量空间的入口地址,然后跳转到那里执行异常向量空间里面的指令。svc指令触发了系统调用,所以排在最前面的就是条件判断跳转到el0_svc,el0_svc中主要负责调用C代码的el0_svc_handler处理系统调用和ret_to_user系统调用返回。制作dev和lib目录中的内容。

2023-03-31 19:05:06 148

原创 Linux操作系统分析-实验三

​ 电脑加电启动首先由bootloader加载内核,内核紧接着需要挂载内存根文件系统,其中包含必要的设备驱动和工具,bootloader加载根文件系统到内存中,内核会将其挂载到根目录/下,然后运行根文件系统中init脚本执行一些启动任务,最后才挂载真正的磁盘根文件系统。配置文件参见https://github.com/mengning/linuxkernel/tree/master/src/kerneldebuging。配置.vscode/tasks.json和.vscode/launch.json。

2023-03-17 16:38:57 171

原创 linux实验一

需要声明:其中带.的为注释内容(已经删掉),寄存器ebp为堆栈底,esp为堆栈的顶部,leave指令: movl %ebp,%esp popl %ebp。call指令:pushl %eip。ret指令: pop eip。

2023-03-11 11:15:01 70

空空如也

空空如也

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

TA关注的人

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