自己动手写操作系统
文章平均质量分 95
三丑是只猫
这个作者很懒,什么都没留下…
展开
-
自己实现一个内存分配器
前言这次写一个内存分配器的直接原因是因为在做一个实验的过程中需要用到多进程共享内存技术。而无论通过内存映射文件还是共享内存段,我们的多个进程能够直接共享到的是都是一大片共享内存段。而平时在一个进程内使用的Malloc,New等内存共享关键字都无法分配这一大片共享内存段里面的内存,这意味着链表等设计动态内存分配的技术都用不了,这个问题已经遇到过好多次了,这次就来实现一个不怎么考虑效率的内存分配器。技术背景我们知道,在上古开荒时期,我们的计算机体系结构采用的都是直接面向物理内存的寻址方式,这样做的话会有诸原创 2021-05-05 08:55:34 · 900 阅读 · 1 评论 -
Linux2.1.11内存管理(一)——内存管理大致模型
逻辑地址至线性地址的转化32位Linux中的线性地址布局内核空间和用户空间内核空间的进一步划分Linux中的物理内存布局不可使用的物理内存内存管理区线性地址到物理地址的映射逻辑地址至线性地址的转化我们知道,自从80386提出了保护模式之后,段页式的三级内存寻址机制就成为了IA32体系架构的标准。而在Linux中,在GDT表中有四个至关重要的段描述符:内核代码段、内核数据段、用户代码段、用户数据段。而这四个段的内存覆盖范围完全相等且覆盖了4GB的内存空间,每个段描述符的段基址起始位置都是0x0,段长都是.原创 2021-02-21 13:19:58 · 194 阅读 · 0 评论 -
自己动手写操作系统读书笔记——第三章:保护模式(上)
自己动手写操作系统读书笔记——第三章:保护模式准备环境关于CPU的一些说明保护模式段式内存管理全局描述符表(GDT)局部描述符表(LDT)描述符选择子进入保护模式进入保护模式A20地址线及寄存器说明准备环境在测试本书源码的时候,我选择的环境是Vmware+IDA,当然也可以使用单纯的gdb调试器,但是IDA集成了源码分析,汇编等功能,使用起来较为方便。至于选择这个环境的原因在于Vmware使用的人较多,而且联合IDA调试比较方便。这里就记录一下Vmware的相关设置debugStub.listen.原创 2020-09-27 21:54:05 · 447 阅读 · 0 评论 -
自己动手写操作系统读书笔记——第一章:马上动手写一个最小的操作系统
自己动手写操作系统读书笔记——第一章:马上动手写一个最小的操作系统系列前言第一章系列前言最近终于将《自己动手写操作系统》,于渊著,这本书读完了。读完之后受益匪浅,对于计算机从按下启动按钮到桌面显示有了一个大体的了解,对以前总是思索的问题也有了很多了解,对于内核、优先级、进程、系统调用、驱动更是建立了一个具体的形象,软件和硬件之间如何配合也跃然纸上。当读完这本书,我的第一感觉是这本书的内容是面向初学者的,更多的是向我这样的初学者展示了IA-32架构下的一个最最简单的操作系统是如何一步一步构建起来的,也正原创 2020-09-26 22:39:21 · 343 阅读 · 0 评论