linux 应用程序架构
最近在知乎上看到关于linux应用程序架构设计的帖子。于是总结一下个人经验,将项目中积累的所得,
在Linux的大型项目中我跟过两个项目。
两个项目的共同点都有网络通信图像采集和视频传输。大致的结构我们可以总结为”cc+进程”
意思就是有一个control center 控制中心,这个中心理解为一个交互的主进程。加上一些功能实现的其他进程共同实现的一套应用程序架构。
一个嵌入式Linux设备中,可以有10个左右的进程,如果资源强大cpu够牛可以有更多的服务。每个进程可以有5-6个线程来分时处理更多的任务。线程多进程要少这应该是比较划算的架构机制。
比如这个是一个项目中的应用。图中涉及到的还是不够全面,不能说明一切问题。比如他没有qt图形交互这个进程。
客户端app应该是个udp tcp 或者其他的客户端可以和设备通过WiFi直接进行通信。
另外cc是通信接口的进程,所有的数据处理都经过cc,cc下有多个子线程来处理不同的任务。还有一个用于其他服务的进程,他的内部有一个线程。另外还有一个ota升级程序。
还有其他的算法alogrithm进程。等等