FreeBSD 为 SYSINT 采用合并排序取代冒泡排序
FreeBSD 维护者 Colin Percival 发帖称,他们已经为 SYSINIT 采用合并排序 (mergesort) 来取代冒泡排序 (bubblesort)。
SYSINIT 是通用调用排序和调度机制的框架,FreeBSD 目前使用它来动态初始化内核。
当加载内核或其模块之一时,SYSINIT 允许在内核链接时对 FreeBSD 的内核子系统进行重新排序、添加、删除和替换,而无需编辑静态排序的初始化路由并重新编译内核。
该框架还允许内核模块(目前称为 KLD)在引导时单独编译、链接和初始化,甚至在系统运行时加载。该操作使用“内核链接器”和“链接器集” ("kernel linker" and "linker sets") 来完成。
via FreeBSD 文档
Colin Percival 表示,使用合并排序后的运行速度比之前快了大约 100 倍。
他此前解释过更换算法的原因,当 FreeBSD 内核在 Firecracker(单核 CPU、128 MB RAM)中启动时,会花费 7% 的时间在其 SYSINIT 上运行冒泡排序。当对一千多个项目进行排序时,O(N^2) 会变得非常复杂,所以需要用更快的算法取代冒泡排序。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Karafka v2.1.10 发布,基于 Apache Kafka 的应用程序开发框架
Karafka v2.1.10 现已发布。Krafka 是一个用于简化基于 Apache Kafka 的 Ruby 应用开发的框架,它允许开发者在使用异步 Kafka 消息时使用类似于标准 HTTP 约定(params 和 params_batch)的方法。Karafka 不仅可以处理传入的消息,而且还提供了用于构建接收和发送消息的复杂数据流应用程序的工具。 此版本更新内容如下: [增强功能] 引入connection.client.rebalance_callback事件,用于再平衡的工具化。 [重构] 引入低级命令代理来处理希望如何运行某些命令以及 rdkafka-ruby 如何按设计运行该命令的偏差。 [修复] 当分配不可行的情况下,不要在 DD listener 中报告延迟。 [修复] 不要在 DD listener 中报告负滞后。 [修复] 规格中启动后极快关闭可能会导致进程不停止。 [修复] 默认情况下禁用管理员的allow.auto.create.topics权限,以防止在主题元数据查找时意外创建主题。 [修复] 通过增加过低的超时来改进query_watermark_o...
- 下一篇
Windows QQ 客户端存在远程代码执行漏洞
Windows 版腾讯 QQ 桌面客户端出现高危安全漏洞,目前尚未修复,利用难度极低、危害非常大。攻击者只需要构造一个极其简单的消息链接即可:当用户在 QQ 好友或 QQ 群里点击该消息链接,QQ 就会自动下载并打开这个恶意文件。 此问题影响 Windows 版 QQ 9.7.13 及之前版本,而目前最新版就是 9.7.13,因此理论上这些版本都受影响,不过 QQ NT 版是 9.9 +,赛博昆仑没提到这个版本,所以应该是不受影响,只不过用户得重新安装 QQ NT 版。 漏洞描述: 2023 年 8 月 20 日,赛博昆仑捕获到利用 QQ 桌面客户端远程执行的漏洞,该漏洞为逻辑漏洞,攻击者可以利用该漏洞在 QQ 客户端上进行无需用户确认的文件下载和执行行为。 当用户点击消息链接时,QQ 客户端就会自动下载并打开该文件,因此攻击者可以制作任意恶意软件并构造一个消息链接诱导用户点击,点击后用户将在无感知情况下被安装木马。 影响范围和处置建议: 该问题影响 Windows 版 QQ 9.7.13 及之前版本,目前最新版就是 9.7.13 版,因此暂时没有修复漏洞的新版本可用。 但 QQ NT...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程