高校的同学们,有个项目不难,不仅有导师指导,项目结束还可以拿到结项证书和 12000 元奖金,简历都可以添一笔,面试更有把握。
合璧操作系统(英文名:HybridOS)是飞漫软件 2018 年底启动的一个开源项目,并于2020年底发布了合璧操作系统设备侧 1.0版本。合璧操作系统是一个为智能物联网设备和云计算环境设计的全新开源操作系统。相较于运行在单机硬件环境中的传统操作系统,它尝试为开发者提供更多可能。它不仅仅为支持物联网应用的开发而运行在设备侧,同时也为客户端和云计算提供了编程接口。它尝试为开发者提供一个从设备到云端再到客户端的全新软件栈和协议栈。
任务:
合璧操作系统设备端数据总线 hiBus 的增强--执行本机或远程命令
【项目描述】hiBus 是合璧操作系统提出的一个设备端数据总线技术,通过 hiBus 本机或者远程主机上的程序可以发起远程过程调用或者订阅特定事件。
hiBus 为客户端提供了 Unix Domain Socket 和 WebSocket 两种连接方式。
目前,hiBus 已完成 1.0 版本的开发。现有如下增强需求:
- 增强 hiBus 服务器,使之可以动态装载一个内建行者,并开发一个 hiBus 内建行者,提供类似 BusyBox 的命令执行能力,从而可通过 hiBus 由本机或者远程的行者执行命令,并获得命令的输出结果。比如通过执行 ls *.c 获得当前路径下的所有 C 文件列表。
【项目产出要求】
- 定义 hiBus 服务器端内置行者的接口
以操作函数指针的形式,定义 hiBus 服务器端动态装载内置行者的接口,该接口可用于注册一个不同于 builtin 的内置行者,并在 hiBus 中注册该行者对应的方法以及泡泡。
- 将 BusyBox 的功能重构为 busybox 内置行者的方法
该行者应以动态库的形式实现,并在 hiBus 启动时装载。该行者可以以远程过程的方式执行 busybox 提供的命令行功能。注意如下要点:
1. 设计对应的远程过程调用和/或事件的接口。
1. 以客户端行者为单位,维护一个上下文信息,主要用来维护当前路径等 Shell 常见的环境变量。
1. 所有的命令,在 hiBus 子进程中执行。子进程应切换 euid(有效用户标识符)到调用者的用户标识符;对远程主机上的行者,使用 guest 用户作为其 euid。
1. 命令行支持支持重定向和管道。
1. 所有命令的标准输出和标准错误,在没有被重定向的前提下,作为该过程的返回值返回给调用者。
【项目技术要求】
- Linux开发环境及 C/C++ 编程
- MiniGUI
- Unix domain socket
欢迎感兴趣的同学提交申请。