感受开源之美共享Linux的安全与便捷
扫描二维码
随时随地手机看文章
一提到哪种系统更安全这个问题时,大家首先就会说开源的系统更安全,为什么呢?这是因为它不仅具有着广泛的参与性,而且还具有很好的共享性,达到了人人参与,人人受益的目的;所以,这类系统受到恶意攻击的次数远远低于其他商业类软件系统,是更加安全的一类系统。其中的佼佼者,就是 Linux 系统和以 Linux 内核作为核心的开源操作系统。
模块化程度高:Linux 的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得 Linux 系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。
源码公开:由于 Linux 系统的开发从一开始就与 GNU 项目紧密地结合起来,所以它的大多数组成部分都直接来自 GNU 项目。任何人、任何组织只要遵守 GPL 条款,就可以自由使用 Linux 源代码,为用户提供了最大限度的自由。
这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码对于嵌入式系统的开发是至关重要的。加之 Linux 的软件资源十分丰富,每种通用程序在 Linux 上几乎都可以找到,并且数量还在不断增加。这一切令设计者在其基础之上进行二次开发变得非常容易。另外,由于 Linux 源代码公开,用户不用担心有“后闸”等安全隐患。同时,源码的开放给各教育机构提供了极大的方便,促进了 Linux 的学习、推广和应用。
广泛的硬件支持:Linux 支持 x86、ARM、MIPS、ALPHA 和 PowerPC 等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。由于世界范围内有众多开发者在为 Linux 的扩充贡献力量,所以 Linux 有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新的硬件技术,甚至可在没有存储管理单元 MMU 的处理器上运行,这些都进一步促进了 Linux 在嵌入式系统中的应用。
内核安全、高效、稳定与易用性更好: Linux 内核的高效和稳定已在各个领域内得到了大量事实的验证。Linux 中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。
具有优秀的开发工具:开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用嵌人式 Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式 Linux 为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。
有很好的网络支持和文件系统支持: Linux 从诞生之日起就与 Internet 密不可分,支持各种标准的 Internet 网络协议,并且很容易移植到嵌入式系统当中。目前,Linux 几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是 NFS 的一个很好的平台。另一方面,由于 Linux 有很好的文件系统支持 (例如,它支持 Ext2、FAT32、romfs 等文件系统),是数据备份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。
Lockdep(Linux 内核中的死锁检测器)是一个用来检测死锁的强有力工具,且内核开发人员已使用了很长一段时间。但是,当涉及到读写/写锁死锁检测时,Lockdep 仅能够提供有限的支持。同时,一些主要架构(x86 与 arm64)已经或正试图将其 rwlock 实现转变为队列 rwlock,从而使得这一支持变得更加有限。例如,我们发现了一些发生在内核中的死锁案例,无法使用 Lockdep 对其进行检测。为了改善这一情况,ikml 发布了一个补丁集以支持在 Lockdep 内进行读写/写入死锁检测,并已更新到了第 6 版。 本演讲将简要介绍 rwlock 相关死锁(递归读写死锁),以及我们如何对 Lockdep 进行微调以进行检测。其将着重于检测算法以及准确性和一些实现细节。
EROFS 文件系统是一个 Linux 只读文件系统,用以节省额外的存储空间,并保证嵌入式设备,尤其是安卓设备的端到端性能。与其他通用文件系统相比,这一系统旨在减少元数据的数量,并为目标文件系统用户提供透明的压缩支持。在过去的 2018 年里,EROFS 已完成开发,合并入 Linux 的状态树,并安装入多种智能手机中。请注意,其目前仍在积极开发中。在之后,将会增加更多有用的功能。本演讲将展示与在消费者的嵌入式设备内进行实时解压相关的问题以及我们的实践、EROFS 的详细设计、基准评测、与当前的 squashfs 的对比、被压缩的 btrfs 以及 EROFS 的未来蓝图。