Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #647

U

Ulrich Drepper

Personal blog · akkadia.orgprogrammingsystems

Ulrich Drepper writes Nothing, a personal blog at akkadia.org about programming and systems. Since 2010, 97 different Hacker News readers have linked it 110 times, most often “What every programmer should know about memory (2007) [pdf]”. No feed was found, so read it on the site itself.

No feed foundVisit the blog
110mentions?
15recommend?
97HN people?
2010–2025first – last linked?
Links on Hacker News per year · peak 14 in 2016

Sometimes recommended · 15 of 40 sampled comments recommend it?

Why HN links it

HN readers link Ulrich Drepper's PDFs on memory, shared libraries, futexes and TLS as go-to references. His 'no static linking' essay draws sharp disagreement.

Recommended for · 15 comments
Called a 'fantastic paper', 'ultimate guide', 'go-to reference' and 'goldmine of systems programming wisdom'.

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. What every programmer should know about memory (2007) [pdf]
    26 people · 26 mentions · first linked 2011-09-25
  2. What every programmer should know about memory [pdf]
    13 people · 13 mentions · first linked 2016-02-23
  3. How to Write Shared Libraries (2011) [pdf]
    9 people · 9 mentions · first linked 2010-08-22
  4. How to Write Shared Libraries (2011) [pdf]
    8 people · 10 mentions · first linked 2016-02-16
  5. /drepper/dsohowto.pdf
    5 people · 5 mentions · first linked 2018-11-15
  6. Static Linking Considered Harmful (2004)
    5 people · 5 mentions · first linked 2020-03-25
  7. Static Linking Considered Harmful
    5 people · 5 mentions · first linked 2012-01-28
  8. /drepper/tls.pdf
    4 people · 4 mentions · first linked 2019-09-02
  9. Static Linking Considered Harmful
    3 people · 3 mentions · first linked 2018-07-31
  10. /drepper/userapi-ipv6.html
    2 people · 2 mentions · first linked 2016-01-18

