每日HackerNews RSS

## NewPipe 庆祝十周年 本月,流行的 YouTube 替代品 NewPipe 迎来了一个重要里程碑:它的十周年纪念日!它从一个小型项目发展成为一个拥有数百万用户和一支敬业的维护者和贡献者团队的社区驱动的努力。 过去五年取得了显著进展,包括成立 NewPipe e.V.,这是一个德国协会,在财务和结构上支持该项目。这使得能够聘请开发人员——包括核心团队成员——专注于主要的应用程序重构,旨在采用 Kotlin 和 Compose 构建现代代码库。 虽然重写仍在进行中,但 NewPipe 面临着越来越多的挑战,尤其是来自 Google,后者积极寻求限制替代平台。对替代 Android 应用商店的新限制构成了重大威胁。然而,团队仍然乐观,相信他们有能力克服障碍并继续开发。 NewPipe 依赖于社区贡献,并欢迎新的开发人员来帮助确保其未来。目标是开发一个稳定、功能丰富的应用程序,并最终构建一个超越 Google 控制的更开放的视频生态系统。

## NewPipe 庆祝十周年 YouTube 客户端应用 NewPipe 正在庆祝其十周年,在 Hacker News 上引发了用户讨论。许多人赞扬 NewPipe 的视频播放和下载功能,特别是其离线使用能力,例如旅行时使用。 一个关键的讨论点围绕下载器展开:虽然 NewPipe 很方便,但有些人更喜欢 yt-dlp 以避免移动屏幕时间。另一些人则强调 NewPipe 的易用性和订阅管理等功能。 最近的讨论还集中在 NewPipe 的分支版本上,用户推荐 **Tubular** 和 **PipePipe**,因为它们集成了 **SponsorBlock**(跳过赞助片段)和 YouTube 不喜欢功能。虽然 NewPipe 本身不原生包含 SponsorBlock,但这些分支提供了该功能。 用户还分享了个人轶事,从用于儿童娱乐到与狗一起享受播客,甚至承认它对屏幕使用习惯的影响。

## 从电源按钮到内核:启动过程概述 当你启动一个Linux系统时,在熟悉的桌面出现之前,会展开一个复杂的序列。它始于“实模式”,一种简单的CPU状态,CPU跳转到固件(BIOS或UEFI)以执行初始硬件检查并找到可引导设备。 固件然后加载一个引导加载程序,例如GRUB,它将Linux内核加载到内存中。内核最初包含一个小的“设置”程序,用于准备工作区——对齐内存段、创建堆栈以及清除零初始化数据(BSS)。它还会确定可用RAM的数量。 接下来,系统过渡到32位保护模式,最终过渡到64位“长模式”,从而启用完全的内存访问和保护。这涉及设置表(GDT、IDT)来管理内存段和中断。激活分页,一种虚拟到物理内存映射系统。 最后,内核从压缩状态解压缩自身,如果需要,可能会重新定位其代码(kASLR用于安全),并跳转到`start_kernel`函数,启动完整的操作系统初始化。这个复杂的过程,由微小的程序和精确的CPU指令驱动,将按下电源按钮转化为正在运行的Linux系统。

## Linux 启动过程讨论 - Hacker News 摘要 最近一篇 Hacker News 帖子 (0xkato.xyz) 详细介绍了“Linux 启动过程:从电源按钮到内核”,引发了热烈讨论。 许多人觉得这个话题有趣,但一个常见的批评集中在文章细节水平不一致和可读性差(浅灰色文字在白色背景上)。 用户指出,对于对启动过程感兴趣的读者来说,解释诸如十六进制数字之类的基本概念是不必要的,并且希望在 UEFI、安全启动以及从硬件复位到内核初始化等领域有更深入的探讨。 许多人建议交互式格式可以提高理解力。 对话还涉及了 BIOS 和 UEFI 启动之间的差异、ARM 架构启动过程以及受众分析在技术写作中的重要性。 尽管存在缺陷,这篇文章仍然引起了许多人的共鸣,突显了当前对底层系统细节和独立技术博客的兴趣。 评论区分享了进一步阅读的资源,包括有关 UEFI 和操作系统开发的文章链接。

自定义您的体验,调整图层可见性和应用程序主题模式。我们始终乐于听取您对改进应用程序和更好地提供数据的建议。请关注未来更新中的更多自定义选项,如果您希望看到其他功能,请与我们联系。 图层可见性(请注意,某些主题不包含所有图层类型) 联系和断层图层(包括联系点、断层等) 地质线图层(包括非拓扑线性要素) 图幅单元线图层(图幅单元太窄,无法绘制成多边形)

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 合作国家地质图 (usgs.gov) 16 分,来自 rob 1 天前 | 隐藏 | 过去 | 收藏 | 讨论 考虑申请YC冬季2026批次!申请截止至11月10日 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:

