操作系统
文章平均质量分 74
快乐来源
hercu1iz
i am a robot.
展开
-
物理内存管理:非连续内存分配
非连续内存分配非连续分配需要解决的问题非连续分配的硬件辅助机制段式存储管理页式存储管理实例(物理)地址计算实例(逻辑)地址计算页表关联(中间人)页表页式存储管理机制的性能问题快表(Translation Look-aside Buffer,TLB)---利用缓存机制(caching)多级页表---间接访问(Indirection)二级页表实例反置页表反置页表的Hash冲突(举例)大地址空间问题?页寄存器(Page Registers)页寄存器的优劣页寄存器中的地址转换段页式存储管理段页式存储管理中的内存共享原创 2021-04-08 23:49:37 · 166 阅读 · 0 评论 -
工具篇_qemu
QEMU(Quick EMUlator)-L dir 指向BIOS和VGA BIOS所在目录-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘0/1/2/3镜像。-cdrom “文件名” 使用“文件名”作为光盘镜像(文件应该是ISO类型)。Windows 下的使用者,可以透过下列指令使用实体光盘:-cdrom //./x: -> x 代表光盘名称/位置例如:-cdrom //./e: -> 使用 E:\ 为光盘-fda/-fdb “文件名” 使用“文件名”作原创 2021-04-03 21:12:15 · 269 阅读 · 0 评论 -
Windbg双机调试环境搭建
双机调试原理大概这么个图哈,借了个图过来嘻嘻,方便大家抽象理解。四步骤搭建环境环境Win10调试机,Winxp被调试机1>Win10上安装WDK这个自行选择版本,下好一键默认安装(选择全勾上就行)。WDK自带Windbg安装安装完成后在路径:windbg位置C:\WinDDK\7600.16385.1\Debuggers 下添加桌面快捷方式。2>修改Winxp的boot.ini文件(在C:/下,被操作系统保护起来的隐藏文件)复制下面内容新填一份再添加如下红色内容(两份内容原创 2021-03-06 19:47:50 · 370 阅读 · 1 评论 -
LGDT/LIDT - 加载全局/中断描述符表格寄存器
LGDT/LIDT - 加载全局/中断描述符表格寄存器转载 2021-03-26 21:25:46 · 657 阅读 · 0 评论 -
理解阻塞非阻塞与同步异步的区别
怎样理解阻塞非阻塞与同步异步的区别?转载 2021-03-24 22:04:45 · 77 阅读 · 0 评论 -
工具篇_dd
dd概述定义参数说明实例概述dd是一个Unix和类Unix系统上的命令,主要功能为转换和复制文件。在Unix上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)就像普通文件一样,出现在文件系统中;只要在各自的驱动程序中实现了对应的功能,dd也可以读取自和/或写入到这些文件。这样,dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在ASCII与EBCDIC编码间互换。定义dd是Linux/UNIX原创 2021-03-24 21:22:10 · 147 阅读 · 0 评论 -
内联汇编_AT&T语法
内联汇编AT&T汇编基本语法GCC扩展内联汇编基本格式格式说明实例一说明实例二说明补充资料手册AT&T汇编基本语法对比intel格式的汇编* 寄存器命名原则 AT&T: %eax Intel: eax* 源/目的操作数顺序 AT&T: movl %eax, %ebx Intel: mov ebx, eax* 常数/立即数的格式 AT&T: movl $_value, %原创 2021-03-24 20:52:01 · 1039 阅读 · 0 评论 -
工具篇_GDB
GDB调试器主要作用gdb操作查看帮助执行程序单步运行设置断点断点管理信息查看函数调用 | 栈帧切换GDB查看,执行汇编语言机器语言工具主要作用一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。gdb操作注:gdb命令操作中是允许简原创 2021-03-11 13:10:11 · 275 阅读 · 0 评论 -
工具篇_GCC
GNU Compiler Collection 简介GCC遵循的部分约定规则GCC编译过程命令参数用法简介GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台 。GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU原创 2021-03-10 22:29:38 · 198 阅读 · 2 评论 -
操作系统_A20 Gate
A20 Gate由来键盘控制器8042参考文章由来Intel早期的8086 CPU提供了20根地址线,可寻址空间范围即0~2^20(00000H~FFFFFH)的 1MB内存空间。但8086的数据处理位宽位16位,无法直接寻址1MB内存空间,所以8086提供了段地址加偏移地址的地址转换机制。PC机的寻址结构是segment:offset,segment和offset都是16位的寄存器,最大值是0ffffh,换算成物理地址的计算方法是把segment左移4位,再加上offset,所以segment:of原创 2021-03-09 21:29:52 · 628 阅读 · 0 评论 -
操作系统_中断与异常
中断与异常为何需要中断机制?中断类型名词总结------分割线------保护模式前提下处理中断过程中断描述符表(Interrupt Descriptor Table)指令LIDT和SIDT用来操作IDTRIDT gate descriptors中断处理中硬件负责完成的工作(两个过程)硬件中断处理过程1(起始)硬件中断处理过程2(结束)中断产生后的堆栈栈变化中断处理的特权级转换门描述符=段描述符名词汇总其他参考为何需要中断机制?操作系统需要对计算机系统中的各种外设进行管理,这就需要CPU和外设能够相互通原创 2021-03-08 20:26:19 · 609 阅读 · 0 评论 -
工具篇_make
GNU make前言Make工具Makefile文件规则参考前言工欲善其事,必先利其器。工具的使用,相对知识点的理解会更容易一些,但付出的时间相对会更多(需要不断的使用,才能形成长期记忆)。为了避免重复造轮子的总结,工具篇以“简”为主题,附上相关参考资料链接及原参考出处(以表对各位无私分享知识作者的敬意)。Make工具概述>代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。区分清楚编译 和 构建的关系。编译编写的源程原创 2021-03-05 14:54:19 · 135 阅读 · 0 评论 -
操作系统_保护模式和分段机制
操作系统_保护模式和分段机制一,前置知识二,操作系统的中的不同模式实模式保护模式新名词引入量汇总三,分段分页存储管理机制分段存储管理机制1.段概述>2.分段机涉及4个关键内容:2.1逻辑地址转换物理地址2.2段描述符2.3全局描述符表2.4选择子保护模式下的特权级1.概述>2.内核指令数3.数据段选择子->DS和CS段寄存器4.CPU保护内存过程CPL、RPL和DPL总结新名词汇总一,前置知识intel_80386基本架构二,操作系统的中的不同模式实模式概述>在bootl原创 2021-03-03 21:50:35 · 1038 阅读 · 2 评论 -
Intel_80386寄存器
80386寄存器80386内存架构逻辑地址|线性地址|物理地址关系80386的寄存器可以分为8组General Register(通用寄存器)Segment Register(段寄存器,也称 Segment Selector,段选择符,段选择子)Instruction Pointer(指令指针寄存器)Flag Register(标志寄存器)80386内存架构地址是访问内存空间的索引。一般而言,内存地址有两个:一个是CPU通过总线访问物理内存用到的物理地址,一个是我们编写的应用程序所用到的逻辑地址(也有人原创 2021-02-23 10:58:22 · 690 阅读 · 4 评论 -
操作系统_BIOS
计算机启动流程宏观流程细分流程宏观流程四步跳转读取指令执行1>系统加电BIOS初始化硬件(BIOS)->2>BIOS读取主引导扇区代码(主引导记录MBR)->3>主引导扇区代码读取活动分区的引导扇区代码(活动分区)->4>引导扇区代码读取文件系统的加载程序(加载程序)注:不熟悉磁盘分区的,可自行百度了解会更有助于理解以上步骤。细分流程开机(初始进入实模式启动)CPU加电稳定后从0xFFFF0(CS:IP=0XF000:FFF0)读取第一条指令原创 2021-02-17 22:21:46 · 1060 阅读 · 1 评论