On 8/27/23 09:53, Ahmad Nouralizadeh wrote:
Perhaps I didn't express my question precisely. I understand that you are talking about the mmap function in the kernel which is usually a function pointer in vm_operations...

My question is about the userspace structure of X11. IIUC, we have X11 clients, which are GUI apps. They have a portion of the X11 related libraries (those needed for clients) mapped into their address space. As the app and the X11 libraries (client code in X11) are in the same address space the graphical data are accessible by both. Xserver is a separate process (i.e., Xorg). How are the graphical data sent to the server? Does it use shared memory? Multiple shared memory regions to service each client?

By default, the client writes data into a socket that the server reads from
(Unix domain socket for local connections (including ssh forwarded ones),
 TCP socket for remote).

For local connections, clients can use the MIT-SHM extension to use shared
memory for pixmap data instead, in which case the client creates a shared
memory segment for each image:
https://www.x.org/releases/current/doc/xextproto/shm.html

--
        -Alan Coopersmith-                 alan.coopersm...@oracle.com
         Oracle Solaris Engineering - https://blogs.oracle.com/solaris

Reply via email to