您的位置:首页 > 编程语言

一个简单的时间片轮转多道程序内核代码 的实现

2015-03-13 09:56 225 查看
张韩 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

首先,解读一下程序的核心代码

void __init my_start_kernel(void)

{

int i = 0;

while(1)

{

i++;

if(i%100000 == 0)

printk(KERN_NOTICE "my_start_kernel here %d \n",i);



}

}

这是内核代码的启动函数,C语言编写,循环部分是每执行100000次,输出一条语句。

void my_timer_handler(void)

{

printk(KERN_NOTICE "\n>>>>>>>>>>>>>>>>>my_timer_handler here<<<<<<<<<<<<<<<<<<\n\n");

}

这段代码是被时间中断时调用,每次被调用的时候输出一条语句。

然后对编写的代码进行整合,然后整合到Linux Kernel-3.9.4中。



或者直接下载mykernel_for_linux3.9.4sc.patch



然后下载linux kernel-3.9.4



下载完成后解压。

进入解压后的文件夹:

cd linux-3.9.4

把自己的代码编译到linux-3.9.4中

patch -p1 < ../mykernel_for_linux3.9.4sc.patch
make allnoconfig
make

最后安装QEMU,运行kernel。





最后,运行内核



运行结果,终端的显示其实在不断变化,截其中一段如图:(如果闪烁太快,可以把函数中的数值调大来减慢变化速度)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