首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
从零开始写一个操作系统
circlepath
创建于2021-06-21
订阅专栏
从零开始,一步一步地完成一个可用的操作系统
等 9 人订阅
共7篇文章
创建于2021-06-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
从零开始写一个操作系统 —— 4.qemu
qemu属于虚拟机模拟器。操作系统属于软件,软件需要依托于硬件(正如你所见到的实体电脑)运行。qemu使用软件模拟出一种硬件环境,让我们编写的操作系统认为它被运行到了硬件中。
从零开始写一个操作系统 —— 3.从c语言到内核
从c源文件链接到内核文件。我们已经知道如何把c文件编译成可以被cpu识别的机器码,但是这个机器码离真正能够运行还存在一个对变量的定位问题。
从零开始写一个操作系统 —— 2.9 进入内核的最后准备,让一切工作简单一些
对boot以及loader程序进行简化,合成为一个文件bootloader.s,减少在准备阶段的工作。
从零开始写一个操作系统 —— 2.5 从c语言到机器码
前面操作系统的开发我们使用到了汇编语言,而使用汇编语言开发带来的问题就是代码量过于庞大。所以我们可以通过gcc编译器,从c语言生成机器码
从零开始写一个操作系统 —— 1.6 IA-32e模式
前面介绍了cpu运行的两种模式-实模式与保护模式,而这IA-32e模式则是cpu运行的第三种模式,也就是我们俗称的64位操作系统的模式。
从零开始写一个操作系统 —— 1.5实模式与保护模式
用户初次接管cpu的控制权时,cpu正处于实模式下。此时cpu通过cs:ip,即代码段寄存器:指令指针寄存器来寻址,具体的寻址算法为物理地址=cs$\times$10h+ip。 由于在实模式下寻址方式为cs$\times10h$+ip,其中cs代码段寄存器长度为16位,ip指令…
从零开始写一个操作系统——1.boot
上述shell命令作用是创建一个大小为1.44M且所有数据都是0的名为boot.img的文件。这也就是我们操作系统的载体。 计算机开始后将会运行硬盘中第一扇区的内容,而第一扇区的大小仅有512B,所以boot的作用将会是一个跳板,用于实现文件系统以及读取硬盘上的loader与跳…