每日HackerNews RSS

启用 JavaScript 和 Cookie 以继续。

## 查找编译器总结 本文详细介绍了作者为 Unix `find` 实用程序开发编译器的过程,其动机来自于未来的项目以及对常用实现效率低下的惊讶。现有的 `find` 实现通常依赖于树形遍历解释器,而作者选择使用字节码编译器来提高性能,通过预解析和最小化每个文件的操作来实现。 `find` 表达式语言,利用诸如 `-a` (与)、`-o` (或) 和 `!` (非) 等运算符,被翻译成简单的五条指令的字节码。该字节码作为一个单寄存器机器运行,使用分支指令 (`braf`/`brat`) 来实现逻辑运算。 作者的编译器 `findc` 将 `find` 的中缀表示法转换为后缀表示法,使用 Shunting-yard 算法,然后通过在栈上构建代码片段将其转换为字节码。生成的字节码虽然功能正常,但展示了优化的机会——例如消除冗余的 `NOT` 指令和简化分支——可以通过窥孔优化器来实现。提供了一个 Wasm 演示和源代码,允许用户试验 `find` 命令并观察它们的字节码表示。

## Hacker News 讨论:`find` 命令性能 一篇 Hacker News 讨论围绕着 Unix `find` 命令通常使用简单的树形遍历解释器,而不是将表达式编译成字节码的原因。最初的帖子表达了对这种实现选择的惊讶。 普遍的共识是,`find` 的性能主要受限于磁盘 I/O,使得表达式求值的优化在很大程度上无关紧要。即使使用 RAM 磁盘等快速存储,大量的文件和目录仍然可能使 I/O 成为瓶颈。 虽然字节码方法*可能*提供诸如更易于测试和潜在降低 CPU 使用率之类的优势,但与文件系统操作所花费的时间相比,收益可能微乎其微。 许多评论员指出数据库系统中的类似方法,即使是成熟的数据库,由于 I/O 的主导地位,也经常优先使用树形遍历进行表达式求值。 优化集中在 I/O 和复杂计算上,而不是简单的文件过滤。 最终,简单性和易于实现是 `find` 设计的关键因素,因为解释器直接反映了搜索表达式的树形结构。

几个世纪以来,西班牙从新大陆获得了大量黄金涌入,成为欧洲强国。然而,尽管收到了巨额财富,西班牙最终未能维持其繁荣——这引发了一个问题:所有的黄金都去哪儿了? 虽然盗窃和海盗行为导致了10-15%的黄金未能抵达西班牙,但大部分黄金确实运到了。问题不在于缺乏黄金,而在于一场被称为“价格革命”的剧烈通货膨胀。货币供应量(黄金和白银)的突然增加超过了商品生产,导致物价上涨,西班牙产品失去竞争力。 这导致西班牙进口大于出口,造成了净财富流出。控制贵金属出口的尝试失败了,黄金基本上通过消费和债务“悄然流失”。西班牙经历了货币激增,但财富却没有相应增加,最终导致了几个世纪的经济困难。 关于进一步损失的传言仍然存在,包括西班牙内战期间西班牙国库转移到俄罗斯的说法,但证据仍然难以捉摸。

本书将引导读者使用 Rust 从零开始构建一个完全功能、符合 POSIX 标准的操作系统——**不依赖外部库**。作者强调清晰的解释,体现了爱因斯坦的原则:真正的理解能带来简洁的沟通。 虽然一些编程经验会有帮助(Rust 知识不是必需的,但熟悉一种编程语言即可),但本书旨在让即使是低级编程新手也能理解。它将涵盖诸如汇编、内存管理和 CPU 模式等基础概念,以及 Rust 特有的特性。 项目将从启动和调试开始,逐步实现核心操作系统组件:内存分配、中断处理、文件系统、进程管理,最终运行像 Doom 这样的程序。作者欢迎反馈以提高清晰度,并计划可能扩展本书以包含虚拟化主题。

## LearnixOS:一个新的操作系统开发资源 LearnixOS (learnix-os.com) 是一个新项目,旨在教授操作系统开发,使用 Rust 语言实现。该项目在 Hacker News 上引发了讨论,许多用户最初误以为它是一个关于学习 NixOS 的资源,因为名称相似。但已澄清,“Learnix” 是 “Unix” 和 “Learn” 的组合词。 该项目专注于从头开始构建操作系统,有意避免使用高级抽象,以促进更深入的理解。一些评论者赞赏这种方法以及使用 Rust,并指出它便于交叉编译。另一些人则建议使用 RISC-V 等替代目标架构,认为它比 x86 更适合初学者。 反馈包括改进语法和一致性的建议,一些人认为轻微的错误比经过抛光的人工智能生成的文本更具“人性化”。 此外,还将它与现有的操作系统开发教程(如 MIT 6.824 和 Phil Opperman 的作品)进行了比较。开发者已收到反馈并计划解决这些问题。

