is visual shell of a Linux distro decoupled from OS itself? if not, why not?

the question is inspired by my observation that descriptions of distros often include comments on the look-and-feel and user friendliness.

Well, why is that? If the visual shell is a separate component, then can’t you put in Ubuntu look-and-feel into Red Hat? Or any other look-and-feel into any other distro?

Yes. Or, well, “Linux” isn’t an OS. “Linux” refers to the kernel. Pretty much everything outside of that isn’t part of linux per se - that includes most of the low-level non-gui environment (which is generally built on top of the GNU project’s tools) and all of the graphical environment except for some of the most basic drivers.

The typical setup for GUI environments (as on most UNIX-like systems with the notable exception of Mac OSX) is to use an X server for displaying windowed GUI content, a window manager to handle the positioning and switching of the windows, and some kind of “desktop” program to handle icons on the desktop etc.

None of these are part of the Linux project. Most of them aren’t even part of a specific Linux distribution. Linux distributions are operating systems in that they provide the Linux kernel + all of the tools and configuration to run and use the Linux kernel targeted to some use case.

The X server these days is pretty much always the X.org server, which is a completely separate project.

Some environments like GNOME and KDE have tight integration between the window manager and desktop, others are more minimal or leave out the “desktop” metaphor completely. Many distros contribute to one or more GUI environments and use those + some theming/styling to provide their own look and feel; this typically includes setting up the ordering of system-wide menus, icon themes, color setup etc. Those things can probably be ported fairly easily if anyone would want to. Other distros, like Ubuntu, take a more integrated approach where they’re tuning and expanding the core functionality into their own preferred UI concepts and it might be harder to justify porting such a system; especially since you have to take into account that Linux systems are usually built up from thousands of individual packages that might have to be modified to support strange and new ways of GUI interaction.

Yes, it’s very decoupled, and you can choose the GUI you want, so you could have Red Hat that looks like Ubuntu, or have no GUI at all.

it’s decoupled to the extent that you can easily run the kernel on one machine and the gui (for that kernel) on another machine - and that’s without doing any high-level remote desktop-like stuff, because Linux communicates with itself internally using TCP/IP.

The reason that people refer to the look and feel of a particular distribution is that the distribution is more than just a kernel. You could match the kernel from Red Hat with the shell from Ubuntu, but that wouldn’t be the Red Hat distribution nor the Ubuntu distribution. The reason you have distributions at all is that most users don’t want to bother with the details, and just want to install one bundle that has all the pieces included.

I disagree with this: I run Ubuntu with the Window Maker window manager (the standard Linux term for GUI shell, more-or-less) and I’m certainly running Ubuntu (Natty Narwhal, in specific) even though I’m running neither the Unity GUI nor the standard ‘classic’ GNOME desktop environment (a window manager with a lot of extra trimmings to integrate stuff into a coherent environment). I’m still upgrading on the standard Ubuntu cadence, I’m still getting software almost entirely from the Ubuntu repositories, and I still see things like the Ubuntu-branded boot and session-picker screens. I’m not doing everything the Ubuntu way (more like the classic Debian way, in some respects) but I am doing what I do with the Ubuntu tools.

Never underestimate the power of defaults. Even in the Linux world, a lot of people are reluctant to go looking for different GUIs and so on, even when installing software is really easy (as it is in Ubuntu and Debian).

Hmm, I never knew this about Linux. How neat.

How would one go about installing a different window manager on Ubuntu (for example), then? Is a window manager just another program I can apt-get install, or is the process more complicated than that?

Indeed. Today’s consumer Linux userbase wants a desktop OS, not a hobby project, so they’ll pick one that has the features they like.

There are so many out there that most combinations of the major features can be found in one distro or another.

Personally, I’d find a prepackaged version with that window manager as the default. There are really only four, Gnome, KDE, XFCE, and LXDE. Gnome and KDE are slow and clunky on every computer I’ve ever used. XFCE is buggy but runs in realtime. I haven’t tried LXDE.

I’ve been running Fluxbox for a while, these days using the Ubuntu variant made for LXDE. It’s certainly not flawless, but on my ancient hardware it suffices. But you can easily just get Fluxbox from the usual repositories, and it will pop up as an option when you go to sign in.

Except for Arch.

