Rocker内嵌式 Docker
ROCKER 是一个在线解压
和进程沙箱
实现, 针对的是基于 Linux 的资源受限的(即使是 docker 这样的容器实现自身的资源占用都是不能容忍的
) IOT 系统, 旨在提高其资源利用率和系统安全性, 并且避免产生额外的性能开销.
通过将 App 程序文件及其它合适的文件压缩成squashfs
包, 通常可以带来超过 60% 的磁盘空间节省, 这对于资源受限的 IOT 系统来说是非常有意义的. 与此同时, 由于 Linux 内核原生提供了动态按需解压支持, 相对于常规的 App 运行模式, 并不会产生额外的内存开销.
沙箱功能的安全性保证, 来自于Linux namespaces/cgroups
, overlayfs
, Rust
等基础设施, 以及大量的测试用例. 感谢 linus 大神, Rust 团队创造出这些伟大的基础设施.
亮点与特性
- client 库使用纯 C 开发
- 裸金属开发模式, 除了 libc, 没有任何依赖
- 使用 clang 编译, gcc 链接, 兼具更小的编译结果和更兼容的链接环境两方面优点
- 稳定实用的 error chain 实现
- server 端(库)使用 rust 开发, 坚如磐石的稳定性, 媲美 C/C++ 的运行效率和内存利用率
- 使用 crosstool-ng 组织交叉工具链, 可稳植性好, 稳定性高
- 代码风格强制统一, 整洁优雅
- 注重文档与测试
评论