• by musicale on 4/23/2025, 2:24:42 PM

    Contempt for stable kernel data structures and APIs (and forget about any sort of kernel ABI) might make things easier for certain kernel developers, but it offloads a constant maintenance burden onto many other people, such as eBPF, driver, and kernel extension developers.

    This sort of asymmetry is why system modules, and platforms in general, should absorb pain in order to benefit their many clients, rather than doing the opposite.

    Could be worse though - some platforms (cough, iOS) are happy to break user apps every year and offload a constant maintenance burden onto many thousands of app developers, when a more stable ABI would save developers (and users) billions of dollars in aggregate.

  • by kazinator on 4/24/2025, 12:47:21 AM

    "struct tcphdr" follows the wire format dictated by the TCP protocol. It positively has not changed between 5.3 and 5.4, and cannot. It would make no sense, since it would violate RFCs and fail to interoperate.

    https://elixir.bootlin.com/linux/v5.3/source/include/uapi/li...

    https://elixir.bootlin.com/linux/v5.4/source/include/uapi/li...

  • by linuxftw on 4/23/2025, 1:03:55 PM

    This is all covered in the eBPF documentation. CORE was introduced over 6 years ago.

  • by Upvoter33 on 4/23/2025, 12:25:09 PM

    There's some research on this topic, e.g., https://depsurf.github.io

  • by jeffrallen on 4/23/2025, 10:25:02 AM

    Feels like yet another example of "essential complexity driven by too much churn in infrastructural code".

    I wonder why no one needs to write this article about dtrace probes? Is it because they are less used? Less capable? More stable? Better engineered?

    Probably all of the above, alas.

  • by jstrong on 4/23/2025, 5:29:51 PM

    wow that sounds like a PITA to deal with