@bugaevc@floss.social avatar

bugaevc

@bugaevc@floss.social

Unix hacker. I do obscure and cursed things.

I hack on Darling, SerenityOS / Ladybird, GNU Hurd / glibc, wl-clipboard, Owl, etc.

I use GNOME, and contribute to freedesktop / GNOME projects sometimes (systemd, PipeWire, GLib, GTK, etc).

I like Rust and dislike Docker.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

bugaevc, to random
@bugaevc@floss.social avatar

I need 'git commit --llm' that would ask me a bunch of questions and then write a commit message for me based on my explanations.

Like, I fixed this complicated issue, and even though the patch itself is quite small, it takes 6 paragraphs of prose to explain what the issue even was and how it could happen.

bugaevc,
@bugaevc@floss.social avatar

(This module makes such and such assumptions, and that module does such and such hack based on these other assumptions, and they're both not wrong, but due to yet another thing they can interact badly...)

And I've been sitting here for like 3 days trying to get the words out for writing this commit message, and only starting to get somewhere now.

djsundog, to random
@djsundog@toot-lab.reclaim.technology avatar

all software should get 2.2 versions or so.

a couple major releases - the first one, and the one that adds all the stuff you didn't realize you'd really want when you were making the first one, and a couple bug fix passes to take off the cutting edges, and then you burn it to ROM and move on with your life.

bugaevc,
@bugaevc@floss.social avatar

@djsundog wl-clipboard 2.2.1 here :)

bugaevc, to random
@bugaevc@floss.social avatar

I implemented support for copying send-once port rights for GNU #Mach (MACH_MSG_TYPE_COPY_SEND_ONCE) 😉
The patches have already been applied by Samuel.

#hurd

https://mail.gnu.org/archive/html/bug-hurd/2024-04/msg00001.html

bugaevc,
@bugaevc@floss.social avatar

For those of you who somehow didn't figure that out, this was, of course, an April Fools joke.

It makes no sense whatsoever to allow copying send-once rights, their entire purpose is to guarantee that they're used to send exactly one message. (Props to @alilly who not only figured that out, but also suggested a semantic for copying send-once rights that could actually work... all without making a connection to the date)

bugaevc,
@bugaevc@floss.social avatar

But, the patch I posted is real, it applies, builds, and, yes, lets you copy send-once rights, exactly as it says on the tin.

The ARM extension for hardware accelerated Mach port translation (lol) is of course entirely fictional too.

matt, to random

The xz backdoor (technically a backdoor in sshd via liblzma) depends on a GNU dynamic linker feature called GNU_IFUNC (https://sourceware.org/glibc/wiki/GNU_IFUNC). Is this feature being used in any production code on GNU/Linux? How much would actually break if glibc just removed it, backward compatibility be damned?

bugaevc,
@bugaevc@floss.social avatar

@matt surely the language you're thinking of can also do this by adding ELF (or Mach-O, or whatever) constructors?

bugaevc,
@bugaevc@floss.social avatar

@matt yes, ifuncs are used a lot, both inside and outside of glibc

bugaevc, to random
@bugaevc@floss.social avatar

XKCD 2347, but the person in Nebraska who's been thanklessly maintaining the project since 2003 has developed long-term mental health issues and is only glad to add a co-maintainer when another interested person shows up.

bugaevc,
@bugaevc@floss.social avatar

(In case it's not obvious, I don't mean this in some wholesome way. The "new co-maintainer" is really a malicious actor who will abuse the trust the project has built up by introducing a backdoor.)

bugaevc, to random
@bugaevc@floss.social avatar

Lol @ https://repology.org/project/xz/versions displaying 5.6.1 as green, and 5.4 as red

bugaevc, to random
@bugaevc@floss.social avatar

Debugging Debian package build process by creatively strace'ing one of the myriads of dh_installfoo's and looking for what it that it fails to notice about my package

brooke, to random
@brooke@bikeshed.vibber.net avatar

whoever decided to call it "aarch64" and split the search engine space with "arm64", i wish you a hearty [FUCK OFF AND DIE]

bugaevc,
@bugaevc@floss.social avatar

@brooke whoever decided to refer to AArch64 as ARM64 is to blame

bugaevc,
@bugaevc@floss.social avatar

@lanodan @brooke x64 must be the instruction set of Intel 364, 464, 564, and 664 processors, the latter two also known as Penti64 and Penti64 2 :D

bugaevc, to random
@bugaevc@floss.social avatar

Is Linux secure?

Let me rephrase, is a huge pile of C code, running in privileged mode in a shared address space, highly concurrent, using its own homegrown memory model based on volatile instead of the one the language spec defines and the compilers implement, dealing with untrusted data, implementing many complex protocols, data formats, & functionality, managing a bunch of "objects" with complex ownership and lifetime semantics, embedding its own JIT — secure?

bugaevc,
@bugaevc@floss.social avatar

@veer66 NT does Win32 / GDI / font rendering in kernel mode 😅

bugaevc,
@bugaevc@floss.social avatar

Clarification: I'm not advocating for alternative kernels (certainly not for Mach / Hurd, which are a lot more insecure — I would know 🙂)

I'm saying, Linux is here to stay for decades and centuries. Look at what corner we've painted ourselves into.

bugaevc,
@bugaevc@floss.social avatar

@veer66 what makes you think they use C++?

A quick web search brings up this:

> Kernel proper - This is mostly written in C. Things like the memory manager, object manager, etc. are mostly written in C. The boot loaders are written in ASM, but set up a C environment rather quickly.
>
> Drivers - that said, a lot of newer kernel mode drivers are actually written in C++ (however, its style is more akin to "C with classes". Lower level code has been much slower to adopting anything past C++98)

bugaevc,
@bugaevc@floss.social avatar

@KekunPlazas yeah, the RfL stuff is certainly exciting, but that doesn't change the big picture

bugaevc,
@bugaevc@floss.social avatar

@KekunPlazas I won't pretend to be a Linux security expert either, but: writing all things in a thread- and memory-safe language from the start, and ensuring "pervasive correctness" in handling all the potential edge cases. Running safety-critical code (parsing untrusted input such as TCP/IP packets) with reduced privileges, which doesn't have to mean full microkernel-like context-switching to a userland process with all the copying of data over and flushing TLB.

bugaevc,
@bugaevc@floss.social avatar

@KekunPlazas whether microkernel-based systems can be fast is unclear. Newer nanokernels certainly have a very low-latency IPC path, but we have to see somebody build a more complete OS built on top, and evaluate that. (Genode might be that, I haven't looked closely.) People say that QNX was fast; I haven't looked into it either. But there's definitely an unavoidable performance cost associated with constant context switching.

bugaevc,
@bugaevc@floss.social avatar

@KekunPlazas I know exactly what you mean :)

bugaevc,
@bugaevc@floss.social avatar
bugaevc,
@bugaevc@floss.social avatar

@RL_Dane eBPF

bugaevc,
@bugaevc@floss.social avatar

@robinadams the complexity of today's Linux and the kernel it replaced is humongous. But it's certainly possible (and has been done) to write something that provides basic syscall-level ABI compatibility.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • tacticalgear
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • modclub
  • lostlight
  • All magazines