每日HackerNews RSS

这个为Linux设计的引导加载程序位于引导扇区(0x7c00)的前512字节中。它使用BIOS中断0x13/AH=0x42从硬盘读取扇区,在实模式下加载内核,初始地址为0x10000。然后,它从内核镜像中提取并打印内核版本字符串。引导加载程序设置内核设置头字段以启用堆使用并定义命令行参数,并将命令行复制到内存中。为了加载保护模式内核(可能大于64KB),它将内核分块读取到临时位置(0x20000),并使用中断0x15/AH=0x87和全局描述符表(GDT)将其复制到扩展内存,起始地址为0x100000 (1MB)。最后,在设置好段寄存器和堆栈指针后,它跳转到内核的实模式入口点(0x1020:0)以启动内核执行。错误处理包括在磁盘读取或内存复制失败时显示错误消息并重新启动。

这个Hacker News帖子讨论了一个“最小Linux引导加载程序”(2018年),重点在于其体积小巧以及与MBR/BIOS的兼容性。用户分享了相关的项目,例如sectorlisp和OSle,一位用户还提到在gokrazy中使用了它,并链接到一篇关于调试它的博文。讨论涉及到BIOS/MBR在现代系统中的局限性,一些人建议使用EFI直接引导Linux。其他人则指出像BIOS甚至IBM 360代码这样的遗留系统的持久性,突出了向后兼容性的负担和益处。用户们就其用途展开了辩论,一些人认为它更像是一个代码高尔夫练习,而不是像LILO这样的全功能引导加载程序的替代品。该引导加载程序的关键特性是其极小的体积(小于512字节),展示了引导加载程序创建的基本原理。

这篇博文详细描述了meshoptimizer索引解码器中一个与编译器优化和存储到加载转发(STLF)相关的性能异常问题。索引解码器是快速网格解压缩的关键组件,由于不同编译器(clang,gcc)处理核心数据结构——边缘FIFO的方式不同,其性能表现差异很大。 最初,gcc通过使用向量操作将数据写入FIFO,表现出比clang更好的性能。但是,gcc-15由于生成了在AMD Zen 4 CPU上导致STLF失败的代码而导致性能显著下降。当64位加载尝试从存储缓冲区中的两个单独的32位存储读取数据时,就会发生这种情况,从而导致严重的性能损失。 有趣的是,在苹果M4芯片上使用clang-16的类似代码模式最初表现良好,这是由于苹果更通用的STLF。然而,clang-17(Xcode 16.3)通过生成使用成对加载/存储指令(ldp/stp)的代码进一步提高了性能,从而绕过了STLF问题。这篇文章强调了分析编译器生成的代码和理解微体系结构细节(特别是关于存储到加载转发)对于性能关键型应用程序的重要性。

Hacker News 的讨论线程关注加载-存储冲突,特别是 Clang 积极的加载合并如何负面影响性能,尤其是在通过栈返回结构体时。Sesse__ 指出这在 AMD CPU 上比 Intel 和 Apple CPU 上更是一个问题,观察到 Zen 2 和 3 上的周期损失。cwzwarich 对此表示质疑,回忆起 Intel 过去在加载转发方面相比 AMD 的局限性,并引用了其在 Rosetta 2 上的工作经验。Sesse__ 解释说,虽然 AMD 可能允许更多的情况进行转发,但经验测试表明,在 AMD Zen 2 和 3 上的周期损失比在 Intel Skylake 和 Alder Lake 处理器上更多。cwzwarich 推测,旨在解决这个问题的 LLVM 优化流程可能偏向 Intel,因为它们是由 Intel 工程师贡献的。haberman 称赞原文深入探讨了存储到加载的转发。

