自定义博客皮肤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操作系统的使用。在这学期的课程中我学到的知识有以下几点:Linux操作系统的架构,如内核、Shell、文件系统等,以及它们之间协同提供完整操作系统的基本原理;这门课为我带来的不仅是专业知识的增长,更提高了我面对不熟悉的知识时的学习探索能力。虚拟化技术在Linux系统中的应用,可以实现一台物理主机上同时运行多个虚拟机,实现资源共享和隔离,同时也能够确保每个虚拟机都可以独立运行自己的操作系统。

2023-05-14 23:12:25 249

原创 深入理解进程切换

将当前进程所使用的内核栈顶指针保存到旧进程的task_struct结构中的thread.sp字段中,并将新进程的task_struct结构中的thread.sp字段中保存的值作为新进程的内核栈顶指针;从当前进程的内核栈中弹出之前保存的%rbp、%rbx、%r12、%r13、%r14和%r15寄存器的值,并恢复其原本的值。为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复执行以前挂起的某个进程。该函数是处理操作系统中进程切换的汇编代码,可以将当前正在运行的进程切换为被调度的下一个进程。

2023-04-25 19:35:40 510

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

el0_sync在完成保存现场的工作之后,会根据ESR_EL1寄存器确定同步异常产生的原因,同步异常产生的原因很多,在ARM64 Linux中最常见的原因是svc指令触发了系统调用,所以排在最前面的就是条件判断跳转到el0_svc,el0_svc中主要负责调用C代码的el0_svc_handler处理系统调用和ret_to_user系统调用返回。一般系统调用会在堆栈上保存一些寄存器的值,会保存中断发生时当前执行程序的栈顶地址、当时的状态字、当时的指令指针寄存器的值。使用 4.2.1 版本的 qemu。

2023-03-28 17:17:19 226

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

copy_process()是创建一个进程的主要的代码,主要完成了调用dup_task_struct复制当前进程(父进程)描述符task_struct、信息检查、初始化、把进程状态设置为TASK_RUNNING(此时子进程置为就绪态)、采用写时复制技术逐一复制所有其他进程资源、调用copy_thread_tls初始化子进程内核栈、设置子进程pid等。单步跳过进行跟踪分析,发现0号进程init_task被设为整个系统的初始进程,即0号进程是手工创建的,其他进程都是0号进程创建的。1号进程完成用户态初始化。

2023-03-20 22:56:11 479

空空如也

空空如也

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

TA关注的人

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