Please provide the content you want me to translate. I need the text to be able to translate it to Chinese.

1990年12月底,英国计算机科学家蒂姆·伯纳斯-李在欧洲粒子物理实验室CERN悄然启动了万维网。作为一项类似于“影子IT”的项目,他创建了基础技术——HTML、网页浏览器和Web服务器,以便在不同计算机之间轻松共享信息。 第一个Web服务器托管在info.cern.ch,大约在12月20日或25日上线,展示了关于万维网本身的的技术文档。不幸的是,没有原始截图存在,但有1992年的近似版本。 最初的影响并不明显,但随着1993年用户友好型浏览器NCSA Mosaic的发布,万维网在大学中迅速传播。这最终推动了互联网泡沫的出现,并塑造了我们今天所知的互联网,这一切都源于伯纳斯-李最初的目标:可访问、互联的数据。

请启用 JavaScript 并禁用任何广告拦截器。

这次黑客新闻的讨论围绕着一篇《纽约时报》的文章,文章重点介绍了丹麦地球物理学家英格·莱曼,她发现了地球的内核——一个在其祖国却鲜为人知的角色。 对话迅速转向关于抵御宇宙辐射的主要防御手段的争论:地球磁场还是大气层。虽然一些来源(NASA、ESA、维基百科)强调磁场的作用,但有大量参与者认为大气层提供了大部分保护,并引用了近地轨道和海平面上的辐射水平。人们对航天机构可能存在偏见表示担忧,因为它们会推广对磁层进行研究以确保资金。 用户分享了支持文章、科学数据,甚至哥本哈根莱曼的壁画链接,展示了关于莱曼的遗产和行星科学的活泼信息和观点交流。

用户对ChatGPT对话中缺乏时间戳感到沮丧,尽管对此功能已经有长期请求(超过1.5年)。这使得追踪对话历史变得困难,尤其是在用于日记、生活建议或记录问题的长期聊天中。 一些解决方法已经出现:一位用户修改了ChatGPT的人物设定,使其自动在每个回复中添加时间戳。更懂技术的用户创建了Chrome扩展程序(通过GitHub提供)和脚本,以提取和显示代码中现有的隐藏时间戳。 许多人认为OpenAI *已经* 在内部追踪时间戳,使显示问题成为一个简单的UI/UX修复。用户强调对该功能的日益增长的需求,并引用了潜在的合规性要求以及对敏感或时间关键对话的改进上下文。 越来越普遍的观点是,OpenAI优先考虑新产品开发,而不是解决现有工具的用户反馈。

请启用 JavaScript 并禁用任何广告拦截器。

1716年3月6日夜幕降临后不久,壮观的光芒再次照亮了欧洲大部分地区的上空,从苏格兰和瑞典一直延伸到西班牙南部,将天空染成深红色、紫色和绿色的条纹。英国数学家威廉·惠斯顿,同时也是神学论战的作者,收集并发表了来自英国各地关于当晚所见“令人惊讶的流星”的亲身证词。他的目击者们描述了广阔的“火柱”、“柱状”、“火光闪耀的光束”和“金字塔”,在北方的天空中燃烧,呈现出“彩虹的所有颜色”,并垂直向地平线下降。另一些人则将这种现象比作空中军队进行着一场巨大的战斗,唤起了长矛和燃烧长枪的战争隐喻。天文学家埃德蒙·哈雷在次年发表于《皇家学会哲学事务》的文章中指出:

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 理解北极光 (historytoday.com) 22 分,由 benbreen 1天前发布 | 隐藏 | 过去 | 收藏 | 3 评论 teiferer 1天前 | 下一个 [–] 我期待这篇文章,但显示“要继续阅读此文章,您需要购买订阅,仅需 £5。” 回复 ErroneousBosh 1天前 | 父评论 | 下一个 [–] 网站名称也让我想到这个:https://www.youtube.com/watch?v=9UMedd03JCA 回复 dekken_ 1天前 | 上一个 [–] 也许更具信息量:https://www.youtube.com/watch?v=2TnFXddv37E 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

更多

联系我们 contact @ memedata.com