What Hacker News says?

  1. You shouldn't see that much difference, at least on a system designed for static linking (modern GNU/Linux is explicitly not such a system, see http://www.akkadia.org/drepper/no_static_linking.html ). There's still quite a bit of potential for interprocess resource-sharing. If you somehow managed to get a statically linked Firefox (I think it would be very difficult, given the degree to which Drepper has abandoned t…

    Comment linking /drepper/no_static_linking.html

    on “Understanding the bin, sbin, usr/bin , usr/sbin split”
  2. Submitted What Every Programmer Should Know About Memory (2007) [pdf] as a story · 214 points

    HN discussion
  3. N°1 most harmful post on the internet : https://akkadia.org/drepper/no_static_linking.html I am convinced that Drepper's insistence on dynamic linking has set the linux desktop useability and developer friendliness back literal decades.

    Comment linking /drepper/no_static_linking.html

    on “Zig cc: A drop-in replacement for GCC/Clang”
  4. Submitted How to Write Shared Libraries (2011) [pdf] as a story · 53 points

    HN discussion
  5. Ideally a mutex is just a cmpxchg. It gets more expensive when it is contended. See the Drepper paper on futexes: http://www.akkadia.org/drepper/futex.pdf

    Comment linking /drepper/futex.pdf

    on “Linux page table isolation is not needed on AMD processors”
  6. Submitted Static Linking Considered Harmful (2004) as a story · 39 points

    HN discussion
  7. bitexploder · 2017-08-29Recommends
    You can write mostly C code. Each processor will have different quirks. https://en.wikipedia.org/wiki/CPU_cache https://www.akkadia.org/drepper/cpumemory.pdf These are great places to start. Especially Ulrich Drepper's PDF on memory. edit: even simple things like looping can require knowledge of "bits" and "memory layout" and "CPU cache" to write the fastest code. Most people don't need to write the fastest code tho…

    Comment linking /drepper/cpumemory.pdf

    on “FizzleFade”
  8. Submitted How to Write Shared Libraries (2011) [pdf] as a story · 13 points

    HN discussion
  9. This is the paper people usually use to explain some of the performance benefits you could reap, besides the talk about row vs column based performance: https://www.akkadia.org/drepper/cpumemory.pdf Note that I wouldn't really recommend it unless you're really going to do low level programming for high performance. It's super long, explains all the details, if you've got a basic CS college education you should know…

    Comment linking /drepper/cpumemory.pdf

    on “Talks that changed the way I think about programming”
  10. Submitted What every programmer should know about memory (2007) [pdf] as a story · 4 points

    HN discussion
  11. Some Ulrich Drepper papers: - on memory access/caches/memory hierarchy: https://www.akkadia.org/drepper/cpumemory.pdf - on DSO: https://www.akkadia.org/drepper/dsohowto.pdf - Agner Fog on CPU optimization, latencies, vectors etc: https://www.agner.org/optimize/

    Comment linking /drepper/dsohowto.pdf

    on “Ask HN: What should a systems/low-level software engineer know?”
  12. Submitted What Every Programmer Should Know About Memory as a story · 4 points

    HN discussion
  13. I'm not sure how likely that'll be. It's definitely possible, but I think there are going to be a few hurdles. The main one being, symbol versioning. This is important if you export multiple symbols for a function, that is, have a program that depends on a specific implementation of a function. That could mean you depend on different versions of the same library ("functionname@@VERSION_1, functionname@@VERSION_2"),…

    Comment linking /drepper/dsohowto.pdf

    on “Glibc getaddrinfo stack-based buffer overflow”
  14. Submitted How to Write Shared Libraries [pdf] as a story · 3 points

    HN discussion
  15. Don't forget that the principles of the LGPL (originally the "library GPL") were/are pretty much tied to the technical concept of a shared library object that an end-user can change, etc; IANAL so I can't say anything about the legal soundness of this interpretation. Moreover, in a recent discussion about this topic on HN, someone said the introduction of shared libs into the Linux user space was mainly in support o…

    Comment linking /drepper/dsohowto.pdf

    on “Dynamic linking”
  16. Submitted Static Linking Considered Harmful as a story · 3 points

    HN discussion
  17. brandmeyer · 2021-04-28Recommends
    The best introduction is probably the original presentation paper from 2002. Fuss, Futexes, and Furwoks: Fast Userlevel Locking in Linux https://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pd... Another great paper that came after some additional experience by glibc developers: Futexes are Tricky, by Ulrich Drepper https://www.akkadia.org/drepper/futex.pdf

    Comment linking /drepper/futex.pdf

    on “Proposed futex2 allows Linux to mimic the NT kernel for better Wine performance”
  18. Submitted Static Linking Considered Harmful as a story · 3 points

    HN discussion
  19. It is best practice and I wish it was common practice, but there's a lot of friction in the way and some people will actively work against you. Static linking glibc is painful because the former maintainer has some strong opinions: https://www.akkadia.org/drepper/no_static_linking.html Most distros force you to dynamically link every dependency if you want them to package it. So the default build for most projects i…

    Comment linking /drepper/no_static_linking.html

    on “Tiny Container Challenge: Building a 6kB Containerized HTTP Server”
  20. Submitted How to Write Shared Libraries (2011) [pdf] as a story · 3 points

    HN discussion
  21. We have that implemented in Rust too. It's a user-mode thread implementation called mioco. It's not used very much because the performance tends to be worse than 1:1 threads. This is a lesson that we all learned during the NPTL/NGPT era [1] and have subsequently forgotten and will have to relearn. [1]: https://akkadia.org/drepper/nptl-design.pdf

    Comment linking /drepper/nptl-design.pdf

    on “Await in Rust”
  22. Submitted Static Linking Considered Harmful as a story · 3 points

    HN discussion
  23. Comments are good, this particular instance, not so much. This description spends a lot of time stating the blindingly obvious, eg: if (addedFiles.length === 0) { // Abort if no files matched path. throw new Error(files.pathFromRepoRoot(path) + " did not match any files"); Or: // If --bare was passed, write to the Git config indicating that the repository is bare. // If --bare was not passed, write to the Git config…

    Comment linking /drepper/SHA-crypt.txt

    on “Gitlet.js – Git implemented in 1k lines of JavaScript (2015)”
  24. Submitted What Every Programmer Should Know About Memory as a story · 3 points

    HN discussion
  25. > I'm not so sure the Linux design where copies are done in syscalls must be inherently less efficient. Windows overlapped IO can map the user buffer directly to the network hardware, which means that in some situations there will be zero copies on outbound traffic. > especially the RX copy I also don't think you need more than one copy, if you design the network stack with that in mind. When the interrupt occurs, t…

    Comment linking /drepper/cpumemory.pdf

    on “How the Windows Subsystem for Linux Redirects Syscalls”
  26. Submitted How to write shared libraries as a story · 3 points

    HN discussion
  27. berti · 2018-11-15Recommends
    There is a really good paper by Ulrich Drepper on dynamic linking with ELF and glibc (+ a bunch of other important stuff if you're writing libraries) [1], but it's way too low level for what GP wants. I'm sure there must be something simpler around but I haven't seen it. [1] https://akkadia.org/drepper/dsohowto.pdf

    Comment linking /drepper/dsohowto.pdf

    on “The C++ Build Process Explained”
  28. Submitted What every programmer should know about memory [pdf] as a story · 2 points

    HN discussion
  29. amszmidt · 2024-06-12Recommends
    The aversion to static linkage predates that, back many years static linkage also had other issues that have been solved today (ALSR ..). Many of the very basic points that Ulrich Drepper made some odd 20 years back ( https://akkadia.org/drepper/no_static_linking.html ) still hold.

    Comment linking /drepper/no_static_linking.html

    on “Swift Static Linux SDK”
  30. Submitted What Every Programmer Should Know About Memory – PDF (2007) as a story · 2 points

    HN discussion

Search all of HN for akkadia.org

Linked by the same people?