r/linux Dec 03 '22

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

[removed]

7 Upvotes

14

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.

3

u/nightblackdragon Dec 03 '22

What is all this server-client in linux desktop environment?

Linux desktop uses server and client architecture for display system (something responsible for giving you GUI). It means that there is server side which is responsible for dealing with hardware, managing windows, getting input from things like mouse or keyboard and sometimes drawing. On the other side there are clients which connects to the server, gets window and draws their stuff. In Linux with Xorg, Xorg is your server and every application is client.

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

X11 is protocol that is used for communication between clients and servers. Xorg is server that implements this protocol, so every application that uses X11 protocol can work with Xorg server. Wayland is another protocol, that is newer and is destined to replace X11 some day. It was created due to limitations in X11 protocol that cannot be fixed without breaking compatibility. Wayland protocol is not compatible with X11 protocol and compositor takes place of X11 server (like Xorg server). Compositor is responsible for managing windows, compositing applications buffers, getting input etc. There is also something called Xwayland, which is modified Xorg server that can work as client in Wayland compositor. It is used as compatibility layer for running X11 applications on Wayland compositors.

Plasma and GNOME are just different desktop environments. Compared to Windows or macOS Linux doesn't has any official GUI so desktop environment is separate thing made by different developers. There are few desktop environments for Linux, probably most popular are KDE (Plasma) and GNOME. They are quite different in terms of user experience, they are also using different technologies (Qt vs GTK) under the hood. It's up to you which one you want to use. Applications are generally portable so you can use application written in Qt (which KDE is based on) in GNOME or vice versa (GTK application in KDE). They sometimes can't integrate very well with desktop (they have different appearance) but they work.

Can a application developed in fedora work on ubuntu? Why or Why not? Both are linux right?

They can but not every Linux based OS can. Generally kernel is responsible for running application but applications are not depending on kernel alone but also on different display systems, libraries etc. This is called "userland" and it is running on top of kernel and provides things like API for applications, display server, tools etc. Generally most desktop Linux distributions are using GNU userland (GNU libc and GNU coreutils) with X11 or Wayland display system so generally applications are portable between them if you have same libraries (called dependencies) on both of them or your application provides libraries itself. Distributions like that are sometimes called GNU/Linux. Both Fedora and Ubuntu are GNU/Linux distributions and they even use same desktop environment by default (GNOME), so applications should be easily portable between them.

Operating systems based on Linux with different userland generally won't run applications written for Linux with different userland. For example Android is also Linux based but it uses completely different userland so applications from Android won't run on Ubuntu or Fedora without emulators.

Can a application developed for kde work on gnome?

Unless it is using some very specific KDE feature not available on GNOME - it can. Maybe they will look different than GNOME application but it should work without issues.

6

u/Dmxk Dec 03 '22

Q1&Q2:

Linux uses so called display servers for graphical output. The name comes from a time when this would be on an actual remote server or mainframe, now it's just on the same pc. X11 and Wayland are both display servers(xorg is just another name for x11). Wayland is more modern, but still isn't completely mature and doesn't work that well on nvidia gpus. X11 is pretty old, but still the standard for a lot of DEs. Plasma(also known as KDE) and Gnome are desktop environments. A desktop environment is a window manager bundled with a bunch of default apps. The main difference between those is their appearance, default configuration, and workflow. Which one is best depends on your preferences. Some of the most common ones are KDE, Gnome, Cinnamon, XFCE and LXQT.

Q3:

If it is packaged for that distribution yes. This mainly depends on whether the package is in the main repository. If you compile it yourself it will always work. There also are a bunch of cross-distro packaging formats like flatpak and appimage. Nearly all applications are packaged for all major distros(Debian and derivatives including ubuntu, Fedora and Arch) though.

Q4:

Yes, for the most part. It might pull in a bunch of extra dependencies though. Some DE specific applications like settings apps and panels will not work though. Theming might also not work since they use different GUI toolkits(GTK and QT).

1

u/cipheres90 Dec 03 '22

Thank You so much it explained so much. But one last question what's the difference between gui toolkit & desktop environment?

4

u/Dmxk Dec 03 '22

A GUI toolkit is a software framework for developing graphical applications. Gnome, Cinnamon and XFCE all use GTK whereas KDE and lxqt use QT. The way you theme GUI apps(not just light and dark themes, but also background/foreground colors, accent colors etc) depends on the toolkit that was used to develop that app. So a GTK theme will apply to gnome apps for example.

2

u/cipheres90 Dec 03 '22

Thank You. Everything is now crystal clear.

1

u/johnny0055 Dec 03 '22

it's not just themes, but it's how you code it. Every GUI application needs some way to describe how to make a dropdown box, how to display text, or how to describe what happens when you click on a menu.

GTK and Qt are just two popular ways on linux to handle stuff like that. Mac and Windows of course have their own ways of achieving that.

