littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于C语言的自制32位图形多道程序操作系统

项目简介

这是一个简单的自制基于内存的图形多道程序32位操作系统。基于单核intel - 386及以上架构,支持不同分辨率屏幕模式显卡适配,还实现了图形界面和多任务管理等功能。

项目的主要特性和功能

  1. 支持32位图形界面显示,具备窗口管理、字符显示、光标控制等图形界面功能。
  2. 实现多任务管理,可进行任务创建、注册、切换、休眠和唤醒等操作。
  3. 提供内存管理功能,包括内存分配、释放、检查。
  4. 支持键盘和鼠标输入,有输入缓冲和事件处理功能。
  5. 支持计时器功能,用于定时任务的管理和调度。

安装使用步骤

仅安装使用

  1. 在演示文件夹下找到rosboot.bin文件,其大小为软盘大小。
  2. 打开VMware虚拟机,自行配置一个单核虚拟机,并选择稍后安装操作系统。
  3. 创建虚拟机后添加软盘驱动器,选择使用rosboot.bin文件。
  4. 正常启动虚拟机,系统会自动选择软盘中的操作系统。

修改代码后使用

  1. 确保有Makefile文件,安装Windows操作系统下的make并配置好路径。保存代码后,先使用make clear清除已有.o文件,再使用make sysinit.bin编译。编译器使用Windows操作系统下的C语言编译工具(建议使用MinGW)。
  2. 编译后使用16进制编辑器(推荐imhex)打开sysinit.bin文件和rosboot.bin文件。
  3. 将sysinit.bin文件的所有内容复制到rosboot.bin文件0x2E0开始处进行覆盖(0x2E0上方应该有一行0x90数据作为留空)。
  4. 如果修改了roshead.asm文件,使用make roshead.bin生成roshead.bin文件,然后使用16进制编辑器将roshead.bin文件内容全部复制到rosboot.bin文件0x200开始处进行覆盖(0x200上一行最后有0x55AA主引导程序标记)。
  5. 如果修改了rosboot.asm文件,使用make rosboot.bin生成新的rosboot.bin文件,然后重复上述流程修改。
  6. 之后按照仅安装使用的流程操作。

注意事项

  1. 修改后的总sysinit.bin文件不可超过1020KB。
  2. 现在开机读取磁盘内容仅读取10个柱面、2磁头、18扇区,总计180KB,去掉固定引导程序512B,预留512B系统32位设置程序,sysinit.bin主程序如超过179KB则需要重新修改rosboot.asm读取更大的磁盘内容。
  3. 使用bochs虚拟机会有明显卡顿,且需要进行设置,设置参数可以参考演示文件夹下bochesout.txt。如无法支持显卡VESA BIOS请上网自行搜索切换教程。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】