自定义博客皮肤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系统的一般执行过程结合虚拟化技术的Linux系统执行过程课程总结在Linux操作系统分析课程中学到了很多有价值的知识和技能。深入了解了Linux操作系统的组成和架构,包括内核、Shell、文件系统等关键组件。了解了它们如何相互作用,以及如何协同工作来提供一个完整的操作系统环境。Linux操作系统是一种开源的、免费的操作系统,它是由Linus Torvalds在1991年开发的。Linux操作系统的内核是由C语言编写的,它是一个模块化的内核,可以动态地加载和卸载模块。

2023-05-15 23:18:58 80

原创 深入理解进程切换

不同体系结构下汇编代码的切换方法可能有所不同,例如ARM体系结构下,进程切换由context_switch函数实现,它调用switch_mm完成用户空间切换,调用switch_to完成内核栈及寄存器切换3。在进程切换之前,执行调用的每个体系结构都必须与定义的 prepare_task_switch 函数挂钩。如果是用户进程,建立内存屏障,切换 mm_struct,清除或解除对 active_mm 的借用。堆栈的切换, 即ebp的切换, ebp是栈底指针, 它确定了当前用户空间属于哪个进程。

2023-04-26 22:09:21 96 1

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

挂载proc和sysfs文件系统,并输出一些信息。其中,mount命令用于挂载文件系统,-t选项指定文件系统类型,none表示不需要设备;使用如下命令安装gcc-aarch64-linux-gnu、libncurses5-dev、build-essential、git、bison、flex和gdb-multiarch;在调试内核时,QEMU可以模拟一个虚拟机环境,使得开发者可以在虚拟机中运行内核,并且可以使用GDB等调试工具对内核进行调试。该代码用于获取当前系统事件并输出;按照如下命令配置内核编译的选项;

2023-04-01 00:08:57 148

原创 使用VSCode对Linux内核调试环境搭建和start_kernel跟踪分析

在 trap_init 中,还会初始化系统调用(syscall)的中断处理函数,以及初始化各个异常的中断处理函数。在 mm_init 中,还会初始化物理内存管理系统,包括将整个物理内存空间映射到内核地址空间中,并为每个进程创建一个页表,以便实现虚拟内存的管理。在 sched_init 中,还会初始化内核线程的 PCB 和进程调度队列,以便它们也能够被进程调度系统管理。build-essential是一个Ubuntu的软件包,包含了GNU编译器集合,GNU调试器,和其他编译软件所必需的开发库和工具。

2023-03-24 01:08:13 266

空空如也

空空如也

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

TA关注的人

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