this post was submitted on 01 May 2025
63 points (98.5% liked)

Linux

7220 readers
422 users here now

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

Also check out:

Original icon base courtesy of [email protected] and The GIMP

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 5 days ago (10 children)

I’m pretty technical, but this is slightly beyond my grasp. I understand that this is streamlining efficiency but it’s written for someone who understands the OS at levels I don’t. Can someone EILI5?

[–] [email protected] 14 points 5 days ago (7 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.

[–] [email protected] 17 points 5 days ago (5 children)
[–] MadhuGururajan 5 points 5 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.

[–] [email protected] 5 points 5 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?

[–] MadhuGururajan 2 points 3 days ago

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.

load more comments (3 replies)
load more comments (4 replies)
load more comments (6 replies)