Feather 是一个轻量级且开发者友好的 Rust Web 框架,其灵感来自 Express.js。它优先考虑易用性、模块化以及 Rust 的性能和安全性。核心架构围绕可组合的中间件展开,用于路由、身份验证和日志记录。Feather 通过其 Context API 简化了状态管理,无需复杂的提取器或宏。 Feather 提供内置的 JWT 身份验证(通过特性标志),并拥有出色的工具,例如 Feather-CLI,简化了 API 和 Web 服务器的创建。该框架的模块化设计允许开发者仅选择他们需要的功能,避免不必要的开销。凭借简洁且符合人体工程学的 API,Feather 旨在降低 Rust Web 开发的门槛,同时保持高性能。欢迎贡献代码,项目采用 MIT 许可证。

一个 Hacker News 帖子讨论了 Rust 的 Web 框架 "Feather",它号称可以跳过异步代码的样板。然而,用户批评它单线程的特性,一个测试表明并发请求是顺序处理的,这与 Rust 关注安全并发性的理念相矛盾。一些人建议使用 Rocket 作为更成熟的多线程替代方案,它允许同步代码。 讨论指出 Feather 的中间件方法中 `MiddlewareResult::Next` 的冗余,这使得响应成为副作用而不是返回值。虽然 Feather 可能适合小型项目或教育用途,但其性能限制和设计选择对其实际应用性提出了质疑。该帖子还涉及 Rust 在 Web 服务器性能方面与 Go 等其他语言的比较,以及选择框架时的开发者体验 (DX) 考虑,特别是对于 Rust 新手而言。

关于我们 新闻版权联系我们创作者广告开发者条款隐私权政策和安全YouTube 使用规则测试新功能© 2025 Google LLC

一篇 Hacker News 的帖子链接到一个1975年的视频“Critical Program Reading”。评论强调了杰拉尔德·温伯格(Gerald Weinberg)的作品,特别是他的著作《程序设计的心理学》(The Psychology of Computer Programming),与视频主题的相关性。一位评论者指出,温伯格对团队动态的见解引起了他们的共鸣。他们思考,即使技术进步了,编程的核心挑战是否依然存在。另一位评论者幽默地建议,即使是古代文明也可能面临类似的沟通问题,例如难以理解的备忘录。页面还包含一个 AI 初创公司学校的推广链接和标准的 Hacker News 导航链接。

这篇博文深入探讨了3D打印设计(特别是FDM/FFF),重点关注具有最佳机械性能和易于生产的功能部件。它强调通过将拉力与打印表面平行对齐来设计具有强度的部件,并优先考虑表面强度而不是填充。部件方向、分割复杂几何形状和避免锐角是关键。为了提高制造公差和部件表面光洁度,博文建议在平行于打印表面的边缘使用倒角,在垂直边缘使用圆角。它提供了FDM打印的公差指导,建议在精度至关重要时采用可调整设计,并提倡在过盈配合中使用六角形/方形孔而不是圆形孔。 为了优化工艺,文章强调避免使用支撑材料,利用对角线方向,并在必要时分割部件。介绍了独特的技巧,例如牺牲层和分层桥接。它鼓励使用扎带槽、挠性结构,甚至集成螺纹嵌件和嵌入式螺母等机械元件以实现功能集成。最后,作者强调可以应用复杂的形状、阴影线和表面纹理。文章还探讨了花瓶模式设计方法。

这篇 Hacker News 帖子讨论了 3D 打印的设计考量,灵感来自 rahix.de 上的一篇详细文章。用户强调了在 CAD 软件中需要进行“面向生产的设计”,类似于 PCB 设计中的设计规则检查,但也承认由于 3D 打印的非确定性性质,这非常复杂。 讨论随后发展到对 3D 打印机的比较,Bambu Labs 因其易用性和可靠性而受到赞扬,而 Prusa 则因其开源理念和可维护性而受到青睐。人们对 Bambu Lab 的专有性质和数据隐私提出了担忧。还讨论了用于 3D 建模的大型语言模型 (LLM),但指出了其在机械设计抽象方面的局限性。 分享了一些实用技巧和方法,包括使用木螺丝进行螺纹连接,热熔套筒技巧,以及通过消除表面和使用填充物来最大限度地减少材料用量。该帖子还探讨了 Linux 的替代 CAD 工具,推荐了 FreeCAD、OnShape 和 OpenSCAD。最后,用户分享了用于制造和设计流程的资源和工具,例如 Build123D 和其他 3D 查看器。

