• 一个简单的循环多道程序内核代码 实现


    张韩 + 原创作品转载请注明出处 + 《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 ",i);
                
        }
    }

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

    void my_timer_handler(void)
    {
    printk(KERN_NOTICE " >>>>>>>>>>>>>>>>>my_timer_handler here<<<<<<<<<<<<<<<<<< ");
    }

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

    然后对编写的代码进行整合,然后整合到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。


    最后。执行内核

    执行结果。终端的显示事实上在不断变化。截当中一段如图:(假设闪烁太快,能够把函数中的数值调大来减慢变化速度)


    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    Python修改文件内容
    Python实现用户注册到文件
    Postman接口测试
    Linux下安装LoadRunner LoadGenerator
    Loadrunner参数化避免重复数据
    Ta-Lib用法介绍 !
    迭代器 生成器
    深入理解python多进程编程
    python多进程
    python多线程
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4803138.html
Copyright © 2020-2023  润新知