zoukankan      html  css  js  c++  java
  • 20135239 益西拉姆 linux内核分析 跟踪分析Linux内核的启动过程

    回顾

     1.中断上下文的切换——保存现场&恢复现场
    

    本节主要课程内容

    Linux内核源代码简介

    1.打开内核源代码页面

    arch/目录:支持不同CPU的源代码;其中的X86是重点
    init/目录:内核启动相关的代码基本都在该目录中(比如main.c等)
    start_kernel函数就相当于普通C程序的main函数
    kernel/目录:Linux内核核心代码在kernel目录中
    

    README

    介绍了什么是Linux,Linux能够在哪些硬件上运行,如何安装内核源代码等
    

    构造一个简单的linux系统menuOS

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

    启动内核  init是第一个用户态进程,是1号进程。

    使用gdb跟踪调试内核  关于参数 - s,- S:

    - S是指在CPU初始化之前(刚启动的时候)将其冻结
    - s是指在1234这个端口上创建的gdb server
    

    步骤:

    输入gdb之后,gdb即被打开;
    加载Linux符号表;
    连接到刚刚被冻结的Linux系统;
    可以设置断点(break),格式为:break [函数名](此时系统还是被冻结而并没有启动的);
    设置完断点之后,输入c命令continue(继续执行),函数会停在断点处;
    输入list指令之后,可以详细地查看函数停留的位置
    

    简单分析一下start_kernel

    相关资料

    Linux内核启动过程相关的参考资料 计算机的启动过程概述 x86 CPU启动的第一个动作CS:EIP=FFFF:0000H(换算为物理地址为000FFFF0H,因为16位CPU有20根地址线),即BIOS程序的位置。http://wenku.baidu.com/view/4e5c49eb172ded630b1cb699.html BIOS例行程序检测完硬件并完成相应的初始化之后就会寻找可引导介质,找到后把引导程序加载到指定内存区域后,就把控制权交给了引导程序。这里一般是把硬盘的第一个扇区MBR和活动分区的引导程序加载到内存(即加载BootLoader),加载完整后把控制权交给BootLoader。 引导程序BootLoader开始负责操作系统初始化,然后起动操作系统。启动操作系统时一般会指定kernel、initrd和root所在的分区和目录,比如root (hd0,0),kernel (hd0,0)/bzImage root=/dev/ram init=/bin/ash,initrd (hd0,0)/myinitrd4M.img 内核启动过程包括start_kernel之前和之后,之前全部是做初始化的汇编指令,之后开始C代码的操作系统初始化,最后执行第一个用户态进程init。 一般分两阶段启动,先是利用initrd的内存文件系统,然后切换到硬盘文件系统继续启动。initrd文件的功能主要有两个:1、提供开机必需的但kernel文件(即vmlinuz)没有提供的驱动模块(modules) 2、负责加载硬盘上的根文件系统并执行其中的/sbin/init程序进而将开机过程持续下去

    init进程详解 Linux内核中的inittask进程和idle进程 道生一(startkernel....cpuidle),一生二(kernelinit和kthreadd),二生三(即前面0、1和2三个进程),三生万物(1号进程是所有用户态进程的祖先,2号进程是所有内核线程的祖先),新内核的核心代码已经优化的相当干净,都符合中国传统文化精神了。

    总结

    init_task即手工创建的PCB,0号进程最终的idle进程。道生一、一生二、二生三、三生万物。 本次实验一步一步跟着做还是算可以跟上的,只是网络太慢,打开实验楼就很困难,浪费了好多时间,让我感到很沮丧。

  • 相关阅读:
    vbox增加磁盘
    PMP第五版第一次考试相关提醒
    PMP学习系列7:PMBOK(5th)第五章:项目范围管理
    PMP学习系列6:PMBOK(5th)第四章-项目整合管理
    Readlist & AIM1
    如何高校管理你的时间
    PMP学习系列5:PMBOK(5th)第三章-项目管理过程
    PMP学习系列4:PMBOK(5th)第二章-组织影响和项目生命周期
    沃顿商学院最受欢迎的谈判课
    PMP学习系列3:PMBOK(5th)第一章-引言
  • 原文地址:https://www.cnblogs.com/20135239-yxlm/p/5269769.html
Copyright © 2011-2022 走看看