一、Linux内核源码(简单分析)

  1. README

     一开始刚接触内核源码的时候,不知道代码文件是什么功能、不清楚如何使用文件的时候,就需要打开README。
    
     README提供了内核的各种编译方法、生成文件的查看方法。
  2. arch

     arch目录中包含和硬件体系结构相关的代码,每种平台有自己相应的目录。
    
     每种平台至少包含3个子目录:kernel(存放支持体系结构特有的特征实现)、lib(存放体系结构特有的对通用函数的实现)、mm(存放体系结构特有的内存管理程序的实现),除了这3个子目录之外,大多数体系结构在必要的情况下还有一个boot子目录,包含了在这种硬件平台上启动内核所使用的部分或全部平台特有代码。
  3. init

     内核启动相关代码,即用于初始化的代码。
    
     linux内核启动初始化的起点是main.c中的函数start_kernel。
  4. kernel

     kernel目录存放linux内核最核心的代码,用于实现系统的核心模块,包括进程管理、进程调度器、中断处理等功能。
    
     目录中的代码用于实现这些核心模块的主体框架,是独立于具体的平台和系统架构的。
  5. 还有很多其他内核源码还没研究……

二、实验截图

三、关于命令

  1. qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img

     qemu 虚拟机模拟处理器,在linu中用于虚拟机内核启动命令。
    
     -kernel 后面加要启动的虚拟机内核文件名。
    
     -initrd rd是ramdisk的简称,后面加系统文件名。
  2. qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -S -s

     -S 在CPU初始化之前,冻结CPU。
    
     -s 1234端口上创建一个tcp接口。若不想使用1234端口,则可以使用-gdb tcp:xxxx来取代-s选项。

四、总结

系统编译内核源代码——使系统有了符号表,使得相应的符号有了其含义和意义。

init——该类型函数主要用于系统启动时的初始化。

rest_init——系统启动最开始的初始化,初始化0号进程,创建了线程管理系统的资源,然后其他进程才开始初始化。0号进程一直存在,只不过linux没有显示给用户看。

“两把剑”——进程上下文切换、中断上下文切换。目前还不是很懂诶=。=

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

linux内核分析 第三周的更多相关文章

  1. linux内核分析第三周

    20135103王海宁 linux内核分析第三周 http://mooc.study.163.com/course/USTC-1000029000  按照课堂提供的方法,命令行一行行敲上去,我是手机缓 ...

  2. LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

    LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163. ...

  3. 20135327郭皓--Linux内核分析第三周 构造一个简单的Linux系统MenuOS

    Linux内核分析第三周  构造一个简单的Linux系统MenuOS 前提回顾 1.计算机是如何工作的三个法宝 1.存储程序计算机 2.函数调用堆栈 3.中断 2.操作系统的两把宝剑 中断上下文的切换 ...

  4. Linux内核分析第三周学习笔记

    linux内核分析第三周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  5. Linux内核分析第三周学习博客——跟踪分析Linux内核的启动过程

    Linux内核分析第三周学习博客--跟踪分析Linux内核的启动过程 实验过程截图: 过程分析: 在Linux内核的启动过程中,一共经历了start_kernel,rest_init,kernel_t ...

  6. 20135320赵瀚青LINUX内核分析第三周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周是学习的主要是构造 ...

  7. Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...

  8. Linux内核分析——第三周学习笔记

    20135313吴子怡.北京电子科技学院 chapter1 知识点梳理 一.Linux内核源代码简介 (视频中对目录下的文件进行了简介,记录如下) arch目录 占有相当庞大的空间 arch/x86目 ...

  9. Linux内核分析第三周——构造一个简单的Linux系统MenuOS

    构造一个简单的Linux系统MenuOS 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/UST ...

随机推荐

  1. 为什么面试要问 hashmap 的原理

    我们都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深.这题经常出现在高级或中高级面试中.投资银行更喜欢问这个问题 ...

  2. 01 - nginx - 安装、配置文件、默认网站、虚拟主机

    一.运维: . 介绍服务器. 服务器逻辑: 服务器选择 操作系统 部署逻辑 业务环境部署逻辑 业务部署图 软件部署文档 日常维护文档 测试 开发上传代码到源码系统 上线 - 测服务器,内测 预发布测试 ...

  3. HTML5-Canvas 初认识

    1. 理解canvas canvas其实是HTML5中一个新增加的标签,对于canvas标签本身并没有什么非常强大的属性(width.height.id.class.style),仅仅作为一个画布存在 ...

  4. linux下面发布80端口的服务

    1:linux下面发布端口号为80 的服务,要在root用户下面发布.否则提示权限不够 2:在普通用户下面配置的java环境,在root用户下面不可用. 解决方法:2.1  要使用source /et ...

  5. PHP消息队列实现及应用_慕课网学习

    https://blog.csdn.net/d_g_h/article/details/79643714 https://blog.csdn.net/tTU1EvLDeLFq5btqiK/articl ...

  6. Spark Sort-Based Shuffle具体实现内幕和源码详解

    为什么讲解Sorted-Based shuffle?2方面的原因:一,可能有些朋友看到Sorted-Based Shuffle的时候,会有一个误解,认为Spark基于Sorted-Based Shuf ...

  7. [vue]vue条件渲染v-if(template)和自定义指令directives

    条件渲染: v-if/template <div id="app"> <h1>v-show: display: none</h1> <di ...

  8. react native android 编译

    修改 Maven 仓库地址 React Native 在初始化时会从 jcenter.binary.com 这个地方下载一些东西,网上搜索了一下,好像是在下载 Maven 相关的依赖. 针对全局进行修 ...

  9. Lower Power with CPF(三)

    常用的一些Lower Power的策略: 1)Clock tree optimization and clock gating:在正常情况下clock信号会一直toggle at the maximu ...

  10. 错误:Python Urlfetch Error:'GET

    1) 如果你初装了 GaAgent, 记得把在 proxy.ini 里的 id 填上:2) 刷新几次:3) 把浏览器关了,重新打开:4) 清除浏览器的缓冲区:5) 清除 cookies6) 用浏览器的 ...