403 禁止访问
403 禁止访问
## 80386保护机制:硬件平衡术
本文详细介绍了80386处理器内部复杂的保护机制,这对于启用如Windows和Linux等支持多任务的操作系统至关重要。在80286保护模式存在缺陷的基础上,386引入了分页、扁平的32位地址空间和虚拟8086模式以兼容DOS——这些特性彻底改变了计算。
尽管拥有275,000个晶体管,386通过巧妙的硬件设计实现了这种复杂性。一个关键组件是**保护测试单元 (PTU)**,这是一个专门的PLA,能够快速评估权限和访问规则,避免了缓慢的微代码分支。分段和分页提供了两层内存隔离,通过**TLB**加速处理,并通过硬件**页表遍历器**处理缺失。
该设计利用了诸如**延迟槽**之类的技术来重叠操作,以及**PTSAV/PTOVRR**系统来实现灵活的验证规则。**虚拟8086模式**巧妙地通过PLA重新路由指令,在受保护的环境中模拟实模式,并捕获敏感操作以供操作系统控制。
最终,386的成功在于平衡了用于速度的专用硬件与用于复杂、有状态操作的微代码——这证明了在严格的约束下巧妙的工程设计。
本文是调试器实现系列的一部分,详细介绍了围绕调试器事件处理构建基本控制循环的过程。此前,调试器只是启动、附加到进程并记录调试事件,而没有交互。现在,目标是添加用于断点和单步执行的用户控制。 核心思想是将事件循环(使用`WaitForDebugEvent`和`ContinueDebugEvent`)包装在一个命令循环中。该循环将接受诸如“继续”、“退出”以及关键的单步执行和断点命令。 “继续”只是继续执行,而“退出”则终止被调试进程。 本文为实现单步执行和断点奠定了基础,并指出事件循环需要进行调整,以便在特定事件(如指令步骤或异常)发生时暂停执行,从而允许调试器在恢复被调试进程之前处理命令。重点是建立控制这些功能的框架,而不是详细说明它们的具体实现。
## Clojure 在 OpenLDK 上:优化 Java 方法分派
在 OpenLDK (一种 Common Lisp JVM) 上运行 Clojure 曾面临极慢的启动时间——达到 REPL 几乎需要三个小时——这是由于 CLOS (Common Lisp 对象系统) 和 Java 的分派机制之间存在根本性不匹配所致。CLOS 使用多分派(考虑所有参数类型),而 Java 使用单分派(仅考虑接收者的类型)。OpenLDK 将 Java 映射到 CLOS,导致每次 Java 调用都进行代价高昂的方法查找,而 Clojure 在启动期间加载的约 3000 个类进一步加剧了这一问题。
解决方案是利用 CLOS 的元对象协议 (MOP) 将 Java 方法的默认分派机制替换为单分派实现。这是通过创建具有分派和 `invokespecial` 调用(Java 构造函数/超类调用)哈希表缓存的自定义 `java-generic-function` 元类来实现的。
关键改进包括拦截 SBCL 的 `update-dfun`(它在类定义上重建分派网络)并将其替换为缓存清除,以及为常用的 Java 方法(如 `<init>`)预先创建泛型函数。这些更改将 REPL 启动时间从近三个小时缩短到三分钟以内,展示了 MOP 在不修改核心 Lisp 实现的情况下进行有针对性的运行时定制的强大功能。
403 禁止访问 nginx
为了改进代码管理和安全性,tldraw的测试套件正在从公开的tldraw/tldraw仓库迁移到私有的、闭源仓库。这包括大量的测试集合——超过327个文件,涵盖了`tldraw`、`editor`、`store`和`sync-core`等多个包的单元测试、集成测试和端到端 (e2e) 测试。 此次迁移包含所有Vitest单元/集成测试、Playwright e2e测试(来自示例和dotcom应用)、相关的配置和测试工具。重要的是,闭源CI将被更新,以针对SDK包运行完整的测试套件。迁移完成后,所有测试文件都将被从开源仓库中删除,将测试整合到私有环境中。此举旨在更好地保护内部测试逻辑,并确保核心tldraw功能的全面测试。
## 鹦鹉:快速、离线和流式语音识别 C++ 工具包 鹦鹉是一个高性能的语音识别工具包,完全用 C++ 构建,利用轻量级的 `axiom` 张量库,并在 Apple Silicon 上实现自动 Metal GPU 加速。它绕过了 Python 和 ONNX 等依赖项,实现了显著的速度提升——高达 110M 模型 CPU 推理速度的 96 倍。 **主要特点:** * **多种模型:** 提供离线 (TDT-CTC 110M/600M) 和流式 (EOU 120M, Nemotron 600M) ASR 模型,以及用于说话人分段的 Sortformer 模型。 * **快速推理:** 在 Apple Silicon 上实现 10 秒音频 (110M 模型) 的约 27 毫秒编码器推理。 * **易于使用:** 简单的 API,只需一个头文件 (`#include <parakeet/parakeet.hpp>`)。 * **灵活性:** 支持解码器选择 (CTC, TDT)、词级别时间戳和完全的流水线控制。 * **GPU 加速:** 利用 `axiom` 的 Metal 图编译器实现优化的性能。 **入门:** 需要 C++20,可以使用 `make` 构建。 预训练模型可通过 Hugging Face 获取,并可以使用提供的脚本进行转换。 该工具包支持各种命令行选项,用于模型选择、GPU 使用和输出格式化。
受一个奇特的、缺氧产生的想法启发,作者踏上了一段旅程,试图将“早餐”的全部内容绘制成一个复杂的、多维空间,其定义基于牛奶、鸡蛋和面粉的比例。 这项最初的趣味性智力练习,很快演变成了一场对理论上的“暗黑早餐”——一种*应该*存在但尚未被观察到的早餐——的痴迷式搜寻。
作者一丝不苟地记录了已知的早餐——煎饼、蛋饼、国际变种——绘制了它们之间的关系,并确定了早餐“流形”中一个显著而令人不安的空白。 尽管进行了广泛的研究,包括搜寻古代食谱,甚至分析了IHOP的菜单,但这个深渊仍然存在。
最终,一个线索浮出水面:IHOP蛋饼中含有煎饼糊,暗示了这种禁忌早餐的位置。 作者得出结论,这个空白很可能存在原因,并且干涉边界可能会产生灾难性的后果。 这项研究与其他的“早餐学者”分享,以洛夫克拉夫特一句令人不寒而栗的引言作为结尾,警告人们揭示太多真相的危险。
## Interval 研究公司:概要
Interval 研究公司于 1992 年由保罗·艾伦和戴维·利德尔创立,是一家独特的硅谷实验室,旨在弥合突破性技术与其未来影响之间的差距。与传统的研发机构不同,Interval 营造了一种高度跨学科的环境——汇集了电影制作人、艺术家、工程师等,探索无线通信、可穿戴计算和沉浸式环境等新兴技术。
受到 Xerox PARC 的成功 *和* 失败的启发,Interval 同时重视创新 *和* 潜在的商业化,运营模式介于研究实验室和风险投资基金之间。研究人员协作进行多个项目,通过“积分”系统分配资源,并被鼓励通过实地研究来研究实际应用。
经过七年的“自由探索”,Interval 将重点转向开发可销售的产品,导致了领导层的变更。虽然创作了一些有趣的艺术装置并催生了一些初创公司,但该实验室在很大程度上保持私密性。这种转变引发了研究人员之间的争论,讨论的是如何维持实验室最初的开放式探索精神,以及满足艾伦不断变化的商业利益,尤其是在有线电视行业。
请启用 JavaScript 并禁用任何广告拦截器。