Forfun OS - 用户程序开发
1 前言 Forfun-OS 简介 前几章我们介绍了内核实现,但由于是微内核,很多功能需要在用户层实现。本章将介绍如何开发 Forfun OS 用户程序,以及文件系统和 Shell 的实现。 2 用户程序 简单起见,用户程序也使用 rust 开发。用户程序运行在 Forfun OS 上,而不是 linux 上,因此也需要使用 no_std 模式编程。 在 user/src 路径下,我们可以看到如下文件,相当于一个基础的 Forfun OS 标准库和编译环境。 lib.rs rust lib 库的主文件,定义了 entry 函数,初始化了堆 console.rs: 实现了 rust println! 宏,方便开发 lang_items.rs: 由于使用 no_std 模式开发,需要实现一些必要的接口,如 panic linker.ld: 链接脚本,定义 entry 地址 syscall.rs: 定义了所有系统调用函数 signal.rs: 定义了 signal 类别,用处不大,后面可删掉 在这个环境中进行应用程序开发,rust 语言的特性基本都可以使用,只是在使用 syscall 的时候需要了解下 syscall 用法。 应用程序暂且都放在 user/src/bin 文件夹下,后面也可以成独立项目,将编译环境作为 lib 引入 3 用户程序示例 下面是一个最简单的示例,可以看出,和 std 模式下开发差不多,只是需要加一些定义 ...