HackerPapers

HN 二十年,最值得读的论文。

从 Hacker News 2006 年以来的全部投稿里,挑出链接本身就是论文的帖子:arXiv、期刊、会议论文、技术报告。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从必读开始
  • 8,000+篇被 HN 讨论过的论文

Essential

必读 30 篇

在论文库里看全部精选

编辑精选里 HN 讨论最热的 30 篇,每篇都有中文导读。不知道从哪读起,就从这里开始。

  1. 正在载入论文…

Archive

论文库

点柱子按年份筛选。注:源数据里 2023 年的帖子分数记录不全,2026 年尚未过完,这两年收录偏少。

难度
排序

    About

    这些论文是怎么挑出来的

    1. 01

      全量扫一遍

      读取 Hacker News 自 2006 年以来的全部 446 万条链接投稿,找出指向 arXiv、期刊、会议、技术报告和学术 PDF 的帖子。

    2. 02

      只留论文本身

      由 AI 逐条判断,剔除介绍论文的新闻、博客和幻灯片,同一篇论文的多次投稿合并计算,并统计它在评论区被引用的次数。

    3. 03

      写导读、译评论

      讨论最热的 1,500 篇配上中文导读,并精选、翻译 HN 高赞评论。导读由 AI 生成,可能有误,请以原文为准。

    系统与数据库2015openbsd.org

    OpenBSD 的新 httpd

    Introducing OpenBSD's new httpd

    入门 · 约 25 分钟读完前置知识:HTTP 服务器基础、Unix 系统管理基础

    读论文 HN 讨论
    197HN 得分
    154条评论

    导读

    这是 OpenBSD 开发者在 AsiaBSDCon 2015 上的演讲幻灯片,介绍 OpenBSD 新写的内置 HTTP 服务器 httpd。OpenBSD 此前先后从基础系统中移除了 Apache 和 nginx,转而用自研的精简 httpd 取代,强调简单、安全、默认可用的设计理念。

    HN 关注点:OpenBSD 弃用 nginx 转向自研 httpd 的决策,以及新代码的安全与质量是否名副其实。

    关键词 OpenBSDhttpdnginxC

    HN 评论精选

    这几条评论里:支持 1 质疑 1 补充 2

    补充半年内基础系统 HTTP 服务器两度更换,对系统管理员是很大负担

    Apache 于 2014 年 3 月 14 日从基础系统中移除、改用 nginx,而 nginx 又在 2014 年 8 月 27 日被 OpenBSD httpd 取代。对紧跟'推荐做法'的系统管理员来说,半年内迁移两次 HTTP 服务器配置一定很令人沮丧。另外我很好奇'从基础系统移除'具体是什么意思——还能从 ports 集合安装这些(OpenBSD 补丁版)吗?

    xiaq查看英文原文

    So... Apache was removed from base on Mar 14 2014 in favor of nginx, and nginx on Aug 27 2014 in favor of OpenBSD httpd. For sysadmins who closely follow the "recommended" way, having to migrate the configurations of the http server twice within half a year must have been a frustrating experience. Also, I wonder what "removal from base" means exactly - can you still install them (the OpenBSD-patched versions) from the ports collection or something like that?

    质疑质疑 httpd 代码质量,认为其风格糟糕、缺乏注释,配不上 OpenBSD 的防御性编程声誉

    我花了半小时读代码,真心希望这不是 OpenBSD 所认为的防御性 C 编程的代表:栈上分配的缓冲区、可疑的逻辑、糟糕的整体风格,而且完全没有注释。别光听我说,自己看:https://github.com/reyk/httpd/blob/master/httpd/server.c。'新'也有点名不副实——版权标注是 2006-2015。

    jacquesm查看英文原文

    I've been going through the code for the last half hour and I really hope this isn't representative of what the OpenBSD group considers to be defensive C programming. Stack allocated buffers, questionable logic and a generally terrible style as well as a complete lack of comments. Don't take my word for it, see for yourself: https://github.com/reyk/httpd/blob/master/httpd/server.c The "new" is a bit off too, the copyright runs 2006-2015.

    补充建议用独立进程终结 SSL 再代理给 HTTP 服务器,以实现更好的安全隔离

    有什么技术上的理由要在 HTTP 服务器里实现 HTTPS 吗?如果在 443 端口跑一个单独的进程来终结 SSL 连接,再把请求代理给本地运行的 HTTP 服务器,关注点分离会更好。比如这样配置后,HTTP 服务器中允许读取内存的安全漏洞就无法读到 HTTPS 服务器使用的私钥。我想缺点是代理转发会带来一些额外延迟,以及第二个进程的额外内存开销。想听听大家的看法。

    marc_omorain查看英文原文

    Is there a technical reason why you would implement HTTPS in a HTTP server? If you ran a separate process on port 443 to terminate SSL connections, and then proxy that request to a HTTP server running locally, there would be better separation of concerns. For example, this setup would mean that a security flaw in the HTTP server that allowed a user to read memory would not be able to read any private keys used in the HTTPS server. I guess some downsides would be some extra latency while the request is proxied, and some extra memory overhead for the second process. I'm interested in anyones thoughts on this.

    支持对 httpd 代码风格表示欣赏

    我喜欢这帮家伙:(附 server_http.c 代码链接)

    zx2c4查看英文原文

    I love these guys: https://github.com/reyk/httpd/blob/master/httpd/server_http.c#L802-L804

    相关资源

    从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。

    代码

    历次讨论

    同领域还值得读

    1. I/O 比 CPU 更快——让我们划分资源并消除操作系统抽象

      I/O Is Faster Than CPU – Let’s Partition Resources and Eliminate OS Abstractions

      指出在现代服务器硬件上 I/O 速度已接近甚至超过 CPU,传统操作系统抽象反而成为瓶颈。

      系统与数据库2019 · 817 分 · 277 评进阶 · 约 30 分钟编辑精选
    2. 使用 io_uring 的高效 I/O

      Efficient IO with io_uring

      由 Linux 内核开发者 Jens Axboe 撰写,介绍 Linux 新的异步 I/O 接口 io_uring。

      系统与数据库2019 · 426 分 · 96 评进阶 · 约 45 分钟编辑精选
    3. 线程对大多数用途而言是个坏主意(1995)

      Threads Are a Bad Idea for Most Purposes (1995)

      这篇 1995 年的文章由 John Ousterhout 撰写,讨论为什么线程对大多数用途而言是坏主意,并主张事件驱动编程通常更简单、更高效。

      系统与数据库2017 · 423 分 · 382 评进阶 · 约 25 分钟编辑精选
    4. 学习型索引结构之论证

      The Case for Learned Index Structures

      提出把索引看作一种"模型":既然 B-tree 等结构本质上是在学习数据的分布,就可以用机器学习模型(如回归模型、神经网络)来近似键到位置的映射,从而替代 B-tree、哈希索引…

      系统与数据库2017 · 398 分 · 66 评 · 引用 25进阶 · 约 60 分钟编辑精选
    5. FoundationDB:一个分布式、解耦的事务型键值存储

      FoundationDB: A distributed, unbundled, transactional key value store

      介绍 FoundationDB:一个分布式、解耦设计的事务性键值存储。

      系统与数据库2021 · 283 分 · 99 评进阶 · 约 90 分钟编辑精选

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。