自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 VC 2019安排代码位置

VC 2019安排代码位置1. 问题的出现2. 发现问题3. 问题在哪里4. 解决问题继续开发我的操作系统吧1. 问题的出现这个问题是我在开发32位引导程序是出现的,原来是用VC2005来编译和链接的,一直工作很正常,但是,有一天,我突发奇想,换成VC2019来编译,好吧,引导程序就罢工了……这是我的makefileOBJS = $(OBJDIR)\startup.obj $(OBJ...

2020-03-19 22:07:30 419

原创 lnxedit - lenix的文本编辑器

lnxedit - lenix的文本编辑器1. lenix的文本编辑器2. 运行的界面1. lenix的文本编辑器在我看来,文本编辑器算是操作系统最基本的应用程序之一,就算功能不强,也应该提供一个具备基本功能文本编辑器。lnxedit就是lenix自带的文本编辑器,没打算为其提供太多的功能,当然,现在这个还在开发中。不过嘛,界面已经确定了。2. 运行的界面界面只有标题栏、菜单栏、行号栏...

2020-03-08 10:12:38 184

原创 lnxdbg 增加反编译功能

lnxdbg 增加反编译功能lnxdbg增加反编译功能lnxdbg增加反编译功能解码机器指令确实难受,折腾了两个星期,弄了30多条指令,居然能看到很好的结果了。然后,发现x86的译码真是够复杂的,先能用起来在说了,毕竟有了调试器,总比没有好,虽然功能还很弱...

2020-03-01 18:46:16 208

原创 lnxdbg - LENIX的调试器

lnxdbg - LENIX的调试工具0. 简介1. 功能1.1 退出调试器 quit1.2 装载文件 debug1.3 停止调试 stop1.3 显示寄存器内容 reg1.4 显示内存 dispmem1.5 单步执行 trace1.6 运行 go1.7 设置断点 sbp1.8 帮助 help2. 需要增加的功能2.1 反汇编2.2 直接编辑汇编代码0. 简介开发程序自然少不了调试器,所以,...

2020-02-23 09:49:48 170

原创 用Visual Studio 2019来编译LENIX应用程序

用Visual Studio 2019来编译LENIX应用程序0. 概述1. 设置编译参数1.1 设置附加包含目录、禁用SDL检查1.2 忽略标准包含路径1.3 禁用安全检查、禁用增强指令2. 设置链接参数2.1 设置附加库目录2.2 设置附加依赖项、忽略所有默认库2.3 禁用固定基址2.3 禁用具有安全异常处理程序3. 同一段代码编译后的对比4. 命令行编译6. 使用NMAKE编译0. 概述...

2020-02-19 22:45:22 1160

原创 成功的开始

成功的开始测试的代码在windows下的运行结果在Lenix下运行的结果2020年2月6日,我在为LENIX开发标准C库,同一段代码在LENIX和windows都能运行了,关键不是测试代码高不高明,二十在于这说明LENIX准备可以使用部分标准C的函数来开发程序了。测试的代码这个主要是测试文件功能,最基本的几个功能OK了/* 2020-01-31 */#include <stdio...

2020-02-06 22:46:16 168

原创 第一个LENIX程序,hello, lenix!

第一个LENIX程序运行的结果是这样的代码是这样的/* 2020-01-26 */#include <stdio.h>int main( ){ printf("hello, lenix!\n"); return 0;}看起来就是一个普通的C语言入门程序,对,就是C语言的入门程序。这个入门程序最大的意义是: 它表示可以使用Visual Studio...

2020-01-26 22:06:49 167

原创 探测硬盘是否存在

探测硬盘探测硬盘读识别读扇区

2019-11-23 10:41:01 372

原创 32位装载程序 - 装载系统

32位装载程序 - 装载系统32位装载程序最重要的任务 - 装载系统PE格式重定位系统的编译要求32位装载程序最重要的任务 - 装载系统在16位装载程序的部分,已经将系统文件载入内存了,但只是可执行文件,并不是真正可执行的文件,还要将其翻译成可执行的格式,其实已经没有格式了,就是纯粹的代码和数据,微软把这个称为内存映像(image),PE格式重定位系统的编译要求必须提供重定位信息...

2019-11-17 12:08:58 253

原创 32位装载程序 - 基础视频驱动

32位装载程序 - 基础视频输出1. 首先面临的问题2. 最先需要实现的功能 - 基础视频驱动3. 基础视频驱动4. 视频基础控制视频内存偏移控制光标位置5. 我的基础视频驱动实现的几个功能定义视频对象在指定位置输出字符串 BVD_PrintAt在光标位置输出字符串 BVD_Print卷屏 BVD_Scroll格式化字符串 LDR_NVSPrintf格式化输出 LDR_Printf1. 首先面临...

2019-11-17 10:24:04 154

原创 16位装载程序 - 载入系统文件

16位装载程序 - 载入系统文件

2019-11-07 23:19:45 167

原创 16位装载程序 - 实模式下访问4G地址空间

16位装载程序 - 实模式下访问4G地址空间目的实现的方法关键点切换到保护模式直接嵌入指令的机器码源代码目的要在实模式下访问4G地址空间是为了将系统文件事先读入内存,而不用切换到32位保护模式后,自己写硬盘和文件系统的驱动。因为在现阶段,很多设备的驱动还没写出来,当然,那种已经成熟的操作系统,各种设备的驱动程序基本都齐全了的,在哪个阶段载入都可以。但是,对我来说,是基本没有各种设备的驱动程序,...

2019-10-26 12:03:51 436

原创 16位装载程序 - 第一阶段装载之探测内存

16位装载程序 - 第一阶段装载之探测内存装载程序16位装载程序的作用获取内存容量EAX=0E820H调用INT 15HAX=0E801H调用INT 15HAX = 088H调用INT 15H读写比较探测正常情况下,在MBR程序和分区启动程序运行完后,就开始执行位于0800:0100的16位装载程序,这个程序就是被分区启动程序加载到这个位置的。这一阶段要完成的工作比较多,因此相应的源代码也比较...

2019-10-19 08:59:34 184

原创 操作系统的第二个程序 - 分区的启动程序

操作系统的第二个程序 - 分区的启动程序我使用的分区格式分区启动程序分区启动程序的作用分成两个部分的分区启动程序分区启动扇区的部分分区保留扇区的部分我的分区启动程序分区启动扇区代码保留扇区代码MBR程序找到活动分区,并且把活动分区的启动扇区读到了600处,然后开始执行这里的程序,所以把这个程序称为操作系统的第二个程序也算正确。我使用的分区格式因为我不能在设计了自己的分区格式之后,才在自己的分...

2019-10-17 07:53:46 249

原创 操作系统的第一个程序 - MBR程序

操作系统的第一个程序 - MBR程序MBR程序必须是操作系统运行的第一个程序吗?MBR程序要干些什么事情MBR程序涉及的问题内存分配的问题MBR为什么会装到7C00这个位置活动分区的启动扇区又该放到哪里检测INT 13H的版本我的MBR程序MBR程序必须是操作系统运行的第一个程序吗?正常运行的操作系统,MBR程序确实是第一个运行的程序。但是在开发操作系统的时候,MBR程序却是可以不需要的,完全...

2019-10-14 08:31:57 899

原创 开发操作系统前的第一个程序

开发操作系统前的第一个程序为什么要先开发安装引导程序的程序?安装引导程序的程序的运行方式在windows或linux下运行在DOS下运行在自己的系统中运行工具程序的功能DOS下直接读写硬盘 -- INT 13H虚拟机选好了,开发工具选好了,平台选好了,可以开始开发操作系统了吗?其实,还不行,要先准备一个工具程序 - 安装引导程序的程序为什么要先开发安装引导程序的程序?原因很简单,如果你马上开...

2019-10-12 22:12:37 188

原创 选择开发操作系统的编程工具

选择开发操作系统的编程工具编程语言编程平台16位编程工具16位C语言编译器 - Borland C/C++ 3.116位汇编语言编译器 - MASM32 v1132位编程工具代码编辑器 - Visual Studio Community 201932位C语言编译器 - Visual Studio Community 201932位汇编语言编译器 - Visual Studio Community ...

2019-10-11 17:52:01 1047

原创 选择开发操作系统用的虚拟机

选择开发操作系统用的虚拟机选择虚拟机的要求最无聊的要求:功能要求最大的要求:方便复制文件Hyper-VBochsWIN10中挂载VHD文件的方法右键挂载命令行挂载选择虚拟机的要求最无聊的要求:功能要求最基本的功能就是要能模拟PC嘛,包括CPU、内存、中断控制器、硬盘什么的。其实现在能找到的虚拟机都可以用的,没那么多乱七八糟规矩。那些虚拟机都能跑windows和linux了,还对付不了刚起步的...

2019-10-11 11:57:44 800

原创 ROBIX,LENIX两个操作系统的开发杂记 - 20191010

ROBIX,LENIX两个的操作系统开发杂记 - 20191010ROBIXLENIX借博客来记录一些东西新书的打算ROBIXROBIX是想做成类似Windows那样的通用系统,能不能发展起来另说,发展不起来就当成自己的玩具。ROBIX的结构基本完整了,而且具备了我认为操作系统最重要的性质 - 可扩展性 ,可通过DLL来扩展功能。对,你没看错,就是微软的DLL。所以,可以执行微软的EXE就是理...

2019-10-10 19:19:38 825

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除