完成一个简单的时间片轮转多道程序内核代码分析

本文介绍了完成时间片轮转多道程序内核的实验过程,包括实验环境(VMware + Ubuntu 16.04.10)、源码分析和实验总结。实验涉及Linux 3.9.4内核,重点讨论了进程的启动、切换机制,以及QEMU的使用。通过对mypcb.h、mymain.c和my_interrupt.c的分析,阐述了操作系统如何利用中断机制和进程调度工作。
摘要由CSDN通过智能技术生成

235 + 原创作品转载请注明出处 + 中科大孟宁老师的linux操作系统分析: https://github.com/mengning/linuxkernel/

实验要求:

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

仔细分析进程的启动和进程的切换机制;

阐明自己对“操作系统是如何工作的”理解。

实验内容:

一、实验过程及截图

实验环境:VMware 虚拟机+Ubuntu 16.04.10(Linux4.15)

下载并解压kernel内核linux-3.9.4及kernel补丁包mykernel_for_linux3.9.4sc.patch:

sudo apt-get install qemu # install QEMU
sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.4.tar.xz # download Linux Kernel 3.9.4 source code

wget https://raw.github.com/mengning/mykernel/master/mykernel_for_linux3.9.4sc.patch # download mykernel_for_linux3.9.4sc.patch

xz -d linux-3.9.4.tar.xz
tar -xvf linux-3.9.4.tar
cd linux-3.9.4
patch -p1 > ../mykernel_for_linux3.9.4sc.patch  //打补丁
make allnoconfig
make
qemu -kernel arch/x86/boot/bzImage

安装QEMU,编译运行kernel:

需要注意的一点是make的时候可能会产生错误,在/include/linux下找不到compiler-gcc5.h导致make失败。这是因为mykernel是基于linux原来的3.9.4内核写的,当时gcc的版本还没有到5,在对应的文件夹下只有compiler-gcc4.h compiler-gcc3.h compiler-gcc.h。因此需要自己下载compiler-gcc5.h并将它放在make目录的文件夹中的/include/linux中,注意不要错放在系统/usr/include下。

部署compiler-gcc5.h再运行make即可成功make,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值