摘要: 参考:libubox [4] - uloop runqueue ustream 任务队列是通过uloop定时器实现,把定时器超时时间设置为1,通过uloop事件循环来处理定时器就会处理任务队列中的task。进程任务在任务队列基本上实现,加入子进程退出监控。 procd采用此机制。 1. 数据结构 2 阅读全文
posted @ 2017-05-01 21:00 yuxi_o 阅读(1713) 评论(0) 推荐(0) 编辑
摘要: 参考:libubox [4] - uloop runqueue ustream libubox提供了流缓冲管理,定义在文件ustream.h,ustream.c和ustream-fd.c。 1. 数据结构 2. 存储结构 3. 函数 初始化/销毁 写入read buffer 读出read buffe 阅读全文
posted @ 2017-05-01 20:52 yuxi_o 阅读(3064) 评论(0) 推荐(0) 编辑
摘要: 参考:libubox组件(3)——uloop uloop是提供事件驱动机制接口,类似libevent事件框架,基于epoll接口来实现的。 uloop三大功能:事件管理(uloop_fd)、超时管理(uloop_timeout)和进程管理(uloop_process),定义在uloop.h中。 1. 阅读全文
posted @ 2017-05-01 20:13 yuxi_o 阅读(3668) 评论(0) 推荐(0) 编辑
摘要: 大部分内容来自libubox [3] - BLOB BLOGMSG,推荐阅读原文。 blob提供二进制数据处理能力。有几种支持的数据类型,并可以创建块数据在socket上发送。整型数字会在libubox库内部转换为网络字节序进行处理。 二进制块的处理方法是创建一个TLV(类型-长度-值)链表数据,支 阅读全文
posted @ 2017-05-01 18:02 yuxi_o 阅读(16611) 评论(0) 推荐(1) 编辑
摘要: openwrt提供了一个系统总线ubus,类似linux桌面操作系统的d-bus,目标是提供系统级的进程间通信(IPC)功能。 为了提供各种后台进程和应用程序之间的通信机制,ubus被开发出来,由3部分组成:精灵进程,接口库和实用工具。 工程的核心是ubusd精灵进程,它提供了一个总线层,在系统启动 阅读全文
posted @ 2017-05-01 11:39 yuxi_o 阅读(12663) 评论(0) 推荐(0) 编辑
摘要: lbubox是openwrt的一个核心库,封装了一系列基础实用功能,主要提供事件循环,二进制格式处理,linux链表实现和一些JSON辅助处理。 它的目的是以动态链接库方式来提供可重用的通用功能,给其他模块提供便利和避免再造轮子。 libubox主要提供三部分功能: 1)提供多种基础通用功能接口,包 阅读全文
posted @ 2017-05-01 11:33 yuxi_o 阅读(1686) 评论(0) 推荐(0) 编辑