启用 JavaScript 和 Cookie 以继续。

## Scryer Prolog 环境库摘要 此库为 Scryer Prolog 提供了一个健壮的、全局环境/上下文管理系统,基于关联树(AVL 树)和黑板构建。它允许存储和检索键值对,提供持久性(跨回溯)和可回溯(局部)存储。 主要特性包括:**全局和局部状态管理**、用于条件逻辑的**类型安全的重构谓词**(使用 `if_/3` 避免剪切)、以及**仅初始化一次**以防止意外覆盖。还提供了高效的**键存在性检查**。 该库提供用于设置/获取值的谓词(`env_set_global`, `env_key_val`)、检查标志(`env_check_flag_t`)以及管理环境本身的谓词。它专为声明式编程设计,利用 `library(reif)` 实现对回溯友好的条件语句,并提供 O(log n) 的键查找性能,即使对于大型数据集也是如此。 环境通过 `term_expansion/2` 初始化一次,将一个空的关联树存储在黑板上。它采用 BSD-2-Clause 许可,并与 Scryer Prolog 的标准库兼容。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Scryer Prolog 的全局键值元数据存储 (github.com/jjtolton) 13 分,triska 发表于 1 天前 | 隐藏 | 过去 | 收藏 | 1 条评论 shawa_a_a 1 天前 [–] 我很久没写 Prolog 了,所以不确定这些想法是否相关(全局状态可能就足够了!);但从 readme 的第一印象来看,这让我想起了 ETS https://www.erlang.org/doc/apps/stdlib/ets.html 本质上是在命名表下进行系统全局状态管理。 你有没有考虑过命名 `env` 实例?这将允许,例如,将功能标志保存在名为 `features` 的关系集合中。 你也可以借鉴 Erlang 的“匹配规范”并使用谓词查询键。 回复 考虑申请 YC 2026 冬季批次!申请截止日期为 11 月 10 日 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

这个文件似乎是PDF文档的内部结构,特别是交叉引用表(xref)和其他元数据。它不是像文本或图像那样可供人类阅读的内容。 `xref`表对于PDF阅读器定位文件中的不同对象至关重要——例如文本、图像、字体和页面描述。列出的数字(例如“0000000016 00000 n”)代表这些对象在PDF文件中的字节偏移量。 本质上,这些数据*描述*了一个PDF,但并不*包含*PDF可见的内容。在进一步处理之前,无法确定PDF实际显示什么。这是文档组织的一种低级表示。

## TinyKVM 更新:超越计算,迈向快速隔离 TinyKVM 在二月份开源后,已扩展其最初的纯计算重点,开始支持运行未修改的可执行文件,例如 Deno、Python WSGI 和 Lune。这是通过极简的系统调用模拟实现的——目前 50 个调用,有意“凭空捏造”以避免直接访问内核,同时在需要时允许经过清理的访问。 一项关键创新是**按请求隔离**,目前是速度最快的。它采用混合方法:在每个请求后快速将受影响的页面重写回其原始状态,对于内存密集型任务则回退到完全 VM 重置。基准测试表明,TinyKVM 实现了比原生 Deno 执行更低的延迟,尽管存在隔离的开销。 此外,TinyKVM 引入了一种新颖的**远程过程调用 (RPC)** 机制。通过允许在同一地址空间中的二进制文件之间直接调用函数(通过捕获和寄存器切换),它绕过了传统的依赖调度器的 IPC,实现了大约 2 微秒的速度。这使得在按请求隔离的同时,能够实现有限的持久性。 最后,现在支持**VM 快照**,将整个 VM 状态存储在单个文件中(基本 Deno 实例约为 135MiB)。未来的工作旨在通过仅预加载访问过的页面来优化冷启动时间。

## TinyKVM:快速、轻量级沙箱 这次Hacker News讨论的中心是TinyKVM,一个旨在提供快速高效沙箱环境的新项目。与使用完整客户操作系统进行传统虚拟化不同,TinyKVM在KVM(内核虚拟机)内运行单个进程,并在验证后直接在主机上处理系统调用。 主要优势在于速度——启动时间低于100微秒——以及最小的资源消耗。这使其适用于按请求隔离,特别是对于服务器端JavaScript,为更轻松的调试提供可预测的程序状态。 与Firecracker(运行完整的Linux客户)或gVisor等解决方案相比,TinyKVM优先考虑速度和简单性。目前尚未设计用于GUI应用程序,但讨论探讨了将其适应于该目的的可能性,并承认大量系统调用的开销。许多评论员还将它与Qubes和Guix等项目进行比较,指出它对安全性和隔离采取了更轻量级的方法。 许多用户最初将该项目与硬件KVM切换器混淆,突出了该首字母缩写词的双重含义。

