操作系统
cqan
这个作者很懒,什么都没留下…
展开
-
uCOS-II中的任务切换机制(转)
初接触UCOS-II,对其任务转换机制的实现总是有点混乱,读了一篇博文,觉得清晰了许多,在这里就转过来mark一下~【@.1 函数周期与死循环】 一般函数的生命周期很简单,从开始调用函数起,直到函数返回,即结束。这样一来就完成了这个函数的使命,它也就不再需要了。对于一般的函数就是这样,但是回过头想想,对于一个系统、OS、或者工业控制中的一个控制器转载 2013-11-28 14:52:02 · 5003 阅读 · 1 评论 -
Linux内核分析:实验五
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.增加Menu内核命令行增加menu内核命令行。把上一次实验的两个函数,Getpid和GetpidAsm两个函数写到text.c中。 增加后运行结果如下:2.系统调用过原创 2016-03-26 22:26:57 · 440 阅读 · 0 评论 -
用户栈&内核栈
转自:http://www.cnblogs.com/shengge/archive/2011/08/29/2158748.htmlhttp://blog.chinaunix.net/uid-22548820-id-2125152.html进程内核栈、用户栈1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的转载 2016-03-28 16:50:48 · 594 阅读 · 0 评论 -
Linux内核分析:实验八
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.基本概念操作系统原理中介绍了大量的进程调度算法,这些算法从实现的角度来看仅仅是从运行队列中选择一个新的进程,选择的过程中运用了不同的策略而已。对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制原创 2016-04-17 21:25:03 · 404 阅读 · 0 评论 -
Linux内核学习总结
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-10000290001.收获一直以来对linux内核充满了敬畏,觉得内核是非常庞大的,也曾经试图去阅读很多linux的书籍,但是总是读了几页就读不下去了。上了孟老师的linux内核分析课程,真的收获很大,大事化小,小事化了,老师把内核最原创 2016-04-30 22:57:56 · 289 阅读 · 0 评论 -
解析 Linux 中的 VFS 文件系统机制(转)
转自:http://www.ibm.com/developerworks/cn/linux/l-vfs/本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 V转载 2016-04-24 15:38:41 · 331 阅读 · 0 评论 -
Linux电源管理(3)_Generic PM之Reboot过程
转自:http://www.wowotech.net/linux_kenrel/reboot.html1. 前言在使用计算机的过程中,关机和重启是最先学会的两个操作。同样,这两个操作在Linux中也存在,称作shutdown和restart。这就是本文要描述的对象。在Linux Kernel中,主流的shutdown和restart都是通过“reboot”系统调转载 2016-08-10 09:51:27 · 1682 阅读 · 2 评论 -
Linux地址映射(1)--线性映射与非线性映射
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 一,线性映射与非线性映射1. 内存管理物理内存管理:Linux内存最小管理单位为页(page),通常一页为4K。初始化时,linux会为每个物理内存也建立一个page的管理结构,操作物理内存时实际上就是操作page页。某些设备会映射在物理内存地址外,这些地址转载 2017-07-28 23:04:23 · 1218 阅读 · 0 评论 -
Linux地址映射(2)--内存申请
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 如果申请的内存是低端内存,因为低端内存一直都被映射在内核页表中,因此只需要一个page_address()函数就可以完成转换,也就是图中的线性映射。如果申请的是高端内存,就没有这么简单了。首先,如果可以在高端申请到足够的内存,需要先在非线性区映射,操作结束后在解除转载 2017-07-28 23:05:34 · 410 阅读 · 0 评论 -
Linux内核栈与中断栈补充说明
转自:http://blog.chinaunix.net/uid-20543672-id-3164573.html 中断栈与内核栈的话题更多地属于内核的范畴,所以在《深入Linux设备驱动程序内核机制》第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出问题。 本贴在这个基础上对内核栈与中断栈的话题转载 2016-04-25 12:53:59 · 1539 阅读 · 0 评论 -
进程的深入分析
在学习Linux进程内核栈的时候,看到这篇好文,在这里转载下:(注意:数据结构针对的是早期的2.4内核,2.6以后的内核数据结构和处理方法稍有不同,但是基本原理相同)作者: 曹国辉 南京凌嵌教育嵌入式Linux金牌讲师专题研究一 进程的深入理解与分析 进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,转载 2016-04-25 12:51:36 · 428 阅读 · 0 评论 -
Linux内核分析:实验三
安常青 + 原创作品转载请注明出处 + 《Linux 内核分析》 MOOC 课程Linux内核分析:实验三1.计算机启动过程计算机上电后,首先运行ROM里面的BIOS程序,对系统的硬件进行检测。然后运行bootloader程序,一般位于磁盘的第一个扇区,它把操作系统从磁盘加载到内存中,然后将控制权交给操作系统。操作系统首先运行一段汇编代码,主要完成一系列的初始化工作,然后跳转到原创 2016-03-13 16:28:20 · 372 阅读 · 0 评论 -
Grub和initrd对文件系统驱动的支持
本文转自:http://jallenoy.spaces.live.com/blog/cns!B70F21D986C9C057!195.entry前言本文源于这样一个问题:内核镜像存储在硬盘下特定文件系统中,bootloader必须先加载文件系统驱动,才能读取内核文件。类似的,内核要读取根文件系统中的文件,也需要先加载文件系统驱动。如果文件系统驱动存储在硬盘中,启动时没有驱动转载 2015-12-10 23:24:08 · 719 阅读 · 0 评论 -
GRUB启动过程分析 & GRUB 引导程序配置
转自:http://www.51testing.com/html/83/145083-69825.html计算机在启动的时候,首先由BIOS中的程序执行自检,自检通过后,就根据CMOS的配置找到第一个可启动磁盘的MBR中的Boot Loader程序(一般在启动盘的第一个物理扇区,占416字节),并把控制权交给Boot Loader,由Boot Loader进一步完成操作转载 2015-12-10 23:37:53 · 3156 阅读 · 0 评论 -
linux中断流程详解
转自:http://blog.chinaunix.net/uid-25622207-id-2897963.html异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核搭建了一个非常容易扩充的中断处理体系。中 断系统结构涉及的方面很多,而转载 2016-01-19 11:45:28 · 346 阅读 · 0 评论 -
linux进程调度
转自:http://www.cnblogs.com/zhaoyl/archive/2012/09/04/2671156.html Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效; 2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间; 3.保证公转载 2016-01-19 21:23:47 · 316 阅读 · 0 评论 -
linux内核启动第二阶段之setup_arch()函数分析-2.6.36
转自:http://blog.chinaunix.net/uid-20672257-id-2383451.html执行setup_arch()函数回到start_kernel当中,569行,调用setup_arch函数,传给他的参数是那个未被初始化的内部变量command_line。这个setup_arch()函数是start_kernel阶段最重要的一个函数,每个体系都有自己的s转载 2015-12-23 21:13:52 · 4308 阅读 · 0 评论 -
Linux内核分析:实验二
安常青 原创作品请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000操作系统是如何工作的记得有个老师曾经说过:操作系统就是躺在内存里等待被调用的代码。我觉得说的是有一定道理的。计算机有三大法宝:程序存储计算机,堆栈,中断。中断无疑是操作系统的基础之一。中断发生,系统从原创 2016-03-06 19:17:27 · 375 阅读 · 0 评论 -
Linux内核分析:实验四
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用当我们使用某些库函数的API时,实际上该库函数啥都没干,它只是一个系统调用的封装。X86为例,系统调用会执行int 0x80指令,也就是陷入。操作系统会变为内核态,查找系统调用表,跳转到相应的系统调用。每个系统调用都对应一个唯一的系统调用号,系统调用之前,会从eax寄存器读系统调用号,系统调用的返回值也会保存在eax中原创 2016-03-18 20:39:20 · 533 阅读 · 1 评论 -
Linux信号量详解
转自:http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理转载 2016-03-09 14:41:18 · 1549 阅读 · 1 评论 -
Linux内核分析:实验六
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.什么是进程所谓进程,就是一个程序的一个运行的动态实体,每个进程都有自己的进程控制块,里面记录了进程的各种信息,并通过pid唯一的标识。操作系统就是通过获取和改变进程控制块里面的成员变量,从而控制进程的运原创 2016-04-03 23:01:43 · 624 阅读 · 0 评论 -
Linux地址映射(3)--地址转换
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 三、地址转换上图揭示了进程空间、内核空间与物理地址之间的转换关系。在linux中,物理地址用page结构 表示,物理内存在初始化时已经生成了page结构管理,其他地址空间则需要生成page再进行管理(ioremap)。物理地址可以被映射到内核空间或进程空间,也可以从转载 2017-07-28 23:06:08 · 736 阅读 · 0 评论