![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
acmilanvanbasten
这个作者很懒,什么都没留下…
展开
-
Linux启动过程前传——前世BIOS与今生OS
概述:我们经常讨论操作系统的启动过程,但是却很少讨论操作系统启动之前的过程。BIOS除了开机自检,还完成了哪些工作?CPU厂家,BIOS厂家,OS厂家是如何协作从而保证计算机的运行的?如何保证硬件能认识操作系统,并且听从操作系统的指挥?所有boot sector的第一句可执行汇编语句往往是 mov ax,cs,此时,cs的值来自于哪里呢?是随机的吗?为何boot sector的汇编指令中第一个伪操转载 2014-08-26 19:07:32 · 1143 阅读 · 0 评论 -
bochs调试方法与指令详解
bochs调试FAQ:一 基本调试命令1. Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的, 所以我们可以在启动bochs调试的命令行下输入 pb 0x7c00 或者 vb 0:0x7c00就着输入 cb转载 2014-08-26 19:11:44 · 1406 阅读 · 0 评论 -
保护模式编程之(一)——分段机制与GDT/LDT
概述:若想理解操作系统程序中的启动相关的部分,必须要理解保护模式下的编程,而分段机制是保护模式编程下的基础。另外,由于实模式与保护模式的不同,对保护模式下的分段机制更需要注意。同时,这一部分的基本数据结构是以后理解代码跳转的基础,必须要熟练。本文来源:保护模式编程之(一)——分段机制与GDT/LDT1.段的定义 段是虚拟地址到线性地址转换的基础转载 2014-08-26 19:09:19 · 1460 阅读 · 0 评论 -
保护模式及其编程——分页机制
摘要:分页机制是实现虚拟存储的关键,但是它的实现比较简单。传统的页都是4K大小,当然,在最近的内核中,分页机制因为一些原因而比较繁琐。在这里,我们仅仅浅谈最简单的分页机制,在其他的文章中,我们将讲解现代新linux内核中的分页机制。我们通过设置cr0的PG位来开启分页机制。页大小是4K,并且是4K对齐的。线性地址到物理地址的转换中,可能某些线性地址是无效的。如果某个线性地址对应的页不存在,那么转载 2014-08-26 19:15:26 · 714 阅读 · 0 评论 -
BIOS 工作流程解析
学习linux很长时间了,一直没有时间把经验和挖掘的一些技巧整理出来,这个暑假在家没事,整理了一些与大家分享。由于都是自己的理解和实验产物,所以肯定有些不当之处,期待交流指正! 这个系列文章将以Ubuntu探秘命名,内容涉及到整个开机流程及GNOME桌面的hack . 今天发表第一篇心得:BIOS到底干啥用? BIOS(basic input/output system,基本输入转载 2014-08-26 19:07:07 · 4309 阅读 · 0 评论 -
CPL DPL RPL的区别 &&一致性代码段和非一致性代码段
概述:在谈论保护模式编程的时候,一直会有这样的困惑:为什么除了CPL和DPL还有RPL?什么时候高特权级不能访问低特权级?什么时候低特权级不能访问高特权级?一致性代码和非一致性代码有什么区别?等等这些问题,如果仅仅停留在知其然的级别,很容易会困惑,本文主要说明以上问题的答案和蕴涵在背后的原因。1.特权级 首先,了解以下操作系统的特权级转载 2014-08-26 19:09:30 · 1204 阅读 · 0 评论 -
保护模式及其编程——实模式与保护模式的切换
机器上电,CPU进入实模式,从物理地址0xFFFFFFFF0处开始执行初始化代码,设置基本系统功能操作必要的数据结构信息,例如处理中断和异常的IDT表。接下来,如果继续在保护模式工作,需要加载操作系统模块;如果要进入实模式,那么需要进行模式切换。1.进入保护模式时的初始化操作处理器能够进入到保护模式之前,需要操作系统加载和初始化软件必须在内存中设置好保护模式下使用的数据转载 2014-08-26 19:11:00 · 867 阅读 · 0 评论