# os_elephant
**Repository Path**: wqkuang/os_elephant
## Basic Information
- **Project Name**: os_elephant
- **Description**: 《操作系统真象还原》对应代码。来自 https://gitee.com/youyifeng/os-elephant
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 2
- **Created**: 2024-03-29
- **Last Updated**: 2025-11-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# os_elephant
## 介绍
《操作系统真象还原》对应代码。来自[游益锋的仓库](https://gitee.com/youyifeng/os-elephant)。
个人遇到的问题和解决方法详见 [note.md](./note.md) (三)调试记录
## 软件架构
软件架构说明
|文件(夹) | 说明 |
|:---|---|
|c01 | 部署工作环境 |
|c02 | 编写MBR (Main Boot Record) |
|c03 | 完善MBR |
|c04 | 保护模式入门:构建全局描述符表GDT(实现内存分段) |
|c05 | 保护模式进阶:内存分页(实现虚拟内存),建立内核 main() 函数|
|c06 | 完善内核 (汇编实现打印函数) |
|c07 | 中断:中断描述符表IDT, 中断控制器8259A,定时器8253 |
|c08 | 内存管理系统 |
|c09 | 线程 |
|c10 | 输入输出系统: 锁, 键盘 |
|c11 | 进程 |
|c12 | 完善内核:实现系统调用getpid()、 printf() 、 malloc() |
|c13 | 硬盘驱动 |
|c14 | 文件系统:文件创建、开关、读写(更新printf)、删。目录的创建、遍历、删除|
|c15 | 系统交互:简单的 shell |
|Makefile | 只实现了 make clean 功能 |
|iconv_utf8.sh |将某路径下编码是GB2312的文件转换成 UTF-8 编码。 |
|install_env.sh|一键安装开发环境。|
|page_table.py |用来打印 页表,便于做笔记分析。|
|note.md |学习笔记。|
## 安装教程
1. cd os_elephant
2. ./install_env.sh
## 使用说明
1. 确保 install_env.sh 执行正确。
2. 进入各目录编译(make all 或 ./gen.sh)、运行(./run.sh)
3. command中有应用层的代码,用 ./compile.sh 编译
## 注意
### 如果 bochs 启动后弹出 不能打开硬盘文件
出现该弹窗可能有如下情况:
- 没有 \*.img 文件
- 生成了 \*.img.lock 文件
一定要删除 \*.img.lock
### 如果 bochs 启动后弹出 doesn't fit on disk image
出现该弹窗是因为 创建硬盘文件太小了,我把硬盘大小设置为3MB就不会出现该弹窗。
- 你也可以不用理会,点击 Continue , 然后在命令行输入c,回车继续执行。
- 如果你点击了 Quit , 将会终止程序,并生成 \*.img.lock 文件。
## TODO
创建文件
重定向到文件 > 和 >>
线程优先级的实现