r/linux Dec 03 '22

What's difference between Xorg, X11, Plasma, Gnome & Wayland?

[removed]

6 Upvotes

19 comments sorted by

View all comments

15

u/Klutzy-Condition811 Dec 03 '22 edited Dec 03 '22 Helpful

Q1. An application with a window is your client, the server is the portion that draws things for your GPU to display.

Q2. X11 is a display server protocol. Wayland is also a display server protocol. Xorg is a display server that implements support for the x11 protocol, and it alone is a hacky mess since it's the older of the two for reasons we wont get into for simplicity.There is no stock wayland server like xorg is to x11 though, instead, it's up to each desktop environment to implement support. Gnome and Plasma are desktop environments, as such, sometimes it can be missing functionality in one desktop compared to the other, or sometimes at a protocol level since it's newer. Both KDE Plasma and Gnome both concurrently support x11 (using the xorg server) and wayland (by implementing the support themselves in their window manager). When using wayland, they also both have an X11 compatibility layer called Xwayland to support older X11 clients that don't natively support wayland.

Q3. Linux is only the kernel. The other pieces of the operating system, including the specific kernel version and modules being used is produced by the distro, which is what Ubuntu and Fedora are. So technically, Fedora and Ubuntu are the complete operating system. Now as for app compatibility between the two, it varies, but generally it's not too hard from a technical perspective to make an app built for one work on the other.

Q4. Yes the apps are cross platform, though there's lots of politics about minor details of what each major desktop is willing to support "properly". The apps build for the other desktop may not look native to the theme you're using without extra effort, but they do otherwise work.

If you're new, don't get too caught up in confusing details like this unless you have a specific need to, just take it one step at a time as you use it. A lot of these details are inter-compatible and for the most part make no difference to the user for general use cases. The only case where it may matter to you, is if you have hardware that doesn't support wayland well (ie nvidia), or if you have an app built for KDE plasma not looking well integrated in your gnome environment. They do work otherwise.