Help understanding screen pixels memory location

I’m running Intel’si5-4590 processor with an integrated Intel® HD Graphics 4600 graphics card, running Ubuntu 18, And as part of my research I need to find the mapping of the screen (connected via vga for example) pixels to the main memory, and it’s kinda not working.

I understood that for every screen pixel there are some 24-32 bits in memory for its rgb(a) values. I initially thought that the framebuffer at /dev/fb0 is the addresses, but with GUI on it seems that the framebuffer is redundant (changes on screen don’t change the values in any of the fb 8M memory values and vise-versa). Only when GUI is disable (only terminal) the framebuffer seems to be active.

In normal Ubuntu settings, with GUI activated, what controls the change in screen pixels and where do they stored in main memory? Can I control them directly? (either unprivileged or root)

I’m confused about this subject, I believe that there has to be some root process or kernel’s something that is in control everything at any given time regardless of what is actually on screen, how can I find who it is? (and where the graphics card fits in?)

Thanks and sorry for my english.