Recently I faced for the first time the "X Window Server" concept. After reading a lot about it and struggling to understand most of its core concepts - mostly because I was born in the "modern computing era", having never touched a "real terminal" or "PCs not powerful enough to run an X Client" - I got confused about something:
Why is X Server a server rather than a library with a set of predefined functions?
I could learn a lot from some questions previously asked here, especially these ones:
- Why does the X Window System use a server?
- What is the server-client relationship between [...], a window manager and a X server processes?
I understood that X Server was initially designed to also support communication through networks, as some old computers weren't powerful enough to run graphical elements. Is this the only reason X Server was designed to act as a server? To receive "requests" through a network and respond with "graphical elements"?
Is there any other reason X Server acts as a server even locally? Probably I'm missing some detail and that's exactly what I'm trying to understand to "connect" everything I learned so far.
If possible, could you guys also give me a real example of how terminals used to communicate to X Window Servers in the past? All I can imagine is a building full of terminal computers (running nothing other than a black terminal screen) and with only a single computer capable of running graphical interfaces. Did people use to share this computer to communicate with the terminal ones to perform heavy tasks?
Thank you!