zoukankan      html  css  js  c++  java
  • Linux内核学习总结

    李俊锋 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

    一.实验报告链接

    lab1:通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
    lab2:完成一个简单的时间片轮转多道程序内核代码
    lab3:跟踪分析Linux内核的启动过程
    lab4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
    lab5:分析system_call中断处理过程
    lab6:分析Linux内核创建一个新进程的过程
    lab7:Linux内核如何装载和启动一个可执行程序
    lab8:理解进程调度时机跟踪分析进程调度与进程切换的过程

    二.实验内容总结

    lab1:

    1.x86 at&t汇编的简单语法

    2.函数调用和返回时函数栈的变化

    3.简要概述计算机工作的过程

    lab2:

    1.简要了解linux操作系统进程调度的基本方式

    2.通过简单的进程调度程序和进程PCB结构体了解进程调度的基本原理

    lab3:

    1.了解linux源程序目录结构

    2.详细分析linux系统的启动过程

    (1)分析startkernel函数的源代码

    (2)了解0号进程和1号进程的创建过程

    (3)gdb调试start_kernel函数

    lab4:

    1.学习C语言内嵌汇编的语法

    2.编程通过int 80中断触发系统调用

    3.了解linux系统调用的“三层皮”

    lab5:

    1.通过分析system_call的执行过程详细分析系统调用的执行过程

    lab6:

    1.进程的定义以及进程与程序的区别

    2.查看task_struct结构体了解进程的重要属性

    3.通过分析do_fork函数了解进程创建的基本过程

    lab7:

    1.了解常见目标文件,比如elf

    2.编译,链接,装载的区别

    3.可执行程序装载运行的过程

    lab8:

    1.linux进程调度的过程

    2.调试 switch_to宏,了解linux进程调度的基本过程

    三.实验总结

    对Linux系统的理解及学习Linux内核心得:

    1.linux是一个支持多进程的系统,linux系统处于计算机硬件和应用软件之间负责高效的管理使用硬件资源以及为顶层软件提供借口。另外,linux也支持多线程,linux线程其实是一个轻量级的进程。

    2.linux通过分离用户态和内核态来保证操作系统能够正常的,安全的运行。linux通过维护栈的数据结构来使程序能够高效的运行。

    3.我认为linux的系统调用很好的体现了面向对象编程中封装的思想。通过将对系统的命令封装到系统调用中,这样既可以减轻开发人员的负担,不需要开发人员自己编写底层代码,也可以保证linux系统的安全性和可维护性。linux通过中断来执行系统调用,这样是的系统更加紧凑,结构更加合理。

    4.linux系统对与可执行文件有统一的格式要求,这样方便系统对可执行程序进行管理。linux系统通过使用动态链接技术,不仅节约了硬件资源,还使得软件维护升级更加容易,只需要更换动态链接库即可。

    5.我认为本门课程实验的重点也就是linux进程和进程调度。首先每一个linux进程都有一个task_struct结构体,里边记录着进程的重要信息。在linux系统底层有基于时钟中断的进程调度系统,它使得CPU的执行效率更高。进程通过do_fork函数创建,通过 switch_to宏完成进程的调度。

    在学习《Linux内核分析》课程中最大的收获:

    1.极大的提升了自己在linux平台上调试程序的能力

    2.对linux系统的基本概念,比如进程调度、系统调用有了更详细的理解

    3.对自己独立查看开源项目代码、分析代码的能力起到了很大的促进作用

    学习完《Linux内核分析》课程后您最大的遗憾是什么?

    1.自己的实验能力有待提升,在做实验的过程遇到了很多困难,还好有好心的同学和老师帮助,在此向他们表示由衷的感谢,(*^__^*) 

    2.由于课程时间太短,自己在学习过程中总感觉知识点很杂,难以穿成一条线。希望自己在以后的学习过程中能对linux系统有更好的理解。

    结语:

    经过8周的学习,我对linux系统有了更多的理解,总体上来说,虽然由于课程时间短,学到的内容有限,但是我学会了学习理解linux系统的方法。非常感谢老师和同学们在这个过程中对我的帮助,希望我能在今后的求学道路中越走越远。

  • 相关阅读:
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
    C语言|博客作业04
    C语言|博客作业03
    C语言I博客作业02
    我的第一周作业!
    第三周作业
    读书笔记《莫让青春沾染暮气》
    第二周作业
  • 原文地址:https://www.cnblogs.com/crowpurple/p/5451269.html
Copyright © 2011-2022 走看看