最新文章

PC,类似于Bochs,采用Java语言编写。O’reilly的《Beautiful Architecture》一书中对其有详细介绍。 不仅可以用JPC来调试操作系统,还可以研究它的代码,学习如何将一个复杂的计算机硬件系统分解成一个个小模块,组装起来。 JPC的虚拟CPU指令执行原理类似
2023-02-04
/
0 评论
/ /
38 阅读
## 最快的X86 PC模拟器,纯JAVA开发 JPC是一个快速的现代x86 PC模拟器,能够启动Windows到Windows 95(以及安全模式下的Windows 98)和一些图形Linux。它具有功能齐全的图形调试器,具有时间旅行模式以及休息和观察点等标准功能。 ### 运行
2023-02-04
/
0 评论
/ /
30 阅读
段选择符32位汇编中16位段寄存器(CS、DS、ES、SS、FS、GS)中不再存放段基址,而 是段描述符在段描述符表中的索引值,D3-D15位是索引值,D0-D1位是优先级(RPL)用于特权检查,D2位是描述符表引用指示位TI,TI=0指 示从全局描述表GDT中读取描述符,TI=1指示从局部描述符中
2022-01-30
/
0 评论
/ /
28 阅读
GDT(全局描述符表)和LDT(局部描述符表)每个程序都有自己的LDT,但是同一台计算机上的所有程序共享一个GDT。LDT描述局部于每个程序的段,包括其代码、数据、堆栈等。GDT描述系统段,包括操作系统本身。①全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述
2022-01-30
/
0 评论
/ /
20 阅读
下面两个分别是一个foo.asm(汇编语言文件),bar.c(c语言文件)首先来了解C语言为什么能调用汇编语言,以及汇编语言为什么能调用C语言。其实不管是C语言还是汇编语言想要执行都是最终编译链接成为二进制文件。注意是编译链接这个两个步骤,编译产生的并不是可执行的二进制文件,链接之后才是可执行的二进
2022-01-28
/
0 评论
/ /
31 阅读
缘起现在操作系统越来越庞大,我们自己写的个小程序可能就只做一件事情,完全没有必要外带安装一个大几十G的操作系统,而且为了操作系统,要投入一笔不小的用于高性能硬件和购买操系统费用,这在很多时候是没有必要的,特别是工业设备上。于是想做一款应用的程序的自由宇宙空间,这个空间你可以任意发挥,任意使用显卡,C
2022-01-28
/
0 评论
/ /
23 阅读
这是一个基于Ubuntu和GCC的操作系统编译Makefile 可以用来生成二进制程序和APP,以及Image镜像文件。 详细的Makefile内容如下: ifndef GCCPREFIX GCCPREFIX := endif ifndef ARCH ARCH := x86 endif if
2022-01-28
/
0 评论
/ /
21 阅读
介绍在写裸机系统的时候,需要用到的从U盘启动到系统的情况,这时候 写一个U盘写入小工具很有必要,下面是将引导程序写入U盘的简单代码假如已经有一个boot.bin的引导程序,需要写入U盘。write-mbr.c#include <fcntl.h> #include &am
2022-01-25
/
0 评论
/ /
21 阅读
硬盘分区基础知识硬盘安装于计算机中用于存储数据,出厂(初始)状态时犹如一张白纸,是不能直接往其中写入数据的,必须经过分区及格式化之后才能使用,分区及格式化相当于为白纸划分了不同区域(如正文区、注释区等)并分别在不同区域内画上了线条格以便于书写。格式化之后的分区就是我们通常见到的硬盘分区,如Windo
2022-01-25
/
0 评论
/ /
19 阅读
缘起现在操作系统越来越庞大,我们自己写的个小程序可能就只做一件事情,完全没有必要外带安装一个大几十G的操作系统,而且为了操作系统,要投入一笔不小的用于高性能硬件和购买操系统费用,这在很多时候是没有必要的,特别是工业设备上。于是想做一款应用的程序的自由宇宙空间,这个空间你可以任意发挥,任意使用显卡,C
2022-01-24
/
0 评论
/ /
24 阅读