# SimpleOS **Repository Path**: cnsxg/simple-os ## Basic Information - **Project Name**: SimpleOS - **Description**: 简单的类DOS操作系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimpleOS - 一个简单的类DOS操作系统 SimpleOS 是一个用C语言和汇编语言编写的简单操作系统,类似于MS-DOS。它可以从U盘引导启动,提供基本的命令行界面和文件操作功能。 ## 系统特性 - 引导加载程序(Bootloader) - 内核(Kernel) - 全局描述符表(GDT) - 中断描述符表(IDT) - VGA文本模式显示 - 键盘输入处理 - 简单的内存文件系统 - 命令行Shell ## 系统要求 ### 开发环境 - **NASM** (Netwide Assembler) - 用于汇编代码 - **GCC** (MinGW-w64) - 用于编译C代码 - **LD** (GNU链接器) - 用于链接目标文件 ### 运行环境 - x86兼容的计算机 - 支持USB启动的BIOS/UEFI - U盘(至少2MB) ## 安装开发工具 ### Windows系统 1. **安装NASM** - 访问 https://www.nasm.us/ - 下载并安装最新的Windows版本 - 将NASM添加到系统PATH环境变量中 2. **安装MinGW-w64** - 访问 https://www.mingw-w64.org/ - 下载并安装MinGW-w64 - 将MinGW的bin目录添加到系统PATH环境变量中 3. **验证安装** ```cmd nasm -version gcc --version ld --version ``` ## 构建操作系统 ### Windows系统 1. 打开命令提示符或PowerShell 2. 进入SimpleOS目录 3. 运行构建脚本: ```cmd build_windows.bat ``` 构建成功后,将生成 `simpleos.img` 文件。 ## 测试操作系统 ### 使用QEMU虚拟机测试 1. **安装QEMU** - 访问 https://www.qemu.org/ - 下载并安装QEMU for Windows 2. **运行SimpleOS** ```cmd qemu-system-i386 -fda simpleos.img ``` ## 安装到U盘 ### 方法1:使用dd命令(推荐) 1. **下载dd for Windows** - 访问 http://www.chrysocome.net/dd - 下载dd工具 2. **准备U盘** - 插入U盘(至少2MB) - 备份U盘上的所有重要数据(此操作将删除U盘上的所有数据) - 记下U盘的盘符(例如E:) 3. **写入镜像到U盘** ```cmd dd if=simpleos.img of=\\.\E: bs=512 ``` (将E:替换为你的U盘盘符) ### 方法2:使用Rufus(图形界面) 1. **下载Rufus** - 访问 https://rufus.ie/ - 下载并安装Rufus 2. **使用Rufus写入镜像** - 插入U盘 - 打开Rufus - 选择U盘设备 - 选择 `simpleos.img` 文件 - 点击"开始"按钮 - 等待写入完成 ## 从U盘启动 1. 将制作好的U盘插入目标计算机 2. 重启计算机 3. 进入BIOS/UEFI设置(通常按F2、F12、Del或Esc键) 4. 设置从USB设备启动 5. 保存设置并重启 6. 计算机将从U盘启动SimpleOS ## 使用SimpleOS 启动后,你将看到SimpleOS的命令行界面。可用命令包括: - `help` - 显示帮助信息 - `clear` - 清屏 - `ls` - 列出文件和目录 - `cd` - 切换目录 - `mkdir` - 创建目录 - `rmdir` - 删除目录 - `copy` - 复制文件 - `move` - 移动文件 - `rename` - 重命名文件 - `del` - 删除文件 - `edit` - 文本编辑器 - `version` - 显示系统版本 - `date` - 显示当前日期 - `time` - 显示当前时间 - `system` - 显示系统信息 - `mem` - 显示内存信息 - `cpu` - 显示CPU信息 - `disk` - 显示磁盘信息 - `echo` - 显示文本 - `exit` - 关闭系统 - `reboot` - 重启系统 ### 示例使用 ``` /> Available commands: help - Show this help message clear - Clear the screen ls - List files and directories cd - Change directory mkdir - Create directory rmdir - Remove directory copy - Copy file move - Move file rename - Rename file del - Delete file edit - Text editor version - Show OS version date - Show current date time - Show current time system - Show system information mem - Show memory information cpu - Show CPU information disk - Show disk information echo - Display text exit - Shutdown the system reboot - Reboot the system /> mkdir test Directory created successfully. /> ls [DIR] test /> cd test /test> /> edit test.txt (文本编辑器界面) /test> ls [FILE] test.txt (12 bytes) /test> copy test.txt test2.txt File copied successfully. /test> ls [FILE] test.txt (12 bytes) [FILE] test2.txt (12 bytes) /test> del test2.txt File deleted successfully. /test> ls [FILE] test.txt (12 bytes) /test> cd .. /> /> rmdir test Directory deleted successfully. /> date 2026-03-18 Monday /> time 12:34:56 /> system SimpleOS System Information ================================== Memory: Total memory: 64MB (estimated) Available memory: 60MB (estimated) CPU: Architecture: x86 (32-bit) Model: Unknown (SimpleOS doesn't detect CPU model) Speed: Unknown Operating System: Name: SimpleOS Version: 1.0 Build date: March 18, 2026 File System: Type: Simple Memory File System Max files: 32 Max directories: 16 Max file size: 4KB Hardware: VGA: Text mode (80x25) Keyboard: PS/2 compatible Storage: RAM disk ================================== /> reboot Rebooting... ``` ## 项目结构 ``` simpleos/ ├── bootloader.asm # 引导加载程序 ├── kernel.c # 内核主程序 ├── gdt.c / gdt.h # 全局描述符表 ├── idt.c / idt.h # 中断描述符表 ├── vga.c / vga.h # VGA显示驱动 ├── keyboard.c / keyboard.h # 键盘驱动 ├── shell.c / shell.h # 命令行Shell ├── filesystem.c / filesystem.h # 文件系统 ├── time.c / time.h # 时间和日期功能 ├── editor.c / editor.h # 文本编辑器 ├── system.c / system.h # 系统信息功能 ├── gdt_idt_flush.asm # GDT/IDT刷新汇编代码 ├── linker.ld # 链接脚本 ├── Makefile # Linux构建文件 ├── build_windows.bat # Windows构建脚本 ├── clean.bat # 清理脚本 └── README.md # 本文件 ``` ## 技术细节 ### 引导过程 1. BIOS加载引导扇区(512字节)到内存地址0x7C00 2. 引导加载程序将内核加载到内存地址0x8000 3. 控制权转移到内核 ### 内存布局 - 0x0000-0x7FFF: BIOS数据区 - 0x7C00-0x7DFF: 引导加载程序 - 0x8000-0xFFFF: 内核 - 0xB8000-0xBFFFF: VGA文本模式显存 ### 文件系统 SimpleOS使用简单的内存文件系统,支持: - 文件创建和删除 - 文件读写 - 文件列表 ## 故障排除 ### 构建失败 **问题:找不到NASM** ``` Error: NASM is not installed or not in PATH ``` **解决:** 安装NASM并添加到PATH环境变量 **问题:找不到GCC** ``` Error: GCC is not installed or not in PATH ``` **解决:** 安装MinGW-w64并添加到PATH环境变量 ### U盘启动失败 **问题:无法从U盘启动** **解决:** 1. 检查BIOS设置,确保USB启动已启用 2. 尝试不同的USB端口 3. 确认U盘已正确写入镜像文件 4. 某些计算机可能需要禁用Secure Boot **问题:启动时显示错误信息** **解决:** 1. 重新构建镜像文件 2. 使用不同的U盘 3. 检查U盘是否损坏 ## 开发路线图 未来可能的改进: - [ ] 实现真正的磁盘文件系统(FAT32) - [ ] 添加更多命令(mkdir, rmdir, copy, del等) - [ ] 实现多任务支持 - [ ] 添加图形界面 - [ ] 支持网络功能 - [ ] 实现更多硬件驱动 ## 许可证 本项目仅供学习和教育目的使用。 ## 贡献 欢迎提交问题报告和改进建议! ## 注意事项 ⚠️ **警告:** - 写入镜像到U盘将删除U盘上的所有数据,请务必备份重要文件 - 本操作系统仍在开发阶段,可能存在bug和不稳定的情况 - 请不要在生产环境中使用此操作系统 - 使用本操作系统造成的任何数据丢失或硬件损坏,作者不承担责任 ## 联系方式 如有问题或建议,请通过GitHub Issues联系。 --- **祝你使用愉快!**