linux内核期中总结

一、计算机是如何工作的?

1、存储程序计算机工作模型

  1)冯诺依曼体系结构

  2)存储程序计算机工作模型

  3)CPU识别什么样的指令?如何定义?

    API:程序员与计算机的接口界面。

    ABI:程序与CPU接口界面

2、X86汇编基础

  1) X86 CPU的寄存器

  2)常见汇编指令

http://www.cnblogs.com/20135132yoggie/p/5220003.html

二、操作系统是如何工作的

1、函数调用堆栈

  1)三个法宝 计算机是如何工作的?(总结)——三个法宝(存储程序计算机、函数调用堆栈、中断机制)

  2)深入理解函数调用堆栈

2、借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断

3、在mykernel基础上构造一个简单的操作系统内核

http://www.cnblogs.com/20135132yoggie/p/5240418.html

三、构造一个简单的Linux系统MenuOS

1、linux内核源代码简介

三大法宝(存储程序计算机、函数调用堆栈、中断)和两把宝剑(中断上下文的切换:保存现场和恢复现场、进程上下文的切换)

  1)在linux内核源码里面arch占有的代码量相当庞大。arch/x86目录下的代码是我们重点关注的。

  2)内核启动相关的代码基本都在init目录下(main.c)。

  start_kernel是初始化linux内核的起点。

  start_kernel相当于c程序中的main函数

  3)linux内核的核心代码在kernel目录中

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

  init是第一个用户态进程,是1号进程。

3、跟踪调试Linux内核的启动过程

http://www.cnblogs.com/20135132yoggie/p/5251382.html

四、扒开系统调用的三层皮(上)

1、用户态、内核态和中断

  库函数将系统调用封装起来。

  1)什么是用户态和内核态

  2)在linux内核代码中区分用户态和内核态

    用cs(代码段选择寄存器)和eip(偏移量寄存器)进行区分。

  3)中断处理是从用户态进入内核态的主要方式

2、系统调用概述

3、使用库函数API和C代码中嵌入汇编代码触发同一个系统调用

http://www.cnblogs.com/20135132yoggie/p/5279906.html

五、扒开系统调用的三层皮(下)

1、给menuOS增加time和time-asm

2、使用gdb跟踪系统调用内核函数sys_time

3、系统调用在内核代码中的工作机制和初始化

  1) 系统调用在内核代码中的工作机制和初始化

  2) 简化后便于理解的system_call伪代码

  3)简单浏览system_call和iret之间的主要代码

http://www.cnblogs.com/20135132yoggie/p/5312850.html

六、进程的描述和进程的创建

1、进程的描述

  1)进程描述符task_struct数据结构(一)

  操作系统的三大功能:进程管理(核心)、内存管理、文件系统。

2、进程的创建

http://www.cnblogs.com/20135132yoggie/p/5333026.html

七、可执行程序的装载

1、预处理、编译、链接和目标文件的格式

  1)可执行程序是怎么得来的

  2)目标文件的格式ELF

  3)静态链接的ELF可执行文件和进程的地址空间

2、可执行程序、共享库和动态加载

  1)装载可执行程序之前的工作

  2)装载时动态链接和运行时动态链接应用举例

  3)可执行程序的装载

    1.可执行程序的装载相关关键问题分析

    2.sys_execve的内部处理过程

    3.使用gdb跟踪sys_execve内核函数的处理过程

    4.可执行程序的装载与庄生梦蝶的故事

    5.浅析动态链接的可执行程序的装载

http://www.cnblogs.com/20135132yoggie/p/5363734.html

八、进程的切换和系统的一般执行过程

1、进程切换的关键代码switch_to分析

  1)进程进度与进程调度的时机分析

  2)进程上下文切换相关代码分析

2、Linux系统的一般执行过程

  1)Linux系统的一般执行过程分析

  2)Linux系统执行过程中的几个特殊情况

  3)内核与舞女

3、Linux系统架构和执行过程概览

  1)Linux操作系统架构概览

  2)最简单也是最复杂的操作——执行ls操作

  3)从CPU和内存的角度看Linux系统的执行

http://www.cnblogs.com/20135132yoggie/p/5389083.html

