《Linux内核 核心知识全解析(完)》
Posted cx2016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Linux内核 核心知识全解析(完)》相关的知识,希望对你有一定的参考价值。
- P1402_利用mykernel实验模拟计算机硬件平台
- P1501_C代码中嵌入汇编代码的写法
- P1602_一个简单的操作系统内核源代码
- P1703_运行这个精简的操作系统内核
- P1801_Linux内核源代码
- P1901_构造一个简单的Linux系统MenuOS
- P2001_使用gdb跟踪调试Linux内核的方法
- P2102_简单分析一下start_kernel
- P2201_用户态、内核态和中断处理过程
- P2301_系统调用概述和系统调用的三层皮
- P2401_使用库函数API获取系统当前时间
- P2502_C代码中嵌入汇编代码的写法(复习可跳过)
- P2603_使用C代码中嵌入汇编代码触发系统调用获取系统当前时间
- P2701_给MenuOS增加time和time-asm命令
- P2801_使用gdb跟踪系统调用内核函数sys_time
- P2901_系统调用在内核代码中的工作机制和初始化
- P3002_简化后便于理解的system_call伪代码
- P3103_简单浏览system_call到iret之间的主要代码
- P3201_进程描述符task_struct数据结构(一)
- P3302_进程描述符task_struct数据结构(二)
- P3401_进程的创建概览及fork一个进程的用户态代码
- P3502_理解进程创建过程复杂代码的方法
- P3603_浏览进程创建过程相关的关键代码
- P3704_创建的新进程是从哪里开始执行的?
- P3805_使用gdb跟踪创建新进程的过程
- P3901_可执行程序是怎么得来的?
- P4002_目标文件的格式ELF
- P4103_静态链接的ELF可执行文件和进程的地址空间
- P4201_装载可执行程序之前的工作
- P4302_装载时动态链接和运行时动态链接应用举例
- P4401_可执行程序的装载相关关键问题分析
- P4502_sys_execve的内部处理过程
- P4603_使用gdb跟踪sys_execve内核函数的处理过程
- P4704_可执行程序的装载与庄生梦蝶的故事
- P4805_浅析动态链接的可执行程序的装载
- P4901_进程调度与进程调度的时机分析
- P5002_进程上下文切换相关代码分析
- P5101_Linux系统的一般执行过程分析
- P5202_Linux系统执行过程中的几个特殊情况
- P5303_内核与舞女
- P5401_Linux操作系统架构概览
- P5502_最简单也是最复杂的操作——执行ls命令
- P5603_从CPU和内存的角度看Linux系统的执行
把当前栈的寄存器内容等,压到另外一个叫“内核栈”的栈里面去
把EIP指向一个叫做中断处理程序的入口,做保护现场的工作;然后执行中断处理程序;
mykernel:模拟了时钟中断——只有一个程序,隔一段时间就中断一次
在此基础上实现了一个极小的 基于时间片轮转的多进程调度 内核
系统调用是一种特殊的中断,存在保护现场和恢复现场的问题
SAVE_ALL
sys_call_table:系统调用表
操作系统内核三大功能:
进程管理
内存管理
文件系统
task_struct 400多行代码。。。
1、R 暂停与跟踪状态还是有区别的,被跟踪状态相当于在暂停状态之上多了一层保护,处于被跟踪状态的进程不能响应SIGCONT信号而被唤醒,只能等到调试进程通过ptrace系统调用执行ptrace_cont、ptrace_detach等操作(通过ptrace系统调用的参数指定操作),或调试进程退出,被调试的进程才能恢复到R状态。 |
|
所有的进程用 list_head *tasks 链表保存
mm:物理地址、逻辑地址转换 ... MMU 内存管理单元 ...
每个进程有自己独立的进程地址空间, x86 32位,4G
进程地址空间 -> 分段 -> 分页,转换为物理地址 ...
struct mm_struct *mm, *active_mm;
vm_area_struct *vmacache ...
thread_struct:
!-- .boom-extension-active{cursor:>!-- .boom-extension-active{cursor:>!-- .boom-extension-active{cursor:>!-- .boom-extension-active{cursor:>
以上是关于《Linux内核 核心知识全解析(完)》的主要内容,如果未能解决你的问题,请参考以下文章