- 博客(4)
- 收藏
- 关注
原创 Linux课程总结报告
虚拟化技术通过在虚拟机监视器(VMM)层中介入和控制整个过程,实现了对虚拟机内部Linux系统的资源管理、中断处理和进程切换的控制。它允许多个虚拟机同时运行,并提供了资源隔离和虚拟化环境的抽象。
2023-05-15 16:49:56 212 1
原创 Linux 操作系统分析实验:分析 time/gettimeofday 系统调用在 ARM64 Linux 中的执行过程
我们需要为 ARM64 新建一个内核编译配置文件,对这个新配置文件进行修改。和 x86 一样在菜单中选择如下编译配置,注意部分选项的位置略有不同。在前一篇文章的基础上还需要在终端提前 export 交叉编译选项再 make(否则编译的还是 x86 的内核),命令如下。同时在编译 busybox 之前也要 export 交叉编译选项。如果要在 VSCode 上调试,还需要更改 .vscode 目录下的 launch.json 和 tasks.json,参考配置如下。
2023-04-26 13:39:14 141 1
原创 lab5 深入理解进程切换
如果切换到用户空间进程,则需要切换地址空间,并调用 membarrier_switch_mm() 函数和 switch_mm_irqs_off() 函数进行一些额外的操作。将当前进程所使用的内核栈顶指针保存到旧进程的task_struct结构中的thread.sp字段中,并将新进程的task_struct结构中的thread.sp字段中保存的值作为新进程的内核栈顶指针。context_switch中的一个重要函数是switch_to,switch_to调用了 __switch_to_asm。
2023-04-26 12:42:44 88 1
原创 基于VS Code的Linux内核调试环境搭建及start_kernel跟踪分析
• 脑加电启动首先由bootloader加载内核,内核紧接着需要挂载内存根文件系统,其中包含必要的设备驱动和工具,bootloader加载根文件系统到内存中,内核会将其挂载到根目录/下,然后运行根文件系统中init脚本执行一些启动任务,最后才挂载真正的磁盘根文件系统。• 我们这里为了简化实验环境,仅制作内存根文件系统。这里借助BusyBox 构建极简内存根文件系统,提供基本的用户态可执行程序。配置VSCode调试Linux内核。5、在.vscode中添加配置文件。6、跟踪Linux内核的启动过程。
2023-04-22 15:28:50 305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人