总结

  linux内核分析的网课转眼就结束了,这几个月来,还是收获颇丰,至少现在对一些操作还是有些了解,在实验过程中,虽然碰到了许多问题,但还是一个一个的解决了,使用gdb调试,设断点等等一系列操作。了解了计算机是怎么工作的,什么是操作系统,操作系统是如何工作的,了解系统调用的过程,以及进程的描述和创建,可执行程序的装载,进程的创建等等。需要在今后的学习中,通过不断练习加深理解。

时间: 2024-08-09 00:54:05

linux内核期中总结的相关文章

20135327郭皓--Linux内核分析第九周 期中总结

Linux内核分析第九周 期中总结 一.知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆栈 模拟存储程序计算机工作模型和时钟中断 在mykernel基础构建一个简单的操作系统 3.构造一个简单的Linux系统 Linux内核源代码 构造一个简单的Linux系统 跟踪调试Linux内核的启动过程 4. 系统调用 用户态.内核态和中断 系统调用概述 使用库函数API和C代码

Linux内核分析课程期中总结

Linux内核分析课程期中总结 姓名:王朝宪 学号:20135114 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.计算机是如何工作的 个人理解:计算机就是通过和用户进行交互,执行用户的指令,这些指令存放在内存中,通过寄存器存储,堆栈变化,来一步步顺序执行. 二.存储程序计算机工作模型 1.冯诺依曼体系结构—存储程序计算机 硬件角度(主板):通过cpu中IP寄存器指向一个

Linux内核分析——期中总结

期中总结 一.MOOC课程 (一)计算机是如何工作的 1.冯诺依曼体系结构的核心思想是存储程序计算机. 2.CPU在实际取指令时根据cs:eip来准确定位一个指令. 3.寄存器模式,以%开头的寄存器标示符. 立即数是以$开头的数值. 直接寻址:直接访问一个指定的内存地址的数据. 间接寻址:将寄存器的值作为一个内存地址来访问内存. 变址寻址:在间接寻址之时改变寄存器的数值. 4.eip寄存器不能被直接修改,只能通过特殊指令间接修改. 5.在32位x86 CPU中,我们使用push和pop指令实现入

20135239 Linux内核分析 期中总结

期中总结 链接 网易云课堂 MOOC 摘录与实验内容 第一周: http://www.cnblogs.com/20135239-yxlm/p/5216842.html 第二周: http://www.cnblogs.com/20135239-yxlm/p/5247831.html 第三周: http://www.cnblogs.com/20135239-yxlm/p/5269769.html 第四周: http://www.cnblogs.com/20135239-yxlm/p/5295827.

Linux内核分析期中知识点总结

Linux内核分析期中知识点总结 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工作的 函数调用堆栈 模拟存储程序计算机工作模型和时钟中断 在mykernel基础构建一个简单的操作系统 3.构造一个简单的Linux系统 Linux内核源代码 构造一个简单的Linux系统 跟踪调试Linux内核的启动过程 4. 系统调用 用户态.内核态和中断 系统调用概述 使用库函数API和C代码中嵌入汇编代码触

Linux内核分析期中总结

Linux内核分析期中知识点总结 1.计算机是如何工作的? 存储程序计算机工作模型 X86汇编基础 汇编一个简单的C程序分析其汇编指令执行过程 2.操作系统是如何工作的? 函数调用堆栈 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断 在mykernel基础上构造一个简单的操作系统内核 3.构造一个简单的Linux系统MenuOS Linux内核源代码简介 构造一个简单的Linux系统 跟踪调试Linux内核的启动过程 4.扒开系统调用的三层皮(上) (一)用户态.内核态和中断处

《Linux内核分析》 期中总结

<Linux内核分析> 第一节 计算机是如何工作的:http://www.cnblogs.com/20132109HKK/p/5225027.html <Linux内核分析> 第二节 操作系统是如何工作的:http://www.cnblogs.com/20132109HKK/p/5248108.html <Linux内核分析> 第三节 构造一个简单的Linux系统MenuOS:http://www.cnblogs.com/20132109HKK/p/5272649.ht

linux内核分析(网课期末&amp;地面课期中)

堆栈变化过程: Linux内核分析——计算机是如何工作的 计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能: enter pushl %ebp movl %esp,%ebp leave movl %ebp,%esp popl %ebp 函数参数传递机制和局部变量存储 中断,多道程序操作系统的基点,

《Linux内核分析》期中总结

                             <Linux内核分析>期末总结                                                                            20135109 高艺桐 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  一.博客地址汇总 第一周学习笔记计算机是如何工作的 第二周学习笔记深入理解计算机 第三