littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于Ferry OS的虚拟操作系统

项目简介

Ferry OS是基于软件定义的单进程虚拟操作系统,能够模拟计算资源、内存管理、硬盘和外设等。它支持虚拟内存,提供类Unix风格的Shell交互界面。此外,该系统包含自定义的类汇编语言(FlyingX ASM)及对应的编译器,可将该语言编译成能在虚拟机上运行的字节码。

项目的主要特性和功能

  • 虚拟内存管理:支持内存分页和动态分配,实现虚拟内存管理。
  • 硬件可配置化:可通过配置文件灵活配置硬件资源。
  • 自定义汇编语言:设计实现类汇编语言(FlyingX ASM),支持基本四则运算、函数定义和调用、条件分支、循环、系统调用等。
  • Shell交互界面:提供类Unix风格的Shell,支持常见文件和目录操作命令。
  • 信号量管理:支持信号量的创建、删除、等待和释放操作。
  • 进程管理:支持进程的创建、删除、延迟和状态管理。
  • 系统调用处理:提供多种系统调用,如打印输出、进程管理、信号量操作等。
  • 文件系统操作:支持文件和目录的创建、删除、移动、复制等操作。
  • 内存管理单元(MMU):实现内存的分配、释放、读写和换页功能。
  • 调度器:实现进程的调度和状态管理。

安装使用步骤

安装依赖

  • 确保已安装Boost库和GoogleTest(用于测试)。
  • 进入项目仓库目录。

编译项目

bash mkdir build && cd build cmake .. make

运行单元测试

bash ./bin/runUnitTests

启动Ferry OS

bash ./bin/ferry

使用Shell

  • 启动Ferry OS后,进入Shell交互界面,可使用常见的Unix命令进行文件和目录操作。
  • 使用compile [SOURCE_FILE] [OUTPUT]命令将FASM源码编译为FSE可执行文件。
  • 使用./FILE.FSE命令启动编译后的可执行文件。

其他命令

  • kill [PID]:结束指定PID的进程。
  • top:查看当前系统硬件和进程使用情况。
  • watch:查看进程输出结果。
  • vinano:文本编辑器,用于编辑文件。
  • catheadtail:查看文件内容。
  • shutdownquitexit:关机或退出Shell。

通过以上步骤,即可成功编译并运行Ferry OS,体验其虚拟操作系统的功能和特性。

下载地址

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