## Linux内核的Execve处理:加载ELF二进制文件 本文详细介绍了Linux内核通过`execve()`系统调用执行程序的方式,重点关注流行的ELF(可执行和可链接格式)二进制文件。该过程在`fs/binfmt_elf.c`中实现,涉及检查ELF头、识别程序段(代码、数据、BSS)并将它们映射到进程的内存空间中。 关键步骤包括通过清除旧进程的状态来准备新程序的环境——杀死线程、释放内存和更新凭据。然后设置虚拟内存,通常采用栈随机化以提高安全性。重要的是,内核使用辅助向量、参数和环境变量设置程序的栈。 对于动态链接的程序(最常见的情况),内核加载并执行一个运行时链接器(如`ld-linux-x86-64.so.2`),然后解析依赖关系并启动程序。内核还通过兼容层(`compat_binfmt_elf.c`)支持32位二进制文件,该层重定向函数并使用适当的32位结构。 最终,`execve()`以重新映射内存并初始化寄存器来启动新程序,从而有效地将控制权转移到新进程。

## 黑客新闻讨论:程序运行方式 - ELF 二进制文件 最近一篇黑客新闻的讨论,源于 2015 年 LWN.net 上关于 ELF 二进制文件的文章,揭示了关于程序在 Linux 上执行方式的有趣见解。对话始于用户分享早期经验——例如运行盗版 PS2 游戏或捣鼓 DOS——如何让他们对操作系统以及最终的编码有了更深入的理解。 讨论的核心围绕着 Linux 内核的 ELF 加载器,它被有意保持简单,只关注必要的程序段。这种简单性允许创建非常小的可执行文件,但也需要在内核、libc 以及潜在的 libdl/ldlinux 之间复制 ELF 加载逻辑。 用户将这种方法与 QNX 进行了对比,QNX 通过共享对象文件在用户空间处理所有加载。虽然 Linux 现在也提供了类似的功能,但仍然存在遗留代码。一个关键点是,Linux 优先维护其与用户空间的既定关系,即使潜在的好处很大,也不太愿意进行激进的改变。 讨论还涉及了“镜像激活”等历史术语,这些术语是在现代 LLM 兴起之前使用的。

## 放弃S3:WebDAV的优势 作者认为,对于许多用例来说,默认依赖亚马逊S3进行文件存储过于复杂。虽然S3在FTP/SFTP消亡后变得普及,但许多项目仅仅需要安全、认证的文件访问——WebDAV在这方面表现出色。 作者的核心需求是认证、高效的写入/同步以及默认的隐私性,而不需要S3的高级功能,如版本控制或分层存储。作者反对像Openstack Swift或Minio等复杂的替代方案,并强调后者最近在易用性方面出现了倒退。 WebDAV令人惊讶地易于访问,得到MacOS Finder、Windows Explorer和`rclone`等工具的支持,并且可以轻松集成到现有的Web服务器(Apache、Nginx等)中。作者详细介绍了一种使用LDAP认证的安全的Apache配置,确保用户被限制在自己的目录中。 目前,作者使用WebDAV与Joplin和Keepassium等应用程序配合使用,并通过`rclone`进行静态博客发布。作者总结说,WebDAV并未过时,并且为许多个人和自托管项目提供了一种更简单、可行的S3替代方案。

## WebDAV:2025年仍然适用 尽管有传言称其已过时,但WebDAV仍然是一种可行的文件访问和同步协议。文章强调了它在各种应用中的持续使用,包括rclone用于同步、Tailscale的驱动共享、Fastmail的文件存储、CopyParty挂载,甚至在OmniFocus和Paperless-NGX等工具中。 虽然该协议并非完美——缺乏标准化的随机写入,并且由于不一致的实现需要变通方法——但由于其基于优化的Web技术,它比SFTP具有速度优势。用户报告了针对特定需求的成功实施,例如同步Devonthink数据库和提供媒体服务。 讨论还涉及SFTP、NFS和S3等替代方案,承认它们的优点和缺点。虽然FTP在某些遗留系统中仍然存在,但WebDAV提供了一种更现代且通常更易于访问的解决方案,尤其是在不同的操作系统(Windows、macOS)上。尽管Windows Explorer的性能存在挑战,但WebDAV仍然为那些寻求开放标准和自托管解决方案的人们找到了一席之地。

更多

联系我们 contact @ memedata.com