Skip to content
25ALNPublic

About

一个x86 32位的小型操作系统

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目简介

本项目是一个基于 x86 32 位架构的教学型操作系统,采用 C 语言和部分汇编实现,适合作为操作系统原理课程的学习和实验平台。项目实现了从引导加载、内存管理、中断处理、进程/线程管理、文件系统、用户程序、shell 等核心功能。


目录结构说明

├── command/    # 用户命令实现,如cat等
├── device/     # 设备驱动(如控制台、硬盘、键盘、定时器等)
├── fs/         # 文件系统相关实现
├── include/    # 启动相关头文件
├── kernel/     # 内核核心代码(内存、进程、调度、中断等)
├── lib/        # 基础库函数(字符串、列表、调试、stdio等)
│   ├── kernel/ # 内核态库函数
│   └── user/   # 用户态库函数
├── note/       # 项目笔记
├── picture/    # 图片资源
├── shell/      # shell 相关实现
├── thread/     # 线程与同步机制
├── userprog/   # 用户程序管理与系统调用
├── build/      # 编译输出目录
├── makefile    # 构建脚本
└── README.md   # 项目说明文档

编译与运行方法

  1. 准备环境

    • 推荐 Linux 环境,需安装 gcc-4.6、nasm、ld 等工具。
    • 确保 makefile 中 HD60M_PATH 路径为你本地的硬盘镜像文件路径。
  2. 编译项目

    make all
  3. 运行方式

    • 可使用 Bochs、QEMU 等虚拟机加载生成的硬盘镜像文件进行调试和运行。

主要功能模块说明

  • 引导与加载:MBR.S、loader.S 负责系统引导和内核加载。
  • 内存管理:kernel/memory.c、bitmap.c 实现物理内存分配与管理。
  • 中断与异常:kernel/interrupt.c、timer.c、print.S 等实现中断处理与时钟。
  • 进程/线程管理:thread/、kernel/process.c、userprog/ 等实现多进程/线程调度、同步与切换。
  • 文件系统:fs/ 目录下实现简易的类 Unix 文件系统,包括目录、文件、inode、超级块等。
  • 设备驱动:device/ 目录下实现控制台、硬盘、键盘等驱动。
  • Shell 与命令:shell/、command/ 目录下实现简单 shell 及内置命令(如 cat、pipe 等)。
  • 库函数:lib/ 目录下实现字符串、调试、stdio 等常用库函数,分为内核态和用户态。

如需详细了解各模块实现细节,请查阅对应目录下的源码及注释。

About

一个x86 32位的小型操作系统

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages