:Rust写的并发数据访问库,使用内存映射文件、零拷贝反序列化,免等待同步。

:Rust写的并发数据访问库,使用内存映射文件、零拷贝反序列化,免等待同步。 其核心mmap-sync是一个Synchronizer结构,它提供了一个带有“写入”和“读取”方法的简单接口,允许用户读取和写入任何T实现或派生某些 rkyv 特征的 Rust 结构体 ( )。 数据存储在共享映射内存中,允许Synchronizer同时“写入”和“读取”。这使得它成为mmap-sync管理共享、并发数据访问的高效且灵活的工具。

相关推荐

封面图片

FlatBuffers 是一个跨平台序列化库,旨在最大限度地提高内存效率。 它允许您直接访问序列化数据而无需先对其进行解析/解包

FlatBuffers 是一个跨平台序列化库,旨在最大限度地提高内存效率。 它允许您直接访问序列化数据而无需先对其进行解析/解包,同时仍具有出色的向前/向后兼容性。 FlatBuffers 适用于 C++、C#、C、Go、Java、Kotlin、JavaScript、Lobster、Lua、TypeScript、PHP、Python、Rust 和 Swift。 它最初是在 Google 创建的,用于游戏开发和其他性能关键型应用程序。 |

封面图片

一种通用的高性能轻量级类STL的现代C++ B树

一种通用的高性能轻量级类STL的现代C++ B树 这个库是只有头文件的,所以除了包含头文件之外不需要额外的设置过程。此库在C++中实现了一个通用的仅head的STL类B树,包括支持将其用于内存映射磁盘文件和固定大小的分配器。 B树是一种自平衡树数据结构,它维护排序的数据,并允许在对数时间内进行搜索、顺序访问、插入和删除。 与其他自平衡二叉搜索树不同,B树非常适合于读取和写入相对较大数据块的存储系统,例如数据库和文件系统。

封面图片

:Go语言的并发流处理工具包,简化并发编程中的样板代码,提供类型安全、批处理和错误处理功能

:Go语言的并发流处理工具包,简化并发编程中的样板代码,提供类型安全、批处理和错误处理功能 主要特征 轻量级:快速且模块化,可以轻松集成到现有项目中 易于使用:管理 goroutine、等待组和错误处理的复杂性被抽象出来 并发:控制所有操作的并发级别 批处理:提供一种简单的方法来批量组织和处理数据 错误处理:提供一种结构化的方法来处理并发应用程序中的错误 流式传输:以最小的内存占用处理实时数据流或大型数据集 顺序保存:提供保存数据原始顺序的功能,同时仍允许并发处理 高效利用资源:goroutine 和分配的数量与数据大小无关 通用:所有操作都是类型安全的,可以与任何数据类型一起使用 函数式编程:基于函数式编程概念,使 map、filter、flatMap 等操作可用于基于通道的工作流程

封面图片

第一个DNA数据存储规范发布 迈向商业化的第一步

第一个DNA数据存储规范发布 迈向商业化的第一步 DNA 数据存储使用称为寡核苷酸 (oligos) 的短脱氧核糖核酸 (DNA) 串,它们通常混合在一起,没有特定的物理排序方案。 这种存储介质缺乏专用控制器和组织手段来了解一个介质子组件与另一个介质子组件的接近程度。 DNA 存储与磁带、HDD 和 SSD 等传统介质有很大不同,后者具有固定的结构和控制器,可以从结构化介质读取和写入数据。 DNA 缺乏物理结构,需要采用独特的方法来启动数据检索,这带来了其标准化方面的特殊性。为了解决这个问题,SNIA DNA Archive Rosetta Stone (DARS) 工作组(DNA 数据存储联盟的一部分)制定了两个规范:“零区”和“一区”,以促进启动 DNA 档案的过程。零扇区作为起点,为档案阅读器提供所需的最少详细信息,以识别负责合成 DNA 的实体(例如 Dell、Microsoft、Twist Bioscience)以及用于编码第一扇区的 CODEC(例如 Super Codec、Hyper 编解码器,Jimbob 的编解码器)。 零扇区由 70 个碱基组成:前 35 个碱基标识供应商,后 35 个碱基标识编解码器。 扇区零中的信息使得能够访问和解码存储在扇区一中的数据。 SZ 中存储的数据量很小,适合单个寡核苷酸。第一扇区对此进行了扩展,包括内容描述、文件表以及将数据传输到定序器所需的参数。 该规范确保档案的主体是可访问和可读的,为数据检索铺平了道路。 第一区正好包含 150 个碱基,并将跨越多个寡核苷酸。DNA 数据存储联盟董事会的 Dave Landsman 表示:“DNA 数据存储联盟的一个主要目标是制定和发布规范和标准,以促进可互操作的 DNA 数据存储生态系统的发展。随着联盟第一个规范的发布,我们在实现这一目标方面迈出了重要的一步。零区和一区现已公开,允许该领域的公司采用和实施。”DNA 数据存储联盟由 Catalog Technologies, Inc.、Quantum Corporation、Twist Bioscience Corporation 和 Western Digital 领导(尽管我们不确定 Western Digital 的 NAND 还是 HDD 部门负责制定该规范)。 同时,包括微软在内的众多行业巨头也支持DNA数据存储联盟。 ... PC版: 手机版:

封面图片

Mozilla Firefox 125 已发布 改进了AV1视频流、PDF高亮显示等功能

Mozilla Firefox 125 已发布 改进了AV1视频流、PDF高亮显示等功能 Firefox 125.0.1 有哪些新功能?新功能Firefox浏览器现在支持用于加密媒体扩展(EME)的 AV1 编解码器,从而可以从视频流提供商处播放更高质量的视频。Firefox PDF 浏览器现在支持文本高亮显示。Firefox浏览器视图现在会在"打开的标签页"部分显示固定的标签页。此外,"打开"选项卡中还添加了选项卡指示器,这样用户就可以查看哪些选项卡正在播放媒体,并在不同窗口间快速静音或取消静音。还为书签、有通知的标签页等添加了指示器。现在,Firefox浏览器会提示美国和加拿大用户在提交地址表单时保存地址,以便Firefox浏览器将来自动填充已存储的地址信息。Firefox浏览器现在会更主动地阻止从被认为可能不可信的 URL 下载。URL 粘贴建议功能为用户快速访问复制到 Firefox 地址栏剪贴板中的 URL 提供了一种便捷的方式。当剪贴板中包含一个 URL 并聚焦 URL 栏时,自动完成结果就会自动出现。激活剪贴板建议后,用户只需单击一下就能导航到该 URL。特定标签页容器插件的用户现在可以在地址栏中搜索在不同容器中打开的标签页。特别感谢志愿贡献者 atararx 启动了这项功能!Firefox 现在提供了一个选项,可在配置为使用系统代理设置时启用网络代理自动发现 (WPAD)。变化在一组未选定选项的单选按钮中,Tab 键现在只能到达第一个选项,而不是循环浏览所有可用选项。方向键可以在选项之间导航,就像有选定选项时一样。这使得键盘导航更加高效和一致。开发人员根据一些请求,我们重新引入了禁用"暂停调试器叠加"(devtools.debugger.features.overlay)选项。当调试器暂停 JavaScript 执行时,页面内容上会出现该覆盖图。在某些情况下,叠加可能会造成干扰,使页面交互变得困难,例如,难以评估页面下方的颜色深浅。我们在调试器面板的源代码视图底部添加了一个新的下拉菜单按钮,专门用于与源代码映射相关的操作。用户现在可以轻松禁用或启用源映射支持,在新标签页中打开源映射文件,在原始源代码和生成的捆绑包之间切换,切换"默认打开原始源代码"选项,以及查看源映射状态(如错误、加载状态等)。网络平台Firefox 现在支持 popover 全局属性,用于将元素指定为弹出窗口元素。该元素在可见之前不会被呈现,之后会出现在其他页面内容的顶部。WebAssembly 多内存现已默认启用。Wasm 多内存允许 wasm 模块使用和导入多个独立的线性内存。这使得模块之间的互操作性更高效,并为即将推出的 wasm 标准(如组件模型)提供了更好的多填充功能。为 JavaScript 添加了对 Unicode 文本分割的支持。在 HTMLCanvasElement 和 OffscreenCanvas 上添加了对上下文丢失和上下文恢复事件的支持,以便用户代码在使用硬件加速的 2d 画布时从上下文丢失中恢复。Firefox 现在支持 navigator.clipboard.readText() Web API。当尝试读取同源页面未提供的剪贴板数据时,会出现粘贴上下文菜单供用户确认。已添加对 transform-box CSS 属性的 content-box 和 stroke-box 关键字的支持。align-content 属性现在可在区块布局中使用,无需使用柔性或网格容器即可实现区块方向对齐。删除了对SVGAElement.text的支持,转而使用更广泛实施的 SVGAElement.textContent 方法。要下载 Firefox 125,请前往菜单 > 帮助 > 关于 Firefox。或者访问官方网站下载安装程序。完整的发行说明可在此处获取。 ... PC版: 手机版:

封面图片

发条消息就破解iPhone 史上最嚣张黑客连用4个零日漏洞

发条消息就破解iPhone 史上最嚣张黑客连用4个零日漏洞 同样好奇的当然也有受害者本人,也就是卡巴斯基团队。他们给这个入侵行动起了个名字叫 “ 三角测量行动 ” ,并且对整个入侵事件就进行了复盘,给出了详细的报告。卡巴斯基的报告里 ” 三角测量行动 “ 附图仔细分析了一下卡巴斯基团队的分析报告,发现入侵者的入侵方法堪称 “ 豪华 ” ,连卡巴斯基团队自己都懵逼了,从来没见过这个玩法:这次针对 iPhone 的攻击,居然同时利用了 4 个零日漏洞,就是凭借着 4 个漏洞,攻击者基本实现了对整个硬件设备的完全控制。额外提一嘴,零日漏洞( Zero-Day )又叫零时差攻击,指的就是那种之前从来没有被发现过、所以没有被修复或者拦截的漏洞。我尝试着把攻击者利用零日漏洞完成攻击的整个链条捋了一遍,大致是这个样子的:通俗点来讲,就是黑客给目标手机发了一个假的 iMessage 附件,植入了一个木马,这个木马骗过了 iPhone 里各种严防死守的保护机制,甚至绕过了苹果 A 系列处理器芯片上的硬件防护,完全控制了整个手机硬件设备,可以说为所欲为。在整个过程中,前面提到的 4 个零日漏洞被充分利用,被攻击的手机只是因为接到了 iMessage 附件,甚至都还没打开,整个手机就已经连底裤都被扒光了。看完我感觉这个攻击者的操作离谱到匪夷所思,他真的是普通的攻击者吗?听我讲完这些零日漏洞到底是啥,攻击者又是怎么利用他们的,估计就会懂我为什么会有这样的疑问了。在最开始,攻击者会给目标手机发送一份恶意的 iMessage 附件,但是按照 iMessage 对待附件的逻辑,它会在不向用户显示任何迹象的情况下处理这个附件。也就是说,用户可能还没察觉这个是不是有问题的附件, iMessage 就已经开始处理这个附件了,这个有问题的附件进入到你的 iPhone 的过程,用户是无法察觉的。光是无法察觉这一点,估计已经吓坏一大帮人了,但是这还只是入侵者的引子。攻击者真正的第一个目标是一个名为 CVE-2023-41990 的零日漏洞。这个漏洞存在于一款用来调整字体的显示效果的系统 API 指令中,可以让攻击者通过恶意 iMessage 附件远程执行代码,或者说植入了一个木马。是的,苹果的字体指令中也会有漏洞,而且该指令自上世纪 90 年代初就已存在。但是这个字体指令本身是苹果公司独有的,而且苹果并没有公开这一条指令的存在,很多关注这个事情的人分析到这里的时候都怀疑攻击者的真实来头。第一遍看的时候我以为,攻击者植入的木马就是这个 iMessage 附件本身。但实际上它只是打开字体指令漏洞的钥匙,真正的 “ 木马 ” 是在没公开的字体指令的漏洞里被植入的。被植入之后,这个 “ 木马 ” 一路高歌猛进,从代码框架手上骗到了执行手机上别的程序的能力,这已经进入到 iOS 系统非常深的内部了,甚至已经差不多要摸到系统内核了。一般来说到了这里,攻击者已经可以收手了,直接劫持一个本地程序,也能读取手机上的一些隐私和信息。但对于这一次入侵的攻击者来说,前面所做的还只是他的开胃菜,他真正的目标就是 iOS 的系统内核。按照正常的思路,攻击者现在已经进入到 iOS 系统内部,下一步他应该会直接去攻击系统内核。但是他没有这么做。攻击者利用了内核中第二个零日漏洞,内存管理 - 内存映射系统上的一个漏洞,直接先去控制了最最最底层的硬件内存( 获取了整个物理内存的读取和写入权限 )相当于说,先放下了 iOS 的这一套系统不管,跑到了 A 系列芯片上,控制了处理器上实际物理内存。我们平时接触到的 iMessage 、微信这些应用程序,并不会直接操作实际的芯片上的物理内存。比如微信要存储一个文件,并不是微信自己的代码跑到硬件内存芯片上去写,它只要把文件交给系统的接口。剩下的具体操作系统会统一安排,到硬件硬件内存芯片上去写入。既然攻击者的目标是 iOS 系统内核,那为啥要费这么大劲儿绕过它,而去管那么远的硬件内存的事情呢?实际上到这里为止,系统内核还是安全的,只是被利用了一下。因为就算攻击者能够往实际的物理内存里乱写东西,也没有用攻击只能往这里面写,但是不知道这一个内存块存的是什么东西、是用来干嘛的。内核访问硬件内存的路径也是七弯八绕的根本不知道,攻击者企图从硬件内存反攻回内核简直是在自己找死,自己在里头绕几圈没准就迷路绕死了。除此之外攻击者还有一个 “困难 ” 要克服 苹果的硬件级内存防护。比如苹果的页表保护层 PPL (Page Protection Layer) ,这样的硬件级别的内存防护,专门防这种能搞定硬件内存的攻击者。在这次的攻击事件发生之前,苹果的这种深度基于硬件的保护被认为是牢不可破的。因为这样的硬件级别内存防护高度依赖于 SOC 设计本身,正常情况下的只芯片设计者自己知道这个保护是怎么回事。但是攻击者又是怎么破的呢 ?准确地说,他并没有攻破这一层的硬件级内存防护。因为他找到了第三个零日漏洞苹果的这个页表保护层虽然很强势,但是可以绕过。攻击者是怎么利用这个零日漏洞的呢?用卡巴斯基团队自己的话来说就是:攻击者能够把数据写入某个特定的物理地址,通过将数据、目的地址和数据哈希写入到未被固件使用的芯片的未知硬件寄存器,从而绕过了基于硬件的内存保护。简单讲就是,苹果的这一层硬件级防护,只能保护那些被系统内核用过的硬件区域。也就是说,硬件内存里有一块隐藏区域,连苹果的安全系统都不知道它的存在,保护不到它,但是这个黑客知道。于是这块隐藏区域成为了绕过安全检查的后门。攻击者就这样绕过绕过了这一层硬件级别的防护,劫持了系统内核。在利用完前面三个零日漏洞之后,攻击者基本就可以在设备上做任何他想做的事情了,他想要进的系统内核,也能进了。但是攻击者还没有要收手的意思。估计手机自己都无语了,我现在从到里又从里到外都已经被你看了个遍了,你想让我干嘛也我也完全要听你的了,你还想怎么样?事实上攻击者确实也可以清除掉所有漏洞利用痕迹,继续埋伏在这一台 iPhone 里,闷声发大财,或者就干脆擦屁股走人。但是攻击者选择了悄悄地运行 Safari 浏览器的进程,找到了另一个零日漏洞。假如读者里有搞攻防的小伙伴可能现在的心情已经日了狗了。大家可能不知道 iPhone 的一个零日漏洞有多值钱 去年的 Pwn2Own 大会拿一百万美元都没钓出来苹果的 0day。结果这哥们轻轻松松就扔了四个出来,而且最离谱的是,你们知道他拿这第四个 0day 漏洞干了什么吗?他又执行了一遍先控制物理内存再反攻 iOS 内核的操作!!!(最开始提到第一个漏洞做过的事情)这位黑客,请问你是来搞黑客攻击的还是来炫富的?!假如 iPhone 能说话,可能也要开始大喊开挂了。好了,这次事件的攻击流程我们总算是大概给大家盘完了。这次攻击事件最有意思就是前面说到的,被攻击者用来从硬件内存,反攻系统内核的 “ 隐藏区域 ” 。这个隐藏区域,其实是某个没有被用到的硬件寄存器。正常情况下,各种可用的外围设备比如马达、扬声器、麦克风等等,都会提供特殊的硬件寄存器,CPU 可以通过这些寄存器来操作这些设备。而此次攻击者用来绕过苹果硬件层保护的这些寄存器,CPU 自己都没有调用过,也不知道他们是用来干嘛的。这就是为啥要说这些寄存器是 “ 未知 ” 的。夸张点说,即使是是苹果自己的工程师来了,不花上一点功夫都不... PC版: 手机版:

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人