4
2.插件 插件 架构
360 OS 中插件在系统中的位置
上图中,右侧“插件”框内的部份是网关插件的部分。其中“功能实现”是必须的。
若要开发具有网关本地 web 配置界面的插件,必须具有配置界面、配置接口、功能实现部分;
若仅需要云端 web 配置功能,配置界面仍然需要开发,但它安装在云端,网关中的插件需要配置接口、功能实现部分;
如果插件的所有功能仅通过专用的插件进行配置(不使用 web 技术),例如仅使用手机 APP 进行控制,则无需具有配置界面部分,需要具有配置接口和功能实现部分。
插件自有 so动态链接库和内核 ko 模块部分是可选的。支持插件自带 so 库和 ko 模块。注意:360 安全路由器 mini 不支持内核模块 ko 文件。
3.插件 插件 的启动和退出
插件必须在进程的主线程中申请 360 OS 资源,即调用以 register 为前缀的 API,在插件程序工作期间,主线程保持存在。为避免资源泄漏,插件的主线程结束时,需要释放申请的 360 OS资源。
插件程序通过注册 SIGTERM 的信号处理函数,如:signal(SIGTERM, sig_func),在sig_func 函数中通过调用 unregister 为前缀的 API 去释放申请的资源。