李洋  原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

转眼几周过去,《Linux内核分析》这门课也眼看就要结束,再这几周的学习中,我在原来的基础上加深了对Linux系统内核的理解,比如很多内存管理,进程管理的知识,原来对于我只是书本上的东西,通过课程和实验却能够通过切实的代码和运行过程的跟踪而表现出来。

这几周的学习心得:

  这次学习涉及了Linux内核调度机制,schedule如何工作,系统API的实现,创建新进程过程的分析,可执行程序的装载及可执行ELF文件的结构等知识,线上课程总体上来说主要涉及的是内核启动~调度~运转的一个过程。

  基于x86计算机Linux系统的启动顺序。第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并从活动分区读取GRUB、LILO或SYSLINUX等引导装入程序,之后引导装入程序会加载压缩后的内核映像并将控制权传递给它。内核取得控制权后,会将自身解压缩并投入运转。

  基于x86的处理器有两种操作模式:实模式和保护模式。在实模式下,用户仅可以使用1 MB内存,并且没有任何保护。保护模式要复杂得多,用户可以使用更多的高级功能(如分页)。cpu必须中途将实模式切换为保护模式。但是,这种切换是单向的,即不能从保护模式再切换回实模式。

  内核初始化的第一步是执行实模式下的汇编代码,之后执行保护模式下init/main.c文件中的 start_kernel()函数。start_kernel()函数首先会初始化CPU子系统,之后让内存和进程管理系统就位,接下来启动外部总线和 I/O设备,最后一步是激活初始化(init)程序,它是所有Linux进程的父进程。初始化进程执行启动必要的内核服务的用户空间脚本,并且最终派生控制台终端程序以及显示登录(login)提示。

  

下面是我学习这门课所有文章的目录:

计算机工作原理简析

Linux操作系统内核工作机制——简单时间片轮转的实现

跟踪分析Linux系统内核的启动过程

使用库函数API和C代码中嵌入汇编代码系统调用

分析write中断处理过程

分析Linux系统内核创建一个新进程的过程

Linux内核如何装载和启动一个可执行程序

理解进程调度时机跟踪分析进程调度与进程切换的过程

总结:

  通过学习,我掌握了更多的编译和GDB调试技巧,知道了如何自己编译生成一个Linux系统,当然更进一步的可能就是在系统内核上做手脚,尝试更改~删减~增加内核功能。

  当然。。。顺便的,写博客的能力也得到了很大的提升。。。这算是意外之喜,写博客确实能够从另一方面体现自己对知识的掌握程度,不过呢,确实让我有高中时候被语文老师逼着写周记的感觉(那是解决方案是自己写连载小说。。。)。

  如果说意见的话,我觉着本课程的富文本材料可以更丰富一些,尤其是对于核心代码的注解。同时呢,目前实验的设计更侧重与验证实验,我希望能有更多让同学们自己发挥的东西,比如提出一个功能,让大家结合本节所讲的内容进行实现;或者给出代码框架,让大家补全汇编代码之类,我觉着这样子动手动脑去做,会比照着做得验证实验更为有效。

  

转载于:https://www.cnblogs.com/digital-romance/p/llinxu_kernel.html

Linux内核分析学习心得相关推荐

  1. 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业

    linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下, ...

  2. 2018-2019-1 20189206 《Linux内核原理与分析》第五周作业

    linux内核分析学习笔记 --第四章 系统调用的三层机制 学习重点--系统调用 用户态.内核态和中断 Intel x86 CPU有四种不同的执行级别,分别是0,1,2,3其中数字越小,特权越高. L ...

  3. 《Linux内核分析》期末总结及学习心得

    [洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 一.学习心得 本学 ...

  4. linux内核文件系统的架构,《深入理解Linux内核》-文件系统学习心得

    内核中要注意的是各种结构体,结构体之间的联系和各个函数以及函数之间的调用关系,参数的传递和函数的功能. 内核中数据结构的字段无外乎包括三种字段:属性字段,调用方法,指向其它结构的指针.具体如下图所示: ...

  5. 《独辟蹊径品内核:Linux内核源代码导读(china-pub首发)》的前言

    我觉得作者讲的学习方法很好值得看看. 下面是本书作者所写: 几乎每一个操作系统内核的学习者在初学阶段都会感觉到难以入门.这是由于内核涉及到知识面非常广泛,需要学习者从根本上掌握大量的知识,这包括:程序 ...

  6. 内核函数输出怎么看到_谈谈如何学习Linux内核

    学习内核的好处很多,在学习过程中不仅可以夯实大量理论基础,还可以学习到很多编码惯用法,提升学习能力和分析能力. 一.确立高度,明确目标 高度决定视角,视角决定行动 在学习内核过程中最容易犯的错误,也是 ...

  7. Linux 内核中断体系 初探

    还是要先理解整个中断的体系,首先要理解对中断的含义 如果这是涉及到的软件的调试的话,没有接触过硬件的同学会对,gdb的调试中的中断有一定的认知 但是,这两个中断指的意思是不相同的,gdb的调试中的中断 ...

  8. 期末总结:LINUX内核分析与设计期末总结

    朱国庆原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一,心得体会 关于网上听课这 ...

  9. 换种方法学操作系统,轻松入门Linux内核

    计算机已成为现代人日常工作.学习和生活中必不可少的工具.操作系统是计算机之魂,作为用户使用计算机的接口,它负责调度执行各个用户程序,使计算机完成特定的任务:作为计算机硬件资源的管理者,它负责协调计算机 ...

  10. Linux内核源码分析方法

    说明:这是一个刚接触内核三个月的同学,通过对一个内核特性的分析,总结出一套分析内核的方法. 一.内核源码之我见 Linux内核代码的庞大令不少人"望而生畏",也正因为如此,使得人们 ...

最新文章

  1. 结合实例讲解广域网路由基本技术
  2. 【经典面试题一】最长公共子序列(经典动态规划题)
  3. iview admin npm install报错_聊聊NPM镜像那些险象环生的坑
  4. 【模式识别与机器学习】——3.9势函数法:一种确定性的非线性分类方法
  5. 学习人工智能不走捷径,走大道的方式
  6. [转载] java如何实现一个字符串的反转和替换
  7. python监控linux运行程序_如何在linux/tcl/python中监控正在打开或启动的应用程序?...
  8. 两个或多个线程执行完成之后继续执行之后的步骤,CountDownLatch与CyclicBarrier
  9. 阿里双十一技术揭秘——双十一 手淘技术用了这几招
  10. HSRP 和 VRRP 协议
  11. linux screen会话命令
  12. 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
  13. 笔记1-fedora14初识及vmware-tool安装
  14. JAVA常量池,一篇文章就足够入门了。(含图解)
  15. 冒泡、选择和插入排序图解详细分析
  16. 被宋美龄封杀的民国绝色女星
  17. android程序怎么执行,电脑怎么运行安卓手机程序【详细介绍】
  18. (转)EJB是什么?
  19. 计算机控制电梯报告总结,电梯控制系统论文
  20. 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...

热门文章

  1. python版本安装
  2. Java mongo入门
  3. 如何格式化用过的磁带,让他被新磁带机重复利用
  4. AndroidGUI24:TabHost常用技巧
  5. 网络战争阴影临近,伊朗核设施受攻击
  6. Error accessing PRODUCT_USER_PROFILE?
  7. 官网下载keil MDK最新版本、历史版本和芯片pack包
  8. 波形分析--DSRC 时间窗测量
  9. 提供 web前端、H5、html页面 技术服务
  10. sublime3环境