张磊+原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
使用实验楼的虚拟机打开shell,输入下面的两条命令,即可以启动mykernel,
l cd LinuxKernel/linux-3.9.4
l qemu -kernel arch/x86/boot/bzImage
这个程序很简单,程序在两个函数之间按时间进行切换。函数中没有其它功能,只是打印输出,能看到函数已经运行。
然后关闭qemu窗口,cd mykernel ,我们可以找到输出这些字符串的源代码mymain.c和myinterrupt.c
mymain.c 文件:
myinterrupt.c 文件:
实验结论:
1.mykernel 程序启动之后,会调用 my_start_kernel 函数。
2.CPU 会周期性的产生时间中断来运行 my_time_handler 函数。
3.这是一个最简单的程序内核,内此可以看出计算机所谓的多任务处理也只是周期性的产生中断来轮流招待不同的程序,CPU 会保存中断产生的现场,以便继续下一次时间片轮转。