![](https://img-blog.csdnimg.cn/b7fb16cb37614650a06505e05d48d874.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深入理解操作系统
文章平均质量分 88
1.以【操作系统真象还原】为依托,实现一个简单的操作系统内核
2.理解现代操作系统的新原理和新特性
3.学习操作系统中遇到的问题或者灵光一现
逆羽飘扬
在路上ing
展开
-
操作系统真象还原——第5章 下篇
linux下,程序被编译成可执行elf,elf_header是可执行文件的开始地址,在文件开头偏移28 字节处是属性e_phoff:,该属性表示程序头表在文件中的偏移量,程序头表包含所有段,而elf_header 中的属性e_phnum 决定了段的数量,通过程序头表可以遍历所有段的信息,即运行程序。用户访问系统资源:当用户进程通过调用门陷入内核后,处理器的特权级变为0 级,如果此时进行的是数据的拷贝,而用户提交的数据源参数是内核数据段选择子,即用户可以访问内核数据,则内核完全暴露。原创 2023-07-11 18:43:37 · 151 阅读 · 0 评论 -
操作系统真象还原——第5章 保护模式进阶,向内核迈进
BIOS中断利用0x15子功能0xe802获取内存汇编语言子功能的调用80286 拥有24 位地址线,其寻址空间是16MB。有一些ISA 只使用15MB,剩下的1MB作为缓冲区,为了兼容保留了下来,但是现在很少ISA设备,操作系统不可以用此段内存空间。所以成为了内存空洞memory hole。BIOS的0x15中断获取内存空间的三个子功能查询内存信息的loader成功截图。原创 2023-07-11 18:42:55 · 208 阅读 · 0 评论 -
【操作系统笔记】南京大学jyy老师
系列综述:💞目的:本系列是个人整理为了操作系统学习,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料主要源于课程进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。🤭结语:如果有帮到你的地方,就和!!原创 2023-05-29 17:02:41 · 3007 阅读 · 0 评论 -
【链接】深入理解PLT表和GOT表
系列综述:💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料主要源于多处理器编程的艺术进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。🤭结语:如果有帮到你的地方,就和!!🌈。原创 2023-05-24 10:31:12 · 733 阅读 · 0 评论 -
操作系统真相还原——第8章内存管理系统
操作系统原创 2023-03-01 16:19:38 · 376 阅读 · 0 评论 -
操作系统真相还原——第7章 中断
操作系统中断原理原创 2023-03-01 16:18:54 · 1457 阅读 · 0 评论 -
容器技术(cgroups和namespace)
容器技术与安全1. 容器概述定义容器是 轻量级的操作系统虚拟化技术 可以让应用运行在一个资源隔离的环境中,容器共享宿主机的内核 但是提供用户空间隔离特点资源共享:容器之间共享同一个系统内核,同一个库文件可被多个容器使用逻辑独立:每个容器包含一个独享的完整用户环境空间,不会影响其他容器复用:当需要配置大量具有相同配置的操作系统时,应用程序运行所必需的组件打包成一个镜像可以复用容器与虚拟机有相似的作用,都摆脱了对物理硬件的需求 允许我们更为高效地使用计算资源从而提升能源效率与成原创 2022-05-13 15:55:13 · 900 阅读 · 0 评论 -
计算机从开机加电到执行main函数之前的过程
启动过程启动BIOS,准备实模式下的中断向量表和中断服务程序利用中断服务程序从启动盘加载操作系统到内存中转换到32位保护模式加电自检进入16位实模式运行,并强行将CS:IP设置为0xF000:0xFFF0(BIOS起始地址)执行内存地址0xFFFF0的BIOS代码,进行POST系统自检(计算机软硬件的测试)intel将所有的80x86系列的CPU,都设计为加电即进入16位实模式运行,并强行将CS:IP(CPU将要执行内存程序地址)设置为0xF000:0xFFF0原创 2022-05-12 19:48:00 · 278 阅读 · 0 评论 -
汇编语言的在内存的二进制存储
首先看一下一段操作系统内核加载的源代码%include "boot.inc" ; 导入自己写的宏文件section loader vstart=LOADER_BASE_ADDR ; 指明该段段内汇编的起始地址,值为0x900LOADER_STACK_TOP equ LOADER_BASE_ADDRjmp start ; 汇编语言是同时编译,顺序执行,但是下面的初始化也已经写入了内存中; 定义三个GDT描述符,第0个无效初始化为0 ; dd表示四个字节,一个字节是8个二进制位数GDT_ST.原创 2022-03-09 11:16:28 · 1004 阅读 · 0 评论 -
操作系统真相还原——第6章 完善内核
写一个操作系统原创 2022-06-20 17:30:18 · 264 阅读 · 0 评论 -
操作系统真象还原——第4章 保护模式入门
第四章 保护模式实模式的缺陷操作系统和用户程序处于同一个特权级逻辑地址和物理地址相同,用户程序所引用的地址都指向真实的物理地址用户程序可以自由修改段基址,可以访问所有内存访问超过64KB的内存区域需要切换段基址一次只能运行一个程序共20条地址线,最大可用内存为1MB32位的CPU可以兼容运行16位的实模式CPU的发展要以兼容为主,向下兼容是发展的基本要求保护模式下16位寄存器被拓展成32位全局描述符表中每个表项是段描述符,大小为64KB,用来描述内存段的约束条件原创 2022-02-23 17:09:41 · 541 阅读 · 0 评论 -
操作系统真象还原——3.完善MBR
第3章 完善MBR编译器的工作就是给各个符号进行编址,地址通常是相对于基址的偏移量地址 = 上一个内容的基址 + 上一个内容的大小section是伪指令,cpu不执行,起到划分代码逻辑的作用vstart的作用是为section内的数据指定一个虚拟的起始地址,具体物理地址由程序加载器决定vstrat和org功能相同,告诉编译器后面数据的起始地址,但不改变内部数据的偏移地址实模式是指8086CPU工作的配套环境,包含了CPUCPU的组成和功能控制单元:CPU将要做的原创 2022-02-15 19:14:47 · 613 阅读 · 0 评论 -
操作系统真象还原——1&2.初见MBR
第1章 部署工作环境CPU所能理解的指令格式是其在硬件上已经规定的,原则上只要按照IA-32 指令格式往二进制文件中写指令,就能够直接同CPU 对话了虚拟机只是一个普通的进程,该进程模拟了硬件资源,在虚拟机中运行的程序其所做出的任何行为都先被虚拟机检查,由虚拟机分析后,代为向操作系统申请。实验环境:virualBox + Ubuntu21.04(前提安装gcc、gdb、make、libgtk2.0-dev、xorg-dev、g++、build-essential) + bochs推荐文原创 2022-01-20 15:33:30 · 1106 阅读 · 0 评论 -
操作系统真象还原——0.一些你可能正感到迷惑的问题
第0章 一些你可能正感到迷惑的问题定义:操作系统是控制和管理计算机软硬件资源,合理组织和调度计算机的工作任务和资源分配,进而为用户和其他软件,提供接口和环境的程序集合。作用:操作系统提供用户进程访问系统资源的接口,并且同时也限制用户进程对系统资源的恶意修改运行:操作系统一直在不停的造表、填表和查表,其中各种记录表的作用是进行状态记录,并根据表使用算法进行宏观预测(提前调度算法),提高资源利用率和系统吞吐量特点:不同的任务交给专门的功能模块负责,提高资源利用率和运行效率CPU控制外设的方式原创 2022-01-16 09:49:54 · 586 阅读 · 0 评论 -
自己动手写操作系统 ----总计
2021.1.23开始写操作系统,参考书《ORANGE’S:一个操作系统的实现》好奇心是动力的源泉,追究问题的本质是优秀黑客的必备素质,只有充分掌握了系统原理,才能在技术上游刃有余,才能有真正的创新和发展。中国需要更多真正的黑客,也希望更多的程序员能享受属于黑客的创造乐趣。实践–遇到问题–解决问题–再实践NASM 2.12.02稳定版下载2017年,软盘已经退出历史舞台。而且rawrite软件已经不能在win10.0.14393这样的64系统上运行了。经过考量,作者决定选用WinHex18原创 2021-01-23 14:00:05 · 6871 阅读 · 4 评论