HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
openbsd
src
C2016–2026
openbsd / src

src

Read-only git conversion of OpenBSD's CVS src repository. This only includes the main branch; use CVS for -stable or release branches. Send any diffs to the tech@ mailing list.

108Distinct people
146Mentions
0Explicit recommenders
3.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Read-only git conversion of OpenBSD's CVS src repository. This only includes the main branch; use CVS for -stable or release branches. Send any diffs to the tech@ mailing list.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 6:01:08 PM UTC.

A live tree of systemd jobs on the boot console direct repository linkDebated

The discussion centers on a visualization tool for systemd boot jobs, which serves as a catalyst for a broader debate regarding systemd's monolithic architecture versus simpler alternatives like OpenRC or Runit. Participants strongly disagree on whether systemd's complexity and aggressive integration are necessary modernizations or detrimental violations of the Unix philosophy that hinder debugging and flexibility.

145 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year146 dated mentions

Observed mentions: 2016-10-17 20:24:05 UTC to 2026-10-20 07:38:05 UTC.

01020302016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 32 mentions; 1 submissions, 31 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 16 mentions; 1 submissions, 15 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 14 mentions; 0 submissions, 14 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC211
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC11011
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC13013
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC13013
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC1019
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC13112
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC32131
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC16115
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC10010
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC14014
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC12111

What Hacker News says

11 sources
No. All that it is is common heritage in the BIND DNS client library whose doco this is. It is a widely used DNS client library that has made it into numerous operating system's C libraries, from Solaris through GNU libc to OS/2. The manual pages for that library have spread along with it. * https://www.isc.org/downloads/libbind/ * http://wiki.netbsd.org/individual-software-releases/netresol... * https://sourceware.org/git/?p=glibc.git;a=blob;f=resolv/READ... One can even trace its spread from, say, 386BSD through NetBSD to OpenBSD. * https://github.com/NetBSD/src/blob/516da8a02fc8bc10555ed9acd... * https://github.com/openbsd/src/blob/df930be708d50e9715f173ca... Manual pages are not standards, not specifications, but implementation documentation. As Chuck McManis said in this very discussion, to misuse them as standards or specificati
Read the rest
ons is to mistakenly treat implementation as architecture. The BIND DNS client library is far from the only DNS client library in existence. Other DNS client libraries read /etc/resolv.conf, as part of a BIND DNS client compatibility shim or otherwise. They do not have the same implementation details as the BIND DNS client; they do not all have the same access patterns as the BIND DNS client. Indeed, as I have mentioned elsewhere in this very discussion, even other tools from the same origin, namely nslookup, read /etc/resolv.conf and have different access patterns. * https://cr.yp.to/djbdns/blurb/library.html * http://www.chiark.greenend.org.uk/~ian/adns/ * http://25thandclement.com/~william/projects/dns.c.html * https://groups.google.com/d/msg/comp.protocols.dns.bind/B3tg... There is not a single common conventional, let alone standard, behaviour to rely upon.
In Systemd-resolved does not keep the order of the DNS servers
The BSDs and Solaris/Illumos have had DRM for years (where available), but it tends to lag the Linux version significantly because it's not trivial to port the code from Linux. I'm not sure where the compatibility breaks relative to the code given on the page, but most of them have some derivative of the original drm.h header that defines most of the structs and ioctls mentioned (e.g. [1] [2] [3]) [1] https://github.com/freebsd/freebsd/blob/master/sys/dev/drm/d... [2] https://github.com/openbsd/src/blob/master/sys/dev/pci/drm/d... [3] https://github.com/illumos/illumos-gate/blob/master/usr/src/...
In Intro to Low-Level Graphics on Linux
In case someone is interested, here is relevant code [0]. Notice that mutexp is read without any synchronization, and _spinlock further down uses different lock than one in initialization code (former is specific to this mutex and latter a global one). There is no happens before relationship between mutex initialization and mutex locking. Thus, if different thread reads non-null value of *mutexp, there is no guarantee that writes done to the mutext structure itself will be visible. Given strong memory model of amd64 and i386, compiler would have to reorder pointer publication and structure initialization in pthread_mutex_init, unlikely but certainly a valid change given lack of synchronization. [0] https://github.com/openbsd/src/blob/0ecb71b5ec9e4b22a484606f...
In OpenBSD switches the default compiler on amd64 and i386 to clang
The design djb talks about of pre-generating batches of random numbers, deleting the cipher key and erasing the numbers as they are extracted is exactly what OpenBSD has done since Markus Friedl switched arc4random() to use ChaCha20 in 2013: https://github.com/openbsd/src/commit/90c1fad70a3483c2c72c3c... The design was inspired by Nick Mathewson's libottery: https://github.com/nmathewson/libottery I think he misses the point his criticism of getrandom() - that is intended to be the interface by which the libc PRNG gets its seed; userspace programs should just use the libc PRNG instead of going off to the kernel (i.e. arc4random())
In Fast-key-erasure random-number generators
For something somewhat related, see parts of this thread: https://news.ycombinator.com/item?id=14414610 Note that cat+gnu awk was faster than just gnu awk - but mawk was faster still (reading a not entirely small file). And in a similar vein of gp comparing Gnu and Openbsd, note that openbsd cat is a little more convoluted than the simplest possible implementation (at least to my eyes): https://github.com/openbsd/src/blob/master/bin/cat/cat.c https://github.com/coreutils/coreutils/blob/master/src/cat.c (That is, Gnu "cat" and OpenBSD "cat" are less different than Gnu "yes" and OpenBSD "yes").
In How is GNU `yes` so fast?
Completely agree. But the tools don't make this very easy. Back in college I was working on patches to OpenSSL, Chrome, Firefox, Apache, etc., to add support for TLS-SRP, and it was a huge pain to jump into these massive codebases and try to understand them. I was using Emacs and had all of the various language support modes configured, but go-to-definition and cross-references barely worked. Searching was slow, and if I wanted to discuss a piece of code with my CS lab partners, I couldn't just share a link. A friend felt the same pain but then went to work at Google for a bit. At Google, they have some pretty amazing code reading/searching tools (see https://static.googleusercontent.com/media/research.google.c...), and these tools helped Google build a culture of thoroughly reading and reviewing code. The causality is bidirectional, but
Read the rest
having good tools certainly played a role in Google's success. That friend and I ended up building a product, Sourcegraph, initially for ourselves to make code reading easier. We've now built a successful business out of it with the help of an amazing team. Here it is pulling in the OpenBSD sources: https://sourcegraph.com/github.com/openbsd/src/-/blob/lib/li.... Sourcegraph has advanced features for several languages; see https://sourcegraph.com/github.com/mholt/caddy/-/blob/caddyh..., for example. If you love to read code (or want to), we hope you'll love our product. Email me if you have any feedback/requests.
In Reading OpenBSD source code daily

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.