完全自主研发的轻量级移动设备操作系统!基于开源Linux深度定制内核,彻底摒弃X11/Wayland传统图形方案,以纯C/C++重构轻量级嵌入式GUI框架,自研PiXWM窗口管理器,实现完整桌面级功能与多应用并行处理,为工业触控屏、医疗设备HMI提供开源解决方案。以硬核技术重塑嵌入式交互体验!
完全自主研发的轻量级移动设备操作系统!基于开源Linux深度定制内核,彻底摒弃X11/Wayland传统图形方案,以纯C/C++重构轻量级嵌入式GUI框架,自研PiXWM窗口管理器,实现完整桌面级功能与多应用并行处理,为工业触控屏、医疗设备HMI提供开源解决方案。以硬核技术重塑嵌入式交互体验!
tinyPiXCore 提供tinyPiXOS的底层支撑库,包括GUI组件(PiXSingleGUI)、工具库(PiXUtil)、扩展库(PiXExternUtils)三大部分。
TinyPiXOS 以开源Linux为基础,通过创新的内核级轻量化改造与精简设计,摒弃了X11/Wayland等传统图形方案,运用纯C/C++从底层重构出超轻量级的整体图形技术栈——包含高效窗口管理、精简GUI框架及深度优化的内核机制。
核心目标: 在最小化硬件资源配置的前提下,确保流畅的多应用并行处理能力,提供完备的桌面级核心功能体验(资源管理、外设驱动、图形渲染等)。
TinyPiXOS,以硬核技术实力追求极致性能与效率!
PiXSingleGUI库是tiniPiXCore框架的核心GUI组件库,采用分层架构设计,致力于为应用提供一套完整的、高性能的图形用户界面解决方案。
PiXSingleGUI库通过其分层的架构、坚实的基类支撑、丰富的高性能标准控件、灵活强大的样式系统和扩展接口,在GUI开发效率与界面运行的灵活性及高效性之间取得了理想的平衡点,是构建tiniPiXCore应用程序用户界面的可靠基石。
PiXUtils 是 tiniPiXCore 框架的核心工具库,提供高效通用功能模块,涵盖数据序列化、文件操作、通信机制及常用数据结构等关键功能,大幅提升开发效率与代码复用性。
PiXUtils 通过高度封装的工具链,显著降低底层开发复杂度,模块化架构:各功能解耦设计,支持按需链接,降低最终程序体积。
PiXExternalUtils 提供系统级基础能力。
标准化打包
支持交互式配置与JSON描述文件生成安装包
沙箱化安装
外设管理核心
系统资源看板
热插拔响应引擎
文件服务
网络通信
相较于目前成熟的国产桌面操作系统及其所依赖的现有GUI框架,我们在核心模块的稳定性和应用生态的完备性方面,仍存在一定的追赶距离。
TinyPiXOS 的诞生标志着我们从零起步,完成了基础技术栈的完整构建与自主掌控。其核心定位在于提供一个独立可控、架构轻量且高度定制化的嵌入式桌面操作系统开发平台。
自主可控: 自主研发窗口管理器PiXWM与GUI框架,不依赖X11/Wayland。
轻量灵活: 模块化架构按需裁剪,内存与进程调度优化,资源极致利用,从微型嵌入式设备到高性能移动终端均可灵活部署。
异构兼容: 统一C/C++开发接口,ARM/x86/RISC-V多平台无缝迁移。
开箱即用: 预置UI组件库,方便用户快速上手开发应用。
长期维护: 技术团队长期维护,不用担心遇到问题导致项目无法推动。
中文支持: 目前技术文档仅有中文文档,系统内文字中文支持友好。
免费商用: 免费商用(需保留版权标识),企业可低成本构建定制化系统,支撑产品快速落地。
TinyPiXOS整体架构图
TinyPiXOS 采用 Apache License 2.0 开源协议。您可以自由使用、修改和分发代码,但需遵守协议条款。Apache License 是一种宽松的开源协议,允许您在商业项目中使用本项目代码,同时保留原作者的版权声明。
TinyPiXOS 作为一款面向轻量化硬件平台的桌面操作系统,其架构设计复杂、功能模块众多。目前现有版本虽已实现基础能力,仍需要开发者社区的力量共同完善。我们选择将核心框架开源,旨在汇聚开发者智慧,共同打造国产嵌入式操作系统生态基座。
🛠️共建国产基座:以PiXSingleGUI等三大模块为基座,联合打造自主可控的嵌入式开发生态
🤝包容共创:现有版本难免存在不足,请以开发者视角包容反馈,共同优化
🚀创造无限可能:鼓励基于开源框架构建创新应用,优秀项目将获官方技术支持
🔄持续承诺:核心团队将长期维护系统桌面与应用生态,定期发布关键更新
理论上对操作系统无限制;目前只在 Ubuntu 22.04.4 LTS 进行了验证。编译器版本和构建工具必须相同或高于要求版本。
拉取代码,可以使用Github地址直接下拉,或者使用Gitee同步仓库拉取
git clone https://github.com/TinyPiXOS/tinyPiXCore.git
# git clone https://gitee.com/tinypixos/tinyPiXCore.git
# 需要先安装完成 PiXWM 相关依赖;参考官网 PiXWM 安装教程
sudo apt install libsdl2-image-dev libsdl2-gfx-dev \
libcairo2-dev libpango1.0-dev libglib2.0-dev \
libpangocairo-1.0-0 libfontconfig-dev libfreetype-dev \
libgbm-dev libgles2 libegl-dev \
libasound2-dev libjson-c-dev libssl-dev libavcodec-dev libavformat-dev \
libavutil-dev libswscale-dev libswresample-dev \
libavfilter-dev libavdevice-dev libssl-dev librsvg2-dev bluez libbluetooth-dev \
libdbus-1-dev bluez-alsa-utils libasound2-plugin-bluez bluez-obexd libusb-1.0-0-dev \
libboost-all-dev libleveldb-dev libmarisa-dev libopencc-dev libyaml-cpp-dev libgoogle-glog-dev
cmake .
make
make install
或者显示指定构建版本
cmake --preset=debug
make
make install
cmake --preset=release
make
make install
-使用默认编译器:
/usr/bin/arm-linux-gnueabihf-gcc
/usr/bin/arm-linux-gnueabihf-g++
cmake --preset=arm-debug
make
make install
手动指定编译器(配置时覆盖编译器路径)
cmake --preset=arm-debug \
-DCMAKE_C_COMPILER=/your/custom/path/arm-linux-gnueabihf-gcc \
-DCMAKE_CXX_COMPILER=/your/custom/path/arm-linux-gnueabihf-g++
make
make install
根据/usr下安装目录,或者 tinyPiXCore/install/arm 目录,移植对应文件至ARM即可。
使用默认编译器:
/usr/bin/arm-linux-gnueabihf-gcc
/usr/bin/arm-linux-gnueabihf-g++
cmake --preset=arm-release
make
make install
手动指定编译器(配置时覆盖编译器路径)
cmake --preset=arm-release \
-DCMAKE_C_COMPILER=/your/custom/path/arm-linux-gnueabihf-gcc \
-DCMAKE_CXX_COMPILER=/your/custom/path/arm-linux-gnueabihf-g++
make
make install
根据/usr下安装目录,或者 tinyPiXCore/install/arm 目录,移植对应文件至ARM即可。
/usr/bin/tinyPiX
/usr/include/tinyPiX
/usr/lib/tinyPiX
/usr/res/tinyPiX
/usr/data/tinyPiX
# SingleGUI引入:
include_directories(/usr/include/tinyPiX/SingleGUI)
link_directories("/usr/lib")
target_link_libraries(你的应用程序名称 PiXSingleGUI)
# Utils引入:
include_directories(/usr/include/tinyPiX/Utils)
link_directories("/usr/lib")
target_link_libraries(你的应用程序名称 PiXUtils)
# ExternUtils引入
include_directories(/usr/include/tinyPiX/ExternUtils)
link_directories("/usr/lib")
target_link_libraries(你的应用程序名称 PiXExternUtils)
# desktopGUI引入
include_directories(/usr/include/tinyPiX/SingleGUI)
include_directories(/usr/include/tinyPiX/Utils)
include_directories(/usr/include/tinyPiX/ExternUtils)
include_directories(/usr/include/tinyPiX/GUIFramework/desktopGUI)
link_directories("/usr/lib")
target_link_libraries(你的应用程序名称 PiXDesktopGUI PiXSingleGUI PiXUtils PiXExternUtils)
[!TIP] ✅ 已在 tinyPiXCore Issues和tinyPiXApp Issues搜索过同类问题。
✅ 使用最新版本进行验证后,问题仍然存在。
✅ 在知识星球当中检索,但是未找到同类问题。
在开源仓库的 Issues 页面提交问题或改进建议。
[!TIP] 如果您对项目很感兴趣,还未加入知识星球,我们建议您加入知识星球深度了解和学习TinyPiXOS开源项目,与星球众多伙伴共同交流进步。
🎁加入“TinyPiXOS开发者联盟”知识星球,==即赠送20个专业版授权额度==。
活动随时取消,请有需要的个人/企业抓住机会!
TinyPiXOS开发者服务邮箱 📧 [email protected]