Hightouch,一家估值12亿美元的领先可组合式CDP(客户数据平台),致力于帮助企业利用其数据,打造个性化的客户体验并优化运营。我们正在寻找一位机器学习工程师加入我们不断壮大的团队,为我们的数据激活产品构建智能层。这个职位专注于利用机器学习解决关键问题,例如个性化、自动化实验、预测受众、内容生成和预算优化。 作为早期加入的机器学习工程师,你将从零开始设计和构建全面的解决方案,涵盖客户研究、问题定义、预测建模和机器学习基础设施。理想的候选人应具备强烈的好奇心、高度的积极性和渴望通过利用Hightouch访问的大量客户数据产生重大影响。我们更看重影响力和发展潜力,而非工作经验年限。薪资范围为每年20万至26万美元,工作地点不限。

Hacker News 最新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Hightouch(YC S19)正在招聘 (ycombinator.com) 7小时前 | 隐藏 加入我们,参加 6 月 16-17 日在旧金山举办的 AI 初创公司学校! 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系我们 搜索:

大型语言模型(LLM)通过预测下一个词元来生成文本。它们使用子词(词元)而不是单词或字母,以平衡词汇量和上下文窗口的限制。文本生成涉及预测所有词元的概率分布,然后从中采样一个。 各种采样方法,例如温度、惩罚(存在惩罚、频率惩罚、重复惩罚)、DRY以及过滤技术(Top-K、Top-P、Min-P),引入了可控的随机性并防止重复。更高级的方法,如Mirostat,会动态调整以保持一致的不可预测性水平。 这些采样器的顺序至关重要。例如,在过滤之前或之后应用温度会显著改变输出结果。理解采样器如何转换概率分布及其相互作用是控制LLM创造力和连贯性的关键。Top-K + Top-P 等协同组合既提供了限制又提供了灵活性,而高温度 + 低 Top-K 等冲突组合则可能适得其反。

Hacker News上的一篇帖子讨论了“现代大型语言模型采样的傻瓜指南”。评论者们就各种采样技术的有效性和适当应用展开了辩论。一些人认为这些技术仅仅是为了弥补模型训练不足的权宜之计,而另一些人则认为它们对于增强创造力和控制输出方差至关重要。关键点包括: * 采样器作用于输出分布,无法访问模型的内部状态。 * 重复惩罚之类的技术被认为是针对更好的训练应该解决的问题的变通方法。 * Top N sigma 和 min_p 等创新被认为对于增强创造力至关重要,但大型 API 提供商对其利用不足。 * 当结合 min_p 等技术时,温度缩放可以比通常认为的推得更高。 * 集束搜索被提及为少数几种实际使用的“搜索”采样策略之一。 讨论还涉及“苦涩教训”(偏向训练而非手动调整)、可解释性以及模型通过反馈循环控制自身采样设置的可能性。

Sanctum是一个安全、权限隔离的VPN守护进程,适用于OpenBSD、Linux和macOS,它优先考虑安全性,采用进程沙箱和密钥分离技术。它使用多个进程进行加密、解密和流量管理,保证数据完整性。Sanctum通过混合密钥交换(ECDH & ML-KEM-1024)和使用AES256-GCM加密的ESP封装来实现后量子安全性。 它支持标准隧道和专用模式:“pilgrim”(只发送)和“shrine”(只接收),用于单向流量。“cathedral”模式充当经过身份验证的中继,用于NAT穿越和使用“ambries”的安全密钥分发,防止cathedral访问会话密钥。 Sanctum需要仔细配置,包括为每个进程分配专用用户。它依赖于pkg-config和libsodium,并提供AES-GCM实现或Agelas密码的选项。高级用户可以使用libkyrka将sanctum协议直接集成到应用程序中,但这缺乏守护进程的沙箱保护。

