
操作系统OS
i为伱而搁浅
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自己动手写操作系统第二章 pmtest1.asm分析
[SECTION .gdt]; GDT; 段基址, 段界限 , 属性LABEL_GDT: Descriptor 0, 0, 0 ; 空描述符LABEL_DESC_CODE32: Descriptor 0, SegCode原创 2014-04-13 22:04:24 · 1632 阅读 · 0 评论 -
中断不可睡眠的一些理解
LINUX中到是有中断还没有完全返回就调用schedule()而睡眠过去的例子。可以猜是哪里。我觉得,中断和异常不同,中断是异步的,异常和系统调用是同步的。异常比如缺页异常发生时,当前任务在异常处理完成之前不能继续运行,该异常处理过程和当前任务天然相联系,运行在当前进程的上下文中。中断的发生很可能是与当前任务无关的,如果把中断处理实现为强行与当前原创 2014-08-03 13:25:26 · 4334 阅读 · 0 评论 -
Linux内核 内存映射文件机制mmap
今天研究Linux1.2内核的原创 2014-09-21 00:00:20 · 1892 阅读 · 0 评论 -
Linux 进程调度时机
Linux调度时机主要 有:1、进程状态转换的时刻:进程终止、进程睡眠 ;2、当前进程的时间 片用完时(current->counter=0);3、设备驱动程序4、进程从中断、异常及系统调用返回到用户态时;时机1,进程要调用sleep()或exit()等函数进行状态转换,这些函数会主动调用调度程序进行进程调度;时机2,由于进程的时间片是由时钟转载 2014-09-16 20:18:27 · 997 阅读 · 0 评论 -
Linux线性地址空间的划分及内核寻址方式
今天研究Linux1.2内核时,注意到原创 2014-10-23 21:16:13 · 2013 阅读 · 1 评论 -
linux sys_call_table 初始化
Linux Kernel代码艺术——数组初始化前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑:const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { /* * Smells like a compiler bug -- it doesn't work转载 2014-11-20 22:09:41 · 1939 阅读 · 0 评论 -
Ubuntu 14.10 播放avi视频闪屏的简单解决方案
昨天将ubuntu升级到了14.10版本,没有得到想象中的视觉效果。但是,后来却发现不能播放avi视频了,尝试了各种播放器,都无解,总是闪屏,而播放flv格式的视频就没问题,郁闷。搞到了早上两点。 可能是ubuntu系统的原因吧。早上起来继续搞。我换了个思路,不再寻找能播放avi视频格式的播放器,而是将avi转码为flv格式的软件。尝试了许久,最终用WinFF这个工具解决了。安装命令如下原创 2015-01-04 09:33:39 · 2980 阅读 · 2 评论 -
硬盘寻址能力的变换
1, 8G限制-硬盘寻址的限制硬盘最初使用的寻址方法是柱面/磁头/扇区CHS(Cylinder/Head/Sector),也称为3D模式,是硬盘最早采用的寻址模式。通过分别指定柱面、磁头、扇区来确定某个数据块的确切位置,它是在硬盘容量较小的前提下产生的。硬盘的C/H/S 3D参数既可以计算出硬盘的容量,也可以确定数据所在的具体位置。这是因为扇区的三维物理地址与硬盘上的物理扇区一一对应,即三维物转载 2015-03-07 22:36:37 · 1511 阅读 · 0 评论 -
关于android系统对AndroidManifest文件的解析机制
最近在学习android的过程中一直在思考一个问题,我们都知道,在android的AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。一个app可以通过intent开启另一个app的Activity组件,一个系统原创 2016-02-14 00:08:25 · 1885 阅读 · 0 评论 -
进程上下文VS中断上下文
进程上下文VS中断上下文 内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自转载 2014-08-01 22:21:56 · 535 阅读 · 0 评论 -
深入理解Linux内核--信号
信号用于在用户态进程间通信。内核也用信号通知进程系统所发生的事情。1、信号的作用信号(signal)是很短的消息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,以此来标识信号。使用信号的两个主要目的:让进程知道已经发生了一个特定的事件。强迫进程执行它自己代码中的信号处理程序。当然,这两个目的不是互斥的,因为进程经常通过执行一个特定转载 2014-07-27 14:51:39 · 978 阅读 · 0 评论 -
从操作系统内核解释电脑死机原理
关于电脑死机的原因或者说原理,即电脑为什么会死机,电脑死机时计算机底层都发生了什么。一直不太明白,在网上也查过相关的资料,但是都没有找到自己想要的。网上谈的都是外部导致电脑死机的原因,比如内存条坏了、散热不良、硬盘故障、应用软件不兼容,但我觉得这些都太抽象,没有分析透彻。没有从根本上解释死机、蓝屏的原因。 最近在学习Linux内核,自从大一的时候读了一本《计算机的心智---操作系统之哲原创 2014-03-22 22:39:13 · 3231 阅读 · 0 评论 -
对Linux0.11 "内核空间不使用写时复制机制" 本质理解
一个页面被多个进程共享,每当一个进程产生一次写保护 错误,内核将给进程分配一个新的物理页面,将共享页面的内容复制过来,新的页面将设置为可读写,而共享页面仍然是只读的,只是共享计数减小了。当其他共享进程都产生了一次写保护错误后,共享页面的共享计数减成了1,其实就是被一个进程独占了,但此时该共享页面仍然是只读的,如果独占它的进程对它进行写操作仍然会产生写保护出错。为什么不在共享计数减成原创 2014-07-19 11:24:08 · 1711 阅读 · 2 评论 -
Linux0.11 进程0
Linux中1号进程是由0号进程来创建的,因此必须要知道的是如何创建0号进程,由于在创建进程时,程序一直运行在内核态,而进程运行在用户态,因此创建0号进程涉及到特权级的变化,即从特权级0变到特权级3,Linux是通过模拟中断返回来实现特权级的变化以及创建0号进程,通过将0号进程的代码段选择子以及程序计数器EIP直接压入内核态堆栈,然后利用iret汇编指令中断返回跳转到0号进程运行。转载 2014-07-21 21:59:14 · 800 阅读 · 0 评论 -
linux0.11 进程切换
move_to_user_mode是在堆栈中创建一个任务切换的假象,用iret跳转到外层3,这样cpu就会自动根据tr加载tss,并初始化各个寄存器运行任务0。所以,任务0其实就是内核空间中的用户态任务。转载 2014-07-21 21:43:26 · 1041 阅读 · 0 评论 -
Linux0.11内核 进程睡眠和唤醒
当进程等待资源或者事件时,就进入睡眠状态。有两种睡眠态,不可中断睡眠态( TASK_UNINTERRUPTIBLE)和可中断睡眠态(TASK_INTERRUPTIBLE)。处于可中断睡眠态的进程不光可以由 wake_up直接唤醒,还可以由信号唤醒。在 schedule()函数中,会把处于可中断睡眠态并且收到信号的进程变成运行态,使他参与调度选择。 Linux0.11中进入可中断睡眠状态的方转载 2014-07-22 09:07:14 · 2049 阅读 · 2 评论 -
Linux0.11 由进程睡眠函数sleep_on()中的堆栈变量tmp引发的思考 关于进程内核堆栈
sleep_on()[cpp] view plaincopy/****************************************************************************/ /* 功能:当前进程进入不可中断睡眠态,挂起在等待队列上 */原创 2014-07-22 14:29:48 · 1317 阅读 · 0 评论 -
关于Windows系统环境变量的引用问题
做Leap Motion开发时,新建了LEAP原创 2014-07-24 16:17:13 · 6369 阅读 · 0 评论 -
进程上下文与中断上下文
处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间。2、内核态,运行于中断上下文,内核代表硬件运行于内核空间。3、用户态,运行于用户空间。进程上下文:在Linux中,用户程序装入系统形成一个进程的实质是系统为用户程序提供一个完整的运行环境。进程的运行环境是由它的程序代码和程序运行所需要的数据结构以及硬件环境组成的。进程的运行环境主要包括:转载 2014-08-01 22:18:50 · 632 阅读 · 0 评论 -
Android对xml文件的解析
今天阅读android sdk官方文档时,看到这么一段话: 感觉深受启发:1.android的图形界面内部逻辑结构是树形结构,这个从xml文件的结构可以直观的看出来。如果我们要使用java代码来构建一个界面,实际上我们是在构建一棵树,明白了这一点,以后自己使用代码构建视图,逻辑上就很清楚了。2.文档中提到使用xml来构建(描述)布局是最简单和最高效的,在这里有个问题,最简原创 2016-02-15 13:12:34 · 675 阅读 · 0 评论