OpenWRT论坛是一个大型开放源代码操作系统路由器的爱好者社区,论坛管理员发布公告,宣布此次数据泄露及对用户造成的风险。袭击发生在2021年1月16日下午4点(格林尼治标准时间),当时,一个未经授权的第三方获得了管理员的权限,并复制了一个包含论坛用户详细信息和相关统计数据的列表。
有很多开放源码软件都可以实现路由器的功能,为什么只有OpenWrt成功?OpenWrt软件成功的关键在于三个方面:领导力,基础设施,以及软件实现技术。领导往往是最重要的,因为领导决定了社区的规则和技术发展方向,但每个人都是独一无二的,不能复制,因此通常不能被借鉴。可以利用实现软件的基础架构和技术。
在OpenWrt社区中,有六个主要的基础设施工具支持着整个社区的运行,它们分别是代码管理工具Git、邮件列表、自动构建工具buildbot、文档管理工具WiKi、Trac和技术论坛。
Git,代码管理工具。
Git是一个代码管理工具,它可以跟踪文件和目录的历史信息,并且包含4个W(Who,When,Why,What),即谁修改过,何时修改过,为什么修改过,以及修改了什么。另外,Git支持分布式代码库,适合跨地域开发开源软件项目,该工具允许每个人都了解代码变更的过程。经过12年的发展,OpenWrt代码仓库也保持了最初的提交记录。
信息列表。
消息列表是代码审查和代码提交集成的地方,开发人员将修改代码生成补丁发送给所有的消息订阅者,每个人都可以进行代码审查,并且当核心开发人员看到时,将代码集成到代码仓库中。可以将消息内容永久保存到邮件列表。消息列表与普通消息的主要区别是订阅机制和存档机制,每个人都可以免费订阅和查看历史消息。
自动化生成工具buildbot
AutoCustomerToolbuildbot的核心是一个作业调度系统,它将任务排成队列,并在提供任务所需的资源时执行任务和报告结果。Buildbot不仅支持持续集成和自动测试,而且支持自动部署应用程序和管理软件版本。当同时在多个平台开发时,通常最终的编译验证会重复进行,编译机器人(buildbot)控制了这部分工作,每天自动下载编译验证代码,并将安装程序包上传到文件服务器,如果编译失败将通过邮件通知有关人员。
WiKi文件管理工具。
WiKi文件管理工具的特点是开放,允许任何参与的人都可以非常方便地编辑、访问和搜索。大部分软件公司的软件文档都保存为二进制格式,在经过一段时间的开发和人员流动后,这些文档就变成了固定的资料,因为它们将被丢弃,找不到了,而OpenWrt社区的软件开发文档和使用手册都保存在WiKi上。WiKi是一个让所有人都可以修改网页的协作写作和共享平台。由于WiKi使用简化的语法取代了复杂的HTML语言,因此降低了内容维护的门槛。
特拉克。
Trac是一个集成了WiKi和问题跟踪管理系统的项目管理平台,它能够帮助开发者更好地管理软件开发过程,从而开发出高质量的软件。每个人都可以使用这个系统提交错误,并查询当前的进度。trac采用一个面向进展的项目管理模型,以里程碑的方式组织开发。用ticket(问题)对里程碑进行组织,所有问题都得到解决,从而达到里程碑。但是社区并没有完全遵循这一标准,因为他们的开发者都是志愿者,通常在某个时候就会发布一个版本。
科技论坛
科技论坛是一个进行科技讨论的平台,每个注册用户都可以发帖子参加讨论。每个新版本的说明在开发期间都会通过这个平台发布。
通过上述六种基础设施工具,我们可以了解到,开放源码软件和社区的精髓在于开放,任何个人都可以通过网络自由地获取信息并参与其中,从而激发每个人为自己的事业做出贡献,同时开发者也能从社区中得到回报。开放源码社区的工具很多,掌握它们可以帮助您深入了解开放源码社区和OpenWrt。
在OpenWrt技术上取得成功的秘诀在于:统一编译框架,统一配置界面(UnifiedConfigurationInterface,UCI),开放软件包管理系统,以及它的读写和分区系统,Procd系统总线ubus和进程管理模块。
一个统一的编译框架可以让成千上万的软件以同样的方式进行编译,并且可以在许多平台上进行编译。每一个软件模块都按照相同的步骤进行代码下载,解压,打补丁,配置,编译和生成安装包。
一个统一的配置界面使成千上万的软件能够以相同的方式访问数十个平台上的配置数据,配置以统一格式的文本文件进行管理。
开放式包管理制和读写分片制使软件管理更加方便,并能方便地处理包依赖性。读取和写入分区系统可以自由地安装软件,与此不同的是,大多数私有系统需要完全重新编译以安装新软件。
System总线ubus。每一个进程都可以在系统总线上注册以进行消息传递,并为访问系统总线提供命令行工具。
procd,进程管理模块。每个进程都由procd启动,并在意外退出后再次调用。
这些功能并非一次性设计,而是随着时间的推移,随着用户的不断增长和开发的不断深入,每种技术都有其独特的价值。
这篇文章摘录于智能路由器开发指南
介绍内容。
OpenWrt是最流行的开源软件之一,它实现了路由器的功能。该书以OpenWrt为基础,详细介绍智能路由器的发展。
该书共15章,按认识路由器的顺序编写,介绍智能路由器、开发环境和编译分析、OpenWrt软件包管理系统、OpenWrt配置、软件开发、GDB调试、网络基础知识、路由器基础软件模块、常用软件模块、IP路由、DNS和DHCP、iptables防火墙、UCI防火墙、UPnP、网络测试和分析工具等。理论知识和代码实例的丰富可以帮助读者深入了解和理解OpenWrt技术,从而提高开发水平和效率。
这本书适合软件构架师,软件开发工程师,软件测试工程师和计算机相关专业的学生阅读。阅读此书的读者不仅能够掌握OpenWrt技术,而且能够进一步提高自己的软件开发水平。