this post was submitted on 01 May 2025
62 points (98.4% liked)

Linux

7164 readers
382 users here now

A community for everything relating to the GNU/Linux operating system

Also check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] treadful@lemmy.zip 14 points 3 days ago (2 children)

Not a kernel expert but this is how it reads to me.

Instead of connecting via a socket through the kernel, this would allow processes to execute functions of other processes already in memory.

This would normally be prevented by processor memory protections, but a new processor feature has functionality to allow this now.

[–] helvetpuli@sopuli.xyz 17 points 3 days ago (3 children)
[–] jonne@infosec.pub 12 points 3 days ago

Their use case is to run their own application(s) on their own servers in their own datacenter, so they're probably ok with that tradeoff. But yeah, I can imagine this opening up a whole bunch of security issues if this starts getting used widely.

[–] MadhuGururajan@programming.dev 5 points 3 days ago (1 children)

The gist is that a system call is introduced to go into the PCB and change the Effective UID of a process. Security is ensured by a processor MPK which is a CPU provided guard so that a {Process, Library} has only a restricted set of Effective UIDs it can switch to. This operations is supposed to use 30 to 50 clock cycles. So entry + exit is supposed to be done in 100 cycles. This is considered low overhead context switch compared to the traditional context switch on Linux for slower IPCs. They don't do a comparison against iouring, or simply multi-threaded process.

[–] treadful@lemmy.zip 5 points 3 days ago (1 children)

You sound like you're living in the weeds, friend.

What's MPK? And by UID I assume you're not talking about the system level user ID but some kind of processor-level process ID?

I don't know the details of the MPK. So I consider it as some kind of function that maps {process PID, DLL} => Set of UID. And by UID, I AM talking about the system level user ID. Remember that this feature is a processor level feature. So it has to be transparent to the OS (well at least, to the OS Scheduler). Hence the output of this feature should be understandable to the OS kernel. Or so I hope as the implementation details are vague till now.

[–] mutual_ayed@sh.itjust.works 1 points 3 days ago

So are sockets.

[–] some_guy@lemmy.sdf.org 1 points 2 days ago

Aha, thank you!