zoukankan      html  css  js  c++  java
  • 2020-2021-1 20209328 《Linux内核原理与分析》第三周作业

    1.实验内容
    完成一个简单的时间片轮转多道程序内核代码。在Github中拷贝代码对原代码进行修改并重新按照步骤进行。
    2.实验过程
    根据老师的实验指导在实验楼环境下打开shell,
    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
    然后 cd mykernel
    看到原mymain.c和myinterrupt.c,


    运行的结果如下:

    之后修改mymain.c和myinterrupt.c,并加入mypcb.h。
    现在的mymain.c和myinterrupt.c,


    运行结果如下:

    实验过程遇到的问题
    第二次想重新运行的时候运行结果与第一次不同

    自己分析可能是因为patch -p1 < ../mykernel_for_linux3.9.4sc.patch
    make allnoconfig加入了时间片轮转多道程序内核代码的运行环境,
    然后向同学进行询问:
    3.学到的知识
    前面的实验已经涉及到了计算机3个非常重要的基础性概念中的两个:1是存储程序计算机,他基本上是所有计算机的基础性的逻辑框架;另一个就是堆栈。
    还有一个非常基础性的概念就是中断,他们3个可以叫做计算机的三大法宝。
    堆栈的相关寄存器:ESP、EBP。堆栈的基本操作:push、pop。堆栈里面的特别关键的就是函数调用堆栈框架。
    内嵌汇编:
    Asm( 汇编器模板(Assembler templAte)
    : 输出操作数 可选
    : 输入操作数 可选
    : 占用的寄存器 可选
    );
    代码与对应的寄存器

  • 相关阅读:
    python matplotlib 绘图
    python set add 导致问题 TypeError: unhashable type: 'list'
    python 子类继承父类的__init__方法
    python 内存监控模块之memory_profiler
    git log 常用命令
    wireshark使用教程
    python os.path模块
    Linux crontab 定时任务
    linux环境变量LD_LIBRARY_PATH
    Linux的ldconfig和ldd用法
  • 原文地址:https://www.cnblogs.com/matahh/p/13872498.html
Copyright © 2011-2022 走看看