标签:

谢煜波《操作系统引导探究》读后笔记,在此记录。 # 前言 本篇文章并不旨在完整的讨论一个多引导系统程序怎样去引导不同的操作系统,而只打算从编写操作系统的角度出发,谈谈计算机怎样从加电开始,从无到有,将操作系统运行起来,在其中将尽量详尽的描述从实模式到保护模式的过渡,目的只在于能将所学与广
2022-09-30
/
31 阅读
缘起现在操作系统越来越庞大,我们自己写的个小程序可能就只做一件事情,完全没有必要外带安装一个大几十G的操作系统,而且为了操作系统,要投入一笔不小的用于高性能硬件和购买操系统费用,这在很多时候是没有必要的,特别是工业设备上。于是想做一款应用的程序的自由宇宙空间,这个空间你可以任意发挥,任意使用显卡,C
2022-01-24
/
24 阅读
介绍在写裸机系统的时候,需要用到的从U盘启动到系统的情况,这时候 写一个U盘写入小工具很有必要,下面是将引导程序写入U盘的简单代码假如已经有一个boot.bin的引导程序,需要写入U盘。write-mbr.c#include <fcntl.h> #include &am
2022-01-25
/
21 阅读
这是一个基于Ubuntu和GCC的操作系统编译Makefile 可以用来生成二进制程序和APP,以及Image镜像文件。 详细的Makefile内容如下: ifndef GCCPREFIX GCCPREFIX := endif ifndef ARCH ARCH := x86 endif if
2022-01-28
/
21 阅读
下面两个分别是一个foo.asm(汇编语言文件),bar.c(c语言文件)首先来了解C语言为什么能调用汇编语言,以及汇编语言为什么能调用C语言。其实不管是C语言还是汇编语言想要执行都是最终编译链接成为二进制文件。注意是编译链接这个两个步骤,编译产生的并不是可执行的二进制文件,链接之后才是可执行的二进
2022-01-28
/
31 阅读
GDT(全局描述符表)和LDT(局部描述符表)每个程序都有自己的LDT,但是同一台计算机上的所有程序共享一个GDT。LDT描述局部于每个程序的段,包括其代码、数据、堆栈等。GDT描述系统段,包括操作系统本身。①全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述
2022-01-30
/
20 阅读
段选择符32位汇编中16位段寄存器(CS、DS、ES、SS、FS、GS)中不再存放段基址,而 是段描述符在段描述符表中的索引值,D3-D15位是索引值,D0-D1位是优先级(RPL)用于特权检查,D2位是描述符表引用指示位TI,TI=0指 示从全局描述表GDT中读取描述符,TI=1指示从局部描述符中
2022-01-30
/
28 阅读