Yeah, sudo apt-get install windowmaker/kde/ratpoison/awesome/xfce4/whatever.

Gnome and KDE aren’t window managers; they’re desktop environments. Each one has a certain window manager that gets used by default, but you’re free to use another one. And there are many, many more window managers than KFCE and LXDE—I haven’t even heard of those two.

Yes. As others have said, you can apt-get install other window managers. Hereis a small guide to swapping *buntu distros (including how to remove the ones you don’t like). It’s in the left hand column under “Playing around”.

No wonder it’s so slow! :wink:

The point is, there are multiple decoupled layers to a Linux UI

The kernel, which provides the interface to the hardware and an environment to execute programs

The X display server, which is responsible for displaying graphics primitives and glyphs on screen. Any X client can display on a screen via an X Server.

The Window Manager sits between applications and the X server, and provides management of multiple display windows and the mouse/keyboard. The WM manages things like tiling, overlapping, focus, switching and window decorations. These are the basic functions of any WM. Advanced WMs may also provide animations and fancy virtual desktop switching (i.e Compiz). A WM should manage any X Client, but some clients may request advanced features that another WM may not provide. YMMV.

The Desktop Environment may (or may not) provide a set of applications with common infrastructure/look and feel/configuration/high level libraries. This includes things like Gnome, KDE, and CDE. Gnome and KDE use high-level toolkits (GTK+ and QT) to simplify programming, and have common architectures for ease of programming. As time has progressed, some features have moved out of specific desktop environments to a more generic shared common base (i.e D-Bus has replaced Bonobo from Gnome and DCOP from KDE). This has improved the ability to run multiple environments on a linux distribution.

X Clients are applications. A pure X application can run on any X Server using any Windows Manager. A QT or GTK application can run on an X Server with the appropriate toolkits, but does not necessarily rely on Gnome/KDE. Gnome/KDE apps are highly integrated and require the entire Desktop Environment or suitable shared components. You can easily run Gnome apps in KDE or vice versa, but additional subsystems may be started to support the app. In many distributions, applications (like Firefox, say) are modified to fit the distribution Desktop Environment.

Oh, and while X does use sockets to communicate, for local X-client_to_X-server connections it uses a file stream socket and not a TCP internet socket - however, using internet sockets does allow X clients to be completely decoupled from the X Server. Traditional X is stateful, though, and does not allow session teleportation from server to server. VNC (a X based remote screen access protocol) was designed to allow stateless remote access, and thus session teleportation to any screen.

There is also more to a distribution than just the UI/Visual shell. While file system layouts have generally achieved a level of commonality in recent years, there are still differences in how distributions manage packages/application installs, starting and running system services, and security subsystems. You could turn a Fedora system into an Ubuntu clone by copying Gnome themes and menus, and installing a specific set of packages, but the level of integration that comes with a full distribution will probably not be there.

Si

You technically aren’t running Ubuntu. Changing the Desktop manager gets you a new name, like Kubuntu or lxubuntu. In your case there doesn’t seem to be an official name, but at least one guy calls it UbuntuStep.

Ubuntu is the official release, and only includes Gnome. Everything else is a derivative.

Well that’s just perverse. Is the distro I’m running predicated on my choice of text editor or Web browser, too? How about my preferred media player?

It doesn’t work like that with any other distro. You can run Slackware, for example, and be recognized as running Slackware, regardless of the GUI you choose.

I’m with Derleth - a Linux distribution encompasses community, design philosophy, goals, file systems, file layout, kernel, packaging tools, software repositories, userspace, and look n’ feel. Changing some of those elements (file system, kernel, userspace tools) does not change the underlying distribution. It may impact the level of support you get (either commercially or from the community), but if you want to do it, chances are someone else already has.

In the case of Ubuntu, there are some flavours that are distributed (kubuntu, edubuntu) by the parent organisation. There are also some community driven efforts - these are all Ubuntu with a differences, just like my stock Kubuntu has some packages installed that I want that are not from a Canonical repository. It is still Ubuntu (apt, Canonical kernel, Ubuntu FS layout). Some of those installs violate Ubuntu goals (non-free firmware, non-OSS software), but they don’t make my laptop non-Ubuntu. But if those packages fail, I get to fix them rather than raising a bug.

Si