摘要: 1. 设备类型 linux中主要由3种类型的设备,分别是: 设备类型 代表设备 特点 访问方式 块设备 硬盘,光盘 随机访问设备中的内容 一般都是把设备挂载为文件系统后再访问 字符设备 键盘,打印机 只能顺序访问(一个一个字符或者一个一个字节) 一般不挂载,直接和设备交互 网络设备 网卡 打破了Un 阅读全文
posted @ 2016-05-05 12:10 20135305 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 姚歌 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 下面是对8个课题的总结,标题已编辑为链接模式,单击即可 1. 图解分析汇编代码以及理解计算机是如何工作的 冯诺依曼体系结构的计算机 阅读全文
posted @ 2016-05-01 13:06 20135305 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 1. 图解分析汇编代码以理解计算机是如何工作的 冯诺依曼体系结构的计算机,又叫存储程序计算机,从硬件的角度来看,其工作模型是CPU依次读取内存中的指令来完成工作。这节课详细介绍了CPU计算模块、寄存器和内存是如何配合工作的。 2. 基于mykernel的一个简单的时间片轮转多道程序内核代码分析 my 阅读全文
posted @ 2016-04-21 14:16 20135305 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是调度 现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运行的各个任务(也就是进程)。 这个管理程序就是调度程序,功能: 此外,为了获得更好的用户体验,运行中的进程还可以立即被其他更紧急的进程打断。 总之,调度是一个平衡的过程。一方 阅读全文
posted @ 2016-04-13 21:40 20135305 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一.进程切换的关键代码switch_to分析 进程的调度时机与进程的切换: 操作系统中的进程调度算法是从运行队列中选择一个新进程,选择的过程中运用了不同的策略 进程调度的时机: 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_r 阅读全文
posted @ 2016-04-13 21:40 20135305 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 连接器完成的两个主要任务:符号解析和重定位 编译器和汇编器生成地址0开始的代码和数据节 目标文件:可重定位目标文件,可执行目标文件,共享目标文件ELF 可重定位目标文件:ELF头以一个16字节的序列开始,这个序列描述了字的大小和生成该文件的系统的字节顺序. .test.:已编译程序的机器代码;.ro 阅读全文
posted @ 2016-04-07 12:42 20135305 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 一.预处理,编译,链接和目标文件的格式 可执行程序是怎么得来的: 预处理负责把include的文件包含进来及宏替换等工作 可执行文件的创建——预处理、编译和链接: 目标文件的格式ELF:A.out-->COFF-->PE/ELF ABI&目标文件格式: 一个可重定位保存着代码和适当的数据,用于和其他 阅读全文
posted @ 2016-04-07 12:41 20135305 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作都是由内核来实现的。 Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程。 进程提供2种虚拟机制:虚拟处理器和虚拟内存 每个进程有独立的虚拟处理器和虚拟内存, 每个线程 阅读全文
posted @ 2016-03-31 12:57 20135305 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 一.进程的描述 进程控制块PCB——task_struct 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息 (1)struct task_struct数据结构很庞大 (2)Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态 阅读全文
posted @ 2016-03-31 12:55 20135305 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 更新menu代码到最新版 在main函数中增加MenuConfig 增加对应的Time函数和TimeAsm函数 make rootfs 一直按n单步执行会进入schedule函数 sys_time返回后进入汇编代码处理gdb无法继续跟踪 执行int 0x80之后执行system_call对应的代码 阅读全文
posted @ 2016-03-24 15:15 20135305 阅读(211) 评论(0) 推荐(0) 编辑