• 20169212《Linux内核原理与分析》课程总结


    20169212《Linux内核原理与分析》课程总结

    • 每周作业链接汇总

      • 第一周作业:完成linux基础入门实验,了解一些基础的命令操作。

      • 第二周作业:学习MOOC课程——计算机是如何工作的;完成实验楼上配套实验一,反汇编一个简单的C程序,分析堆栈变化情况;阅读学习教材《Linux内核设计与实现》第1,2,18章内容。

      • 第三周作业:使用自己的ubuntu按照书进行基本实验,遇到的一些问题及解决。

      • 第四周作业:学习MOOC课程——操作系统是如何工作的;完成实验楼上配套实验二,使用自己的Linux系统进行环境搭建,完成一个简单的时间片轮转多道程序内核代码;阅读学习教材第3,5章内容。

      • 第五周作业:学习MOOC课程——构造一个简单的Linux系统MenuOS;完成实验楼上配套实验三,跟踪分析Linux内核的启动过程,使用gdb跟踪调试内核从start_kernel到init进程启动;阅读学习教材第4,6章内容。

      • 第六周作业:学习MOOC课程——扒开系统调用的三层皮;完成实验楼上配套实验四,使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,以mkdir为例;阅读学习教材第7,8章内容。

      • 第七周作业:学习MOOC课程——程序和进程;完成实验楼上配套实验五,分析system_call中断处理过程,使用gdb跟踪分析一个系统调用内核函数;阅读学习教材第9,10章内容。

      • 第八周作业:学习MOOC课程——进程的执行和进程的切换;完成实验楼上配套实验六,分析Linux内核创建一个新进程的过程,使用gdb跟踪分析一个fork系统调用内核处理函数sys_clone;阅读学习教材第11,12章内容。

      • 第九周作业:学习MOOC课程—Linux内核的实质和Linux系统的一般执行过程;完成实验楼上配套实验七,Linux内核如何装载和启动一个可执行程,练习动态链接库的两种使用方式;阅读学习教材第13,14章内容。

      • 第十周作业:学习MOOC课程——Linux系统架构和执行过程概览;完成实验楼上配套实验八,理解进程调度时机跟踪分析进程调度与进程切换的过程,使用gdb跟踪分析一个schedule()函数,分析switch_to中的汇编代码;阅读学习教材第15,16章内容。

    • 实验报告链接汇总

      • 实验一 缓冲区溢出漏洞实验:缓冲区溢出造成程序崩溃,溢出的数据覆盖了返回地址。而如果覆盖返回地址的数据是另一个地址,那么程序就会跳转到该地址,如果该地址存放的是一段精心设计的代码(shellcode),可用于实现其他功能;阅读学习教材第17,19,20章内容。

      • 实验二 格式化字符串漏洞实验:找到地址,利用格式化字符串修改内存中的值。

    • 课程收获与不足

      • 自己的收获
        每周作业的形式,督促自己在平时好好积累,努力学习。通过学习,使我对Linux内核有了基本的了解,对基础知识也有了一定的掌握。老师要求发的博客,是一种很好的记录学习的形式,可以把自己的思考过程和解决方法加以记录梳理,日后也可以复习巩固。在学习课程的同时get到了很多实用的新技能,在日后的学习生活中也会有一些帮助。

      • 自己需要改进的地方
        需要改进的地方有很多,课后还需要继续深入的学习。

      • 如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考建议
        互相帮助,共同进步。会帮助队友解决困惑的问题,有问题也会请教队友。

    • 给学弟学妹们的学习建议

    认真做好每一个实验,点滴坚持会有大收获。

    - 如果重新学习这门课,怎么做才可以学的更好
    

    多动手实践,多查找资料,认真总结,逐步修改完善。

    • 问卷调查

      • 你觉得这门课老师应该继续做哪一件事情?
        让同学们提交博客,这是一种很好的学习梳理方式。

      • 你觉得这门课老师应该停止做哪一件事情?
        课程学习方式很新颖,验收全面,停止哪一项都不是很全面。

      • 你觉得这门课老师应该开始做什么新的事情?
        可以把周测试卷下发,对出问题多的题目进行适当点播,课后回顾会更好吸收内容。

      • 课程结束后会继续一周至少一篇博客吗?
        有get的新技能愿意用博客随时和大家分享,随时梳理记录自己的学习过程,不限周期。

  • 相关阅读:
    react dva 的 connect 与 @connect
    es6 解构赋值 新认知/新习惯
    从一到面试题了解js异步机制:setTimeout 和 Pronmise
    React.Fragment 的作用:代替div作为外层
    解决dva dispatch yield生成器函数中异常中断,无法继续调用的问题
    vue v-model 与 组件化的表单组件如何沟通
    react 事件绑定的2种常用方式
    React dva 的使用
    gulp#4.0 Did you forget to signal async completion?
    gulp#4.0
  • 原文地址:https://www.cnblogs.com/Jarvan210/p/6195026.html
Copyright © 2020-2023  润新知