摘要: 第七周作业 1.进程描述符task_struct数据结构(一) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结构很庞大 Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是T 阅读全文
posted @ 2019-11-02 16:19 20199325赵恩泽 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 正常的使用gdb跟踪分析函数调用 使用make rootfs命令 用gdb跟踪分析一个系统调用内核函数 对于宏SAVE_ALL来说,这条语句会保存当前线程的现场,然后是执行system_call,跳转到相应系统调用号所对应的服务例程当中,也就是在sys_call_table表中找到了相应的函数入口点 阅读全文
posted @ 2019-10-24 21:23 20199325赵恩泽 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 第五周作业主要是选择一个系统调用(13号系统调用time除外),使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,在实验楼Linux虚拟机环境下完成实验。 系统调用的列表参见 http://codelab.shiyanlou.com/xref/linux 3.18.6/arch/x8 阅读全文
posted @ 2019-10-17 19:05 20199325赵恩泽 阅读(120) 评论(0) 推荐(0) 编辑
摘要: start_kernel函数的执行过程 总结 在本实验中,我分析了Linux系统的启动过程。最初执行的进程即是0号进程init_task,它是被静态产生的,内存栈的位置固定,执行一些初始化的工作。一直到start_kernel开始调用执行sched_init(),0号进程被init_idle(cur 阅读全文
posted @ 2019-10-09 12:41 20199325赵恩泽 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 在实验楼当中进行实验3的实践:主要是针对cpu占用分配,使用时间片轮转算法进行分配 在Shell命令当中输入如下代码: $ cd ~/LinuxKernel/linux 3.9.4 $ rm rf mykernel $ patch p1 阅读全文
posted @ 2019-09-28 10:08 20199325赵恩泽 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 冯诺依曼计算机硬件框图: 下面是一个简单的程序example.c。 intadd_a_and_b(int a,int b){returna+b;}intmain(){returnadd_a_and_b(2,3);} gcc 将这个程序转成汇编语言。 $ gcc S example.c 上面的命令执行 阅读全文
posted @ 2019-09-17 20:01 20199325赵恩泽 阅读(213) 评论(1) 推荐(0) 编辑
摘要: 1.显示一句话welcome !/bin/bash script4 1.sht var1="welcome to use Shell script" echo $var1 pwd ls i 2. 使用函数判断一个数是否是素数 !/bin/bash script4 17.sht testfile() 阅读全文
posted @ 2019-09-15 22:49 20199325赵恩泽 阅读(178) 评论(1) 推荐(0) 编辑