To most desktop computer users, the difference between two “systems” (Linux, Windows, Mac, etc.) is in what you see when you turn the computer on, what you can click on with your mouse, how files are visually organized and manipulated, how menus work, and so on. This is the “look and feel” of a system. Since the “look and feel” has to do with how you actually use the computer, this can be the most important factor to a user choosing a system. But the “system” itself may have little to do with these differences.If you choose a Mac, you get a certain look and feel. If you choose Windows XP, you get a different look and feel. If you choose Vista, you get yet another. But if you choose “Linux,” you are able to choose among a wide range of LookAndFeels.Linux is a “kernel” … a powerful “system” that transforms a processor and some of the other hardware that makes up a computer into a functioning, stable, reliable, and adaptable machine that can process data and stuff. But at this level, the system does not interact with humans directly. Human-oriented functionality is added by running various other bits of software along with the kernel. When you “install Linux” and “use Linux” you are actually working with a thing called a “distribution” a.k.a. “distro.”A distribution includes a user interface, usually one user interface of the many choices that are available. However, once you install a particular distribution, it is pretty easy to install alternative user interfaces and switch between them. Indeed, there are aspects of the different user interfaces that you can mix and match.X is the short name of the part of a distribution that manages the graphical user interface that most people like to see when they turn on their computer. X, in turn, is used by specific GUI’s (Gnome, KDE, etc.) As far as I know, all the Linux desktops use the X server.The main point I want to get to here is about the X server (see below), but I want to make sure that we discuss the context of X first…. so more about the user interface:Mac’s work the same way as Linux. Mac’s have an underlying kernel that is for all practical purposes the same as Linux, on top of which run three components: Quartz, Carbon, and Aqua. Aqua is the visible GUI that the user sees (the eye candy) and Quartz and Carbon, together, provide programming functionality, stuff used by Mac-native applications. Quartz and Carbon, as far as I know are unique to Macs. They are proprietary libraries developed by Apple to make Mac programming (and thus Mac-native applications) work the way they work. Aqua, also proprietary Apple-developed software, makes Macs look the way they look.The Linux X server, along with some libraries, together with Gnome (or KDE, or whatever) is equivalent to some subset of Mac’s Quartz/Carbon/Aqua.A Linux user can easily choose among several different “desktops” (in quotes because this is a term that I’m not using exactly as others might), such as Gnome, KDE, Fluxbox, AFterStep, and XFCE (there are many more).If you install Ubuntu, you get Gnome. If you choose Kubuntu, you get KDE. If you choose Xubuntu, you get XFCE. Each of these slightly different distros will look and feel different to the user. Also, each distro will have a slightly different set of user applications, in part because user applications are sometimes written to work with a particular GUI/desktop.But if you install, say Ubuntu (and thus get Gnome) you can then install KDE. When you sign on to the computer, you can then choose KDE or Gnome. You can install many different desktops by picking them from a list of applications in Ubuntu’s software organizing tool (called a “package manager”), press the button, and wait for a few minutes. Then you can log out (reboot is not necessary) and log back in, and during the log in, choose any one of these desktops.You can then mix and match across desktops. Mixing and matching happens at two levels, one very common the other not (as far as I know). As mentioned, many applications that have graphical user interfaces are designed to use components of a particular desktop, such as Gnome or KDE. Well, if you have a Gnome-only system, what do you do if you want to run a native KDE application that you heard about and think is really kool?*Well, you go to your package manager and pick the KDE application from the list and tell it to install. There will be bits and pieces of the KDE desktop environment that this application will need, but they are not installed on your system (assuming you did not install KDE). These are called “dependencies” because they are software that the program you are installing “depends on.” The Package manager knows about this and installs them. Typically, the KDE dependencies will run under Gnome, and your software will work.The second level is a bit stranger and I’m not sure what can really happen or not happen in this area. Some desktop managers are stripped down a good deal. They use very little memory, but they also have reduced functionality. This is on purpose. If you are a person who does not want or need all the eye candy and GUI functionality provided with KDE or Gnome, you may prefer one of these stripped down desktops, to allow for more memory for your applications. Many of these stripped-down GUI’s do not have icons on the desktop. This is hugely different than most GUIs people are used to… having icons on your desktop seems basic to modern computer GUI’s! But if you don’t care about that, you can save a lot of memory by using a system that does not do that.But if you install such a system, it is possible to install the parts of, say, Gnome that make the icons go on your desktop.** If you do that right, you could have a stripped down desktop and the icons (but at a memory cost, presumably). Perhaps there are other ways to combine GUI’s. I’ve never read anywhere about doing this, and I don’t know what the down side is. All I know is that I did it once as an experiment and it worked very nicely.Now, back to the X-server.Gui’s run on top of the X-server. It is more or less true that there is a single X-serer that Linux distributions all use. (Reality is slightly more complex, but you probably do not want to know about that at this point). For various reasons, including the fact that *nix systems including Linux have early on been developed to work across networks, the X-server does not freak out about networks. In other words, you can be sitting at one computer and use your local GUI to interact with an X-server on some other computer. From the point of view of an end user, it does not matter where on the network an X-server is, as long as you have permission to use it.This is one of many examples of things that Linux does natively (i.e., because it is simply part of the way Linux was built) that some other systems, such as Windows, have to emulate or kludge, or for which you have to install special software.For similar reasons, using multiple monitors in Linux is transparently obvious (at the X-server level, not necessarily the user level). Pixels are things that are manipulated by the X-server. There is a file that has info that determines where the pixels are, and the fact that they may be on one monitor vs. another, or distributed across monitors, or mirrored simultaneously on more than one monitor, is run of the mill for an X-server. ***If you are a total geek and need to fiddle with the X-server until you break it, there is a new book out called “X Power Tools.” Me? I need this book. Maybe for my birthday… If you want a copy you can get it here: X Power Tools
* KDE applications tend to be named with a “K” as the first letter, Gnome applications with a “G” as the first letter, and so on. That is why you might think a KDE application is “kool” while a gnome application is, well, gKool….** In Windows and Linux (maybe in Mac, I don’t know) the “desktop” … as in the screen you are looking at when no software is open … is actually a view of a directory or folder in your file system that is made to appear on the back-most visible level of your windowing system. On my wish list of future technologies: Make it possible to have any folder be the Desktop in an easy user switchable way, and make it routine to have different “workspaces” have different desktops.*** While configuring X to do things like manage multiple monitors, etc. is theoretically easy, actually doing it from an end users point of view will depend on factors that I can’t explain to you. My experience has been that making two monitors work with a single dual graphics card, or two graphics cards, is pretty easy. I got that working a long time ago, but had to find configuration files and alter them. More recently, I installed Linux fresh on a two-monitor system and the installation figured out my monitors and configured them pretty much automatically. But, if you have a strange mix of video cards and monitors, there are two things that are almost certainly true: 1) Your hardware can be configured however you want it and/but; 2) you will have to get some expert advice and fiddle. This is where Mac’s win: Apple controls the hardware so the system should work flawlessly with that hardware. The down side is that you have to buy specific hardware and it costs more.Another advantage of the X server that I cannot document but that I think is true from experience is that a Linux laptop will typically talk to a projector more reliably than a typical mac or windows computer. Although, when I used windows, I hardly ever had trouble projecting my “power point” slides on a projector, subsequently, I have often been in a situation where someone with a Mac or a Windows laptop could not get their computer to properly hook up to a projection system, and my Linux laptop came to the rescue, working flawlessly. That could be a matter of chance or coincidence, or it could be a real difference in the quality of the X-server and other aspects o the hardware and software.
** In Windows and Linux (maybe in Mac, I don’t know) the “desktop” … as in the screen you are looking at when no software is open … is actually a view of a directory or folder in your file system that is made to appear on the back-most visible level of your windowing system. On my wish list of future technologies: Make it possible to have any folder be the Desktop in an easy user switchable way, and make it routine to have different “workspaces” have different desktops.Yes, the Mac “desktop” is a folder.The new “Spaces” feature in Mac OSX 10.5 (Leopard) provides exactly the different desktops in different workspaces, very easily switchable without having to logout/login again.For anyone who just wants to *use* a computer without needing to know or understand how it works, Mac is the answer.
KDE let’s you configure what folder is used as your Desktop, but it’s not really switchable on demand. Don’t know if GNOME offers the same functionality.
Just remember that the X server runs in the client machine, and the X clients run in the server machine. Sounds stupid?The terminology of X dates back to central time-shared mainframes. The resource that an X-server offers is the screen of the terminal. Any program that wants something written on it has an X client that sends a request using the X protocol. The X server then produces the requested change on the screen.X can be used to make ultra-thin client machines. A terminal that is intelligent enough to run an X server can delegate all other tasks (processing, storage, etc.) to a remote server. Simple and cheap graphic terminals – the original motivation for developing X.In typical Linux machines the server and client ends of X run in the same machine. In most cases it is an over-complex way of doing things. X was chosen to handle the desktop mainly because it was available for free, and so far nobody has bothered to write anything to replace it.