linux实验:基于mykernel的一个简单的时间片轮转多道程序内核代码分析

 

学号后三位:288

原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 

1.mykernel

     mykernel是由中科大孟宁老师建立的用于开发操作系统内核的一个平台,你可以在kernel版本库中找到mykernel的代码,链接:https://github.com/mengning/mykernel,根据里面的步骤将mykernel部署到系统中。还有另外一种方法就是使用实验楼提供的虚拟机,上面已经部署好了mykernel的环境,链接:https://www.shiyanlou.com/courses/195。本次linux实验就是利用实验楼中的mykernel平台完成的,孟宁老师的github里包含的教学以及内核代码也给予了我很大的帮助和启发。

2.实验要求

(1)完成一个简单的时间片轮转多道程序内核代码;

(2)分析进程的启动和进程的切换机制

  (3)   理解操作系统是如何工作

3.实验过程

(1)使用实验楼的虚拟机打开终端模拟器,输入以下指令:

cd LinuxKernel/linux-3.9.4
rm -rf mykernel
patch -p1 < ../mykernel_for_linux3.9.4sc.patch  
make allnoconfig
make  //输入以后等待编译完成
qemu -kernel arch/x86/boot/bzImage

下面的运行截图是输入make指令后等待编译完成,可以看到 arch/x86/boot/bzImage is ready

接着在编译完成后输入qemu -kernel arch/x86/boot/bzImage指令后,跳出如下运行界面,

         在QEMU窗口,我们可以看到一个简单的操作系统已经跑起来了,这个系统只是不停的输出一些字符串:>>>>>>>>my_timer_handler here <<<<<<<< 和 my_start_kernel here 。然后关闭qemu窗口,进入LinuxKernel/linux-3.9.4/mykernel文件夹中,可见两个文件mymain.c和myinterrupt.c,打开这两个源代码。

        在mymain.c中,我们可以看到my_start_kernel函数不断地控制输出“my_start_kernel here ”

   在myinterrupt.c中,可以看到my_timer_handler函数不断地输出>>>>>>>>my_timer_handler here <<<<<<<<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值