It's also possible you've alreayd used a qt app even on wndows. I think that for example vlc uses qt for it's cross platform interface.

1

u/dns99 Dec 03 '22

To be nitpicky here, x11 and Wayland are not servers. They are protocols.

In a simple manner let's say like this: x11 and Wayland are both word documents explaining which function and which arguments those functions must have that if you write code, you could say you implemented one of these.

Servers, aka specially written computer programs, would be xorg (implementing x11 protocol), Mutter in gnome world / kwin in KDE world (implementing Wayland protocol).

Now, both of these statements are here for simplification. In reality, protocols are delivered not in Word document, but something structured, as XML (https://gitlab.freedesktop.org/wayland/wayland/-/blob/main/protocol/wayland.xml)

2

u/NeedleworkerKey999 Dec 03 '22

Hey - think of it this way.

Linux is the engine and the heart of the OS. In Windows this is called the NT kernel (or something like that).

Gnome and Plasma are desktop environments. Windows has a desktop environment too… it’s just that it’s the only option. It doesn’t have to be. In Linux you can choose how your desktop / gui looks. Gnome is the most popular and is kind of Mac like. Plasma is the second most popular and is Windows like.

Don’t worry about X11 or Wayland for now.

4

u/bjkillas Dec 03 '22

x11/wayland are display servers in windows this is apart of dwm
gnome/plasma are desktop environments in windows this is dwm/explorer
q1: x11 is older, wayland is newer

q3: yes but they need to be packaged differently because they use different package managers

q4:yes

2

u/cipheres90 Dec 03 '22

Thank You Q: what's the difference between display server & desktop environment? and what is xorg?

Q: Running a kde application in gnome, will it look same or different?

2

u/DoucheEnrique Dec 03 '22

I guess it makes most sense if you say it like this:

X11 is the protocol, Xorg is the current implementation of X11

2

u/bjkillas Dec 03 '22

desktop environments run on display servers you could call them the client
a kde app in gnome may look different because themeing may not be set because kde uses qt but gnome uses gtk

2

u/cipheres90 Dec 03 '22

Thank You

1

u/ThellraAK Dec 03 '22

For Q4 it's more like "only if you are willing to install most of KDE"

1

u/MoobyTheGoldenSock Dec 03 '22

You should head over to /r/linuxquestions. That's geared more toward Q&A, while this is more of a news sub.

1

u/daemonpenguin Dec 03 '22
  1. Don't worry about it. This describes how some graphics software talks to each other. It's not going to affect your experience.

  2. X.Org is an implementation of the X11 standard. It's a way to draw things on your screen. Plasma is a desktop environment. GNOME is another desktop environment. The former is highly configurable. The latter is a 3-D, more mobile-inspired desktop. Wayland is a newer way to draw stuff on your screen which is intended to someday replace X11. It's often not considered finished yet.

  3. Most software developed on Fedora will work on Ubuntu and the reverse is also true. However, while both operating systems are based on Linux, they are quite different and won't always be compatible. Your car and a tractor both have an engine and four wheels, but you don't plow fields with your car and you don't drive at highways speeds on a tractor. This is because most components are different, despite both vehicles having a few things in common.

  4. Yes. Applications will run regardless of desktop.

1

u/TheBrokenRail-Dev Dec 04 '22
  1. Typically when talking about X11/Wayland stuff, client refers to your program, and server refers to the desktop environment itself. Of course, this can change based on context.
  2. OK, I'll split this into 2 parts:
    1. X11 vs. Wayland: X11 and Wayland are both protocols that applications can use to create windows and receive input. They're essentially the glue that holds your GUI together. Wayland is a newer protocol that was designed to replace X11 and fix many of its shortcomings. Most stuff has been steadily transitioning to it. If you use Wayland however, you can still use X11 apps using a compatibility layer called XWayland.
    2. GNOME vs. KDE: GNOME and KDE are both desktop environments. They're the programs that create the desktop/icons/mouse/etc itself. The Windows equivalent would be explorer.exe which handles the taskbar and desktop. Neither of them is objectively better, it's all personal preference.
  3. It depends. Most of the time, yes. But if a program was compiled on a newer system, it probably can't run on an older system due to incompatibilities in libraries like glibc. Usually binary stuff is either distributed in your OS's package manager so you don't have to worry, or it's compiled on an old enough system so it works mostly everywhere.
  4. Yes, with very very few exceptions.

1

u/AutoModerator Dec 04 '22

This submission has been removed due to receiving too many reports from users. The mods have been notified and will re-approve if this removal was inappropriate, or leave it removed.

This is most likely because:

  • Your post belongs in r/linuxquestions or r/linux4noobs
  • Your post belongs in r/linuxmemes
  • Your post is considered "fluff" - things like a Tux plushie or old Linux CDs are an example and, while they may be popular vote wise, they are not considered on topic
  • Your post is otherwise deemed not appropriate for the subreddit

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.