
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
系统初始化程序init/main.c主要功能是对系统进行初始化,并切换到用户模式下执行登录程序。主要步骤如下:1、系统初始化部分:// init/main.c void main(void)// 前面代码略,以下是内核进行所有方面的初始化工作。mem_init (main_memory_start, memory_end);trap_init ();...
Linux0.11中设备命名方式:1-内存、2-磁盘、3-硬盘、4-ttyx(串行终端)、5-tty(控制终端)、6-并口、7-匿名管道。硬盘逻辑设备号命名方式:设备号*0x100+次设备号。次设备号:(硬盘号-1)*5+分区号,如不带分区号则代表整块硬盘。这种命名方式在0.95内核以后被废除。boot目录下共有3个文件:1、bootsect.s:as86汇编文件,主要...
异常处理:在开启分页的状态下,CPU执行线性地址到物理地址转化的过程中检测到如下条件,就会引起页异常(Page fault)int 14:1、页目录或者页表项中的存在位为0;2、当前程序没有足够的权限访问指定页面。这时CPU会做以下操作:1、将错误码压入栈中,在14号中断中只有最低三位有效。位0(P):0/1 页或者页表不存在/存在;位1(R/W):0/1代表读/写操作出错 ;...
第四章本章主要讲述了IA32架构下的段页管理以及中断异常和任务的切换等基础知识。要点多,理解难度大。要点1: 段描述符和门描述符的格式要点2: 段选择和切换的时候进行的权限验证要点3: 页目录和页表的格式以及权限设置要点5: CR0-CR3 GTDR ITDR LTDR TR EFLAG寄存器在保护模式下的作用要点6: 操作系统加载和初始化时必须设置好保护模式下使用的数...
PCB(Process Control Block 进程控制块)又称任务数据结构,位于include/linux/sched.h中:struct task_struct{long state; //任务的运行状态(-1 不可运行,0 可运行(就绪),>0 已停止)。long counter; //任务运行时间计数(递减)(滴答数),运行时间片。long p...
Linux内核是宏/单内核,分5个模块:进程调度模块、内存管理模块、文件系统模块、进程间通讯模块、网络接口模块。三种地址概念:虚拟地址(Virtual Address)、逻辑地址(Logical Address):是程序产生的。虚拟地址由段选择符和段内偏移两部分组成,段内偏移又称逻辑地址。需根据GDT和LDT进行分段变换才能进行下一步地址处理。x86可以索引2^14个段选择符,每个段最长2...
x86中断子系统x86微机系统中采用了8259A可编程中断控制器,每个8259A可以管理8个中断源,通过多片级联方式,可以构成最多管理64个中断向量的系统。PC/AT中使用了2片8259A,共可管理15个中断向量。CPU通过IO指令对8259A进行初始化后,芯片就可以根据当前设定的优先级状态通过INT引脚来通知CPU中断请求。CPU响应后,会从数据总线D7-D0获取从芯片发送的中断号。CP...
1990年在世界历史事件中是重要的一年。 二月,纳尔逊曼德拉在被监禁27年后被释放。 四月,发现号航天飞机载着哈勃太空望远镜进入太空。 而在十月,德国重新统一。然后在1990年底,又发生了一场革命改变了我们今天的生活。这一切就是在这里在1989年三月在CERN(欧洲核子研究中心)开始的。 一个物理学家,蒂姆伯纳斯李,向CERN递交了一份立项建议书,建议采用超文本技术(Hypertex...
27个必备的Javascript开发工具Javascript作为客户端脚本语言而广泛流行,对web开发者来说它是一门非常重要的语言。下面是收集的27种JavaScript工具,使用它们可以很大程度的提高你的开发效率,减少错误和调试。也可以访问我的独立博客原文:Java爱好者压缩1) Online Javascript Compression Tool一...
写在新年钟声即将敲响之际,瑾以此文纪念忙碌的2010libxml2是一款开源的、跨平台的XML解析工具,在Windows下使用当然也不是问题,方法有两种,一是从下载已经编译好的二进制包,二是下载源代码自行编译。我们公司在Windows下的开发环境通常是MinGW + Code::Blocks,因此本文针对的是在此前提下编译和使用libxml2所遇到的问题。已编译包下载:http://x...







