# Mortise **Repository Path**: vvbbnn00/mortise ## Basic Information - **Project Name**: Mortise - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-07-22 - **Last Updated**: 2024-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mortise:基于微库解耦架构的嵌入式虚拟化平台 ## 项目介绍 Mortise是一款基于LibOS架构的嵌入式虚拟化平台,旨在与TenonOS和其他通用OS组合成混合关键性系统的解决方案,并通过LibOS架构灵活生成与目标场景最契合的Hypervisor。 现阶段Mortise版本以[Bao v1.0][bao-hypervisor]作为项目原型,做微库化解耦和复用,并持续扩展其他嵌入式虚拟化功能。 随着项目演进,将继续提高与TenonOS微库复用的程度。 ### 支持的平台 | 平台 | CPU架构 | 状态 | | ---------------------------------- | ------- | ------ | | [qemu](platform/qemu-aarch64-virt) | arm64 | 已支持 | | rk3568 | arm64 | 开发中 | ### 示例应用 - [单个TenonOS作为GuestOS](examples/config-tn-qemu-virt-single.c) - [两个TenonOS作为GuestOS](examples/config-tn-qemu-virt-double.c) ## 如何使用 ### 代码结构 Mortise项目是基于Tenon框架API、微库和相关工具链构建而出的,代码按类似Tenon的组织方式。当前版本的Mortise主要支持静态配置能力,即虚拟化平台的配置和虚机配置均在构建阶段完成。 Mortise本身通过Kconfig来配置,Mortise运行的平台通过platform下板级支持包的[desc.c](platform/qemu-aarch64-virt/desc.c)配置,运行的虚机则通过独立[config.c](examples/config-tn-qemu-virt-single.c)配置。 ``` . ├── arch /*架构相关的公共代码*/ ├── drivers /*Mortise单独维护的驱动,一般不适用于TenonOS*/ ├── include /*架构无关的头文件*/ ├── lib /*Mortise项目的核心专用微库*/ ├── platform /*Mortise支持的平台和板级支持包*/ ├── tnplat /*用于将Mortise作为TenonOS平台构建的对接层*/ ├── defconfigs /*存放一些支持平台的默认Kconfig*/ ├── examples /*一些示例场景的配置、脚本和代码*/ └── tools /*项目的辅助工具代码*/ ``` ### 使用指导 Mortise基于Tenon的构建体系,使用make和Kconfig完成编译和配置工作,当前支持kvm平台,使用指导请参考[quick_start](doc/quick_start.md) ## 参考资源 * [设计文档][tenon-design] * [Tenon](https://gitee.com/tenonos/tenon) * [Bao][bao-hypervisor] * [aVisor](https://gitee.com/yingyitech/mortise/tree/main/) * [RequestForComments](https://gitee.com/tenonos/request-for-comments) [bao-hypervisor]: https://github.com/bao-project/bao-hypervisor [tenon-design]: https://gitee.com/tenonos/documents/design