Laddie事件处理系统:logmuxd的深入解析
1. 事件处理的重要性与现状
在设备运行过程中,当警报或其他关键事件发生时,设备需要做出响应。比如CPU温度过高、电池电量过低、磁盘空间不足或者纸张数量不够等情况出现时,设备必须采取相应的行动。然而,在Linux系统中,通用的事件处理系统并不常见。通常,直到设备系统测试接近尾声时,事件处理的需求才会变得明显,所以这往往被当作事后考虑的问题,采用临时拼凑且集成性差的代码来解决。
2. 构建新事件处理系统的原因
我们发现,按时交付且无错误的代码往往是我们没有编写的代码。也就是说,最成功的项目往往是那些我们尽可能避免编写新代码的项目。新代码总是会有漏洞,并且交付时间也会延迟。那么,为什么我们还要决定编写一个日志守护进程来进行事件处理呢?答案主要有两部分:一是为什么选择日志记录作为机制,二是为什么不使用现有的日志系统。
日志记录是事件报告的合适机制,因为我们关注的所有事件已经被syslog消息捕获,或者可以很容易地被捕获。几乎每种编程语言都有syslog库,而且syslog易于理解、相对安全,并且在CPU和内存使用方面都很高效。
在事件处理方面,仅次于syslog的是D - Bus,这是一个常用于分发桌面事件的开源软件包。D - Bus提供了库和API,允许进程之间交换消息,但前提是两个进程都支持D - Bus。因此,使用syslog的遗留应用程序必须重写以添加D - Bus支持。此外,D - Bus支持的编程语言不如syslog广泛,并且通常需要运行两个守护进程,这使得它在RAM和CPU使用方面相对较高。需要注意的是,D - Bus在大多数Linux桌面系统中是标准配置,但对于大多数Linu
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