Hacker News 用户们正在盛赞一款名为“Sanctum”的新型 VPN 守护进程,该程序强调安全性和沙箱机制。用户们对代码的设计印象深刻,尤其赞赏其对最小权限原则的遵守。一位评论者认为,如果更多软件都采用这种方式构建,就能减少对网络安全行业的依赖。另一位用户虽然被其复杂性折服,但也表达了钦佩之情。第三位用户将 Sanctum 的设计与 OpenBSD 的 letskencrypt/acme-client 相比,认为它更有优势。总的来说,反响非常积极,一位用户称其为近期看到过的最佳代码之一。

EZ-TRAK 是一款面向业余无线电爱好者、气象爱好者和教育用途的卫星跟踪软件套件,专为使用便携式天线手动跟踪卫星而设计。它与安装在天线上的专用 EZ-TRAK BLE 设备(需单独购买)连接,以提供实时方位角和仰角数据。 该软件包含三个主要组件:一个用于配置的启动器(位置、卫星选择、TLE 数据源 - Celestrak 或 SatNOGS)、一个显示天线位置极坐标图和过境预测的卫星跟踪器,以及一个可选的旋转器控制应用程序。 主要功能包括动态卫星跟踪、过境预测、BLE 设备集成以获取位置数据、天线指向记录和用户友好的界面。安装需要 Python 3.8+、BLEAK、Matplotlib、Skyfield、NumPy 和 Requests。EZ-TRAK BLE 设备通过蓝牙提供位置数据,并可与 Farabrella 卫星天线配合使用。该软件为专有软件,不提供任何保修。

EZ-TRAK是由benbojangles开发的一套卫星跟踪套件,专为业余无线电爱好者、气象爱好者和教育用途而设计。它使用安装在便携式、可折叠卫星天线上的BLE设备,通过提供方位角和仰角数据,使用户能够手动实时跟踪卫星,以实现最佳指向。 一位用户最初误解了“手动跟踪”(hand tracking),将其理解为卫星跟踪人的手,这突显了措辞中潜在的歧义。另一位用户注意到了字面意义上的“手动跟踪”,欣赏这种低技术、依靠人力的方法,这得益于1米抛物面天线在1.7 GHz频率下12度的波束宽度。一些用户质疑链接的代码库中缺少代码。另一些用户表示有兴趣将其用于卫星数据下行链路,设想将其用于便携式“赛博朋克”装置中。开发者澄清说,可折叠天线是用法拉第织物制作的DIY“法拉第伞”,直径1米的天线重量约为350克,可在eBay上购买。

请启用JavaScript和Cookie以继续

这个Hacker News讨论串讨论了Flatpak和Snap应用在Linux系统上的磁盘空间占用问题。评论者批评这些格式捆绑了依赖项,导致同一个库存在多份拷贝,从而过度占用存储空间。这种膨胀会减慢电脑速度,尤其是在更新期间。 一些人指出了拥有多个版本的系统二进制文件(例如`sudo`)的安全风险。另一些人则认为传统包管理器中的共享库也存在缺点,会导致依赖冲突。讨论涉及到应用隔离、依赖管理和存储效率之间的权衡。 AppImage被提及作为一种更便携的替代方案,而其他人则为Flatpak的运行时共享进行了辩护。该讨论串还深入探讨了为什么Windows的“便携式应用”看起来更小,指出Windows稳定的API和缺乏集中化的包管理系统。 一位用户表达了对Linux桌面应用分发现状的失望。该讨论串最终反映了关于最佳软件打包和分发方式的持续争论。

更多

联系我们 contact @ memedata.com