zoukankan      html  css  js  c++  java
  • Linux内核分析 03

    一,构造一个简单的Linux系统MenuOS

    1、Linux内核源代码简介

    回顾一下前面的三大法宝和两把宝剑。

    arch/x86目录下的代码需要重点关注

    阅读代码的时候把除了x86以外的都删掉会有利于代码的阅读和理解。其他目录下的基本对我们的学习没有什么用处。

    根目录下除了arch外还有几个比较重要的:Documentation、drivers、init

    内核启动的相关代码基本上都在init目录下 

    整个Linux内核启动的起点,main.c       start_kernel 相当于普通C语言程序中的main函数

    习惯:打开什么都先找 readme,基本上都可以自行理解了。

    make mrproper 清理中间程序的指令。

     不同的配置方法、各种make。

    2、构造一个简单的Linux系统

    构建一个简单的Linux系统MenuOS,

    下载安装启动的过程还真是有点慢。。。。

    实验楼卡爆!!!!我的网费啊。。

     3、使用gdb跟踪调试内核(实验楼的实验卡掉了 截图未能导出。。)

    file linux-3.18.6/vmlinux

    target remote:1234

    break start_kernel

    reat_init

    kernel_thread

    kernel_init

    run_init_process

    当系统没有进程需要执行时就调用idle调度。

    进程的0、1、2创建

    学到了什么:

    1. qemu相当于打开一个虚拟机
    2. kernel启动一个内核,位置由其后的文件名指定。如果在当前目录下,可以直接输入文件名,如果不是,则需要输入该内核的全路径。
    3. initrd指令是挂了一个ramdisk虚拟硬盘,是内核的重要补充,rootfs.img就是这个虚拟硬盘,内有分区,然后启动的其实是其中的init文件,这个文件是由之前的menuOS编译而成,gcc -o命名为init。

    为什么make会花费那么长的时间?

  • 相关阅读:
    jzoj3294. 【SHTSC2013】超级跳马
    jzoj3243. Cube
    jzoj3242. Spacing
    jzoj3232. 【佛山市选2013】排列
    jzoj3297. 【SDOI2013】逃考
    jzoj4800. 【GDOI2017模拟9.24】周末晚会
    学习burnside、polya小结
    学习splay或spaly小结
    一个初学者的辛酸路程-了解Python-2
    一个初学者的辛酸路程-初识Python-1
  • 原文地址:https://www.cnblogs.com/KG35/p/5269204.html
Copyright © 2011-2022 走看看