[FAQ] How is Linux Layered?


Recommended Posts

"I don't understand how the kernel, OS and GUI are layered in Linux..."

This FAQ is a quick run-down that I have written to briefly introduce GNU/Linux (often referred to as just "Linux") to someone completely unfamiliar with how a typical Linux system is structured. The target audience for this is quite likely someone who is considering installing Linux for the first time, or who has installed it recently, but is having difficulty dealing with the variety of choices.

A Linux system usually consists of several layers, many of which have numerous alternatives available for selection. I will start at the base level, and then build up.

The Linux Kernel: The Engine

www.kernel.org

The heart of a Linux system is the Linux kernel. It is the very low-level software that deals directly with the computer's hardware. On its own, a kernel doesn't do anything. It just sits there waiting to be told what is needed.

The Linux kernel has a production branch that uses an even number as the first number after the decimal point (2.2, 2.4, 2.6, etc.). Any development work that is being worked on for the next major revision of the kernel will use an odd number after the first decimal point (2.5, 2.7) Note, that at the time I am writing this, there is no 2.7 version, as all new features are being quickly incorporated into the production 2.6 series.

The GNU OS: What Really is Running

www.gnu.org

A kernel, by itself, doesn't get work done. This is where the GNU Project (part of the Free Software Foundation, or FSF) comes in. they provide the 'tools' needed to accomplish work. Think of these as the basic set of commands to perform operations.

GNU can be used by other kernels, as well. The FSF's own Hurd kernel (under development) uses it, and there are projects to get GNU on BSD (which typically is a self-contained kernel/OS). The nice thing about this is that the higher levels are independent of the kernel, meaning that you can run the same sets of apps (including Window Managers - more on that later) regardless what kernel you choose to run in the future. (and indeed, BSDs can even run the same apps in their BSD kernel)

The X Window System: Graphics!

www.xfree86.org

www.x.org

The "X Window System", often called "X", is really just a system of handling graphics. There are two popular applications that handle the X protocol: XFree86 and X.org. X.org is a fork from the XFree86 code, just before XFree86 changed their licensing terms in 2004.

It is in X11 that your video driver is used. Also your other input and output devices (such as keyboard, mouse and screen) are declared here.

It is important to note that X does not provide for any sort of advanced windowing functions other than the display of them. User manipulation of the windows (and the decorations, such as titlebars, borders and widgets) is handled by the Window Manager, which we will cover next.

The Window Manager: So many choices...

The realm of managing windows in X is populated with a large variety of Window Managers. This is perhaps the most daunting and confusing thing for Microsoft Windows users to understand about the world of Linux.

In Linux, the user may choose a Window Manger that uses very little system resources, or they may choose ones with more features. This level will provide a fully functional GUI for your Linux box. Some examples include Fluxbox, Sawfish, FVWM, Enlightenment, Metacity and IceWM.

Compiz (or, more properly, Compiz Fusion) with its Emerald window decorator is another Window Manager with special appeal to many. It uses graphics card hardware to run visual effects of warping, zooming, shadows and more. Compiz is closely associated with Gnome, and replaces Metacity in a "3D" Gnome setup. If a user decides to switch back away from this Window Manager into a traditional (no GPU) Window Manager, they must replace it, not just remove Compiz.

The Desktop Environment: The Big Two (plus one)

www.kde.org

www.gnome.org

www.xfce.org

Where can you go beyond a Window Manager? Why, a full-blown Desktop Environment, of course! It continues where a Window Manager leaves off by incorporating things such as a "control panel" like item that lets you adjust your settings for a great deal of peripherals (scanners, printers, keyboards, mice, and anything else you can connect).

A Desktop Environment matches what most Microsoft Windows users expect in an operating system. All of these extra features come at the cost of extra resources being consumed. And, in fact, many people get a current Linux system running on an old box by not using the heavier KDE or Gnome, and getting more life out of the PC. The PC can still be updated with the latest kernel and apps (such as GIMP, OpenOffice.org and Firefox) and be a very capable desktop machine.

While KDE and Gnome have all the extra bells and whistles, if you want to slim down your resource usage, but don't want to sacrifice the convenience of having the added features of a Desktop Environment, XFCE may fit the bill. A self-described "lightweight desktop environment for various *NIX systems", screenshots of these desktops are often featured in our "Desktop" threads.

In Summary

How many layers, and which modular options you choose is up to you. The choices are daunting for someone first looking at them, but these choices make Open Source so exciting and you will have all the tools needed to make your PC work the way you want it to.

I hope this brief summary helps some of those who want to understand what makes up a Linux PC, and takes some of the confusion away. The forums here have many knowledgeable members, many of them are IT professionals (which I am not) and with the experience needed to help you out with guidance to get yourself out of a bind.

Those of you who are reading this and notice an error in what I have said, please let me know so that it can be corrected.

Link to comment
https://www.neowin.net/forum/topic/259962-faq-how-is-linux-layered/
Share on other sites

  Sawyer12 said:
One spelling mistake :p

Edit : Otherwise Well Done (Y). Nice Article.

585135935[/snapback]

:pinch:

I went back and fixed two spelling errors, and three typos where my fingers had a mind of their own. :blush:

  Quote
Some examples include Fluxbox, XFCE, Enlightenment, Metacity and IceWM.

Last time I checked XFCE is a lightweight desktop environment and not a window manager.

From www.xfce.org:

  Quote
"Xfce is a lightweight desktop environment for various *NIX systems.

Designed for productivity, it loads and executes applications fast, while conserving system resources."

  Aeonandromere said:
Last time I checked XFCE is a lightweight desktop environment and not a window manager.

585137503[/snapback]

Their site was very informative.

XFCE uses XFWM4 as the Window Manager.

I will update the first post. (Y)

Edit: Updated the DE section (and edited the listing of WMs at the end of the WM section).

Edit 2: Thank you, everyone for your improvements and compliments. :D

Edited by markjensen
  • 2 weeks later...
  n3wt said:
Very good article, just one thing, BSD is both an OS and a Kernel, it does not in fact include GNU.  (this becomes very apparent when you use a BSD system :p)

585277068[/snapback]

Very correct!

http://www.gnu.org/gnu/linux-and-gnu.html

I will make the appropriate edit. Google shows GNU/BSD as a sourceforge project, and other links with the reference (but some of those may be mis-identified, as I did above).

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Isn't the CPU used to calculate the parity for the RAID? If so, the combination of SSDs and 10GBe might make the CPU more important
    • yeah GSMA began working to enable end to end encryption between android and iphone last year and apparently a new standard was developed. apple has said that they would implement this in "future software updates" but i haven't heard anything since march, the time this was all reported on. shortly after, i read on forbes that the FBI suggests not sending texts between iphone and android because they're unencrypted. i use signal to chat with my wife but i'd rather just use messages tbh (she has an iphone), i'm not really a 3rd party guy haha
    • Well, I did not like the trailer for the project he went to work on also, but why do you think he should waste time with this… did you love the season 2? Maybe I am missing out after the crap I saw in first season ep1-3? I love the first last of us game… while not the BEST it was one of the games that I will remember for the EXPERIENCE it game me… last of us 2 was not on the same level at all and the show🤔 complete miss in my experience of the first few level
    • They're likely moving all resources to other things. Clearly Windows is not important to them.
    • Image Uploader 1.4.3 Build 5352 by Razvan Serea Image Uploader is a free and open-source program for Windows that that allows you to effortlessly upload images, screenshots, and various files to a wide array of hosting services. With its capability to capture selected screen areas, it promptly uploads content to image hosting services, while also offering the convenience of automatically copying the URL to your clipboard. Key Features of Image Uploader: Upload to Multiple Hosting Services Image Uploader supports uploading images and files to over 30 popular hosting services. Additionally, it can upload directly to your own FTP, SFTP, or WebDAV server. After upload, the tool automatically generates sharing codes in HTML, BBCode, and Markdown, with support for custom output templates tailored to your needs. Video Frame Grabbing and Screenshot Tools You can extract multiple frames from video files in a wide range of formats including AVI, MP4, MKV, WMV, and more. It supports both system-installed codecs and built-in ones. The extracted frames can be uploaded individually or compiled into a single mosaic image. It also includes screenshot capabilities for the full screen or selected regions, along with a simple image editor for annotations, highlights, and blurring. Advanced Integration and Usability Image Uploader supports drag-and-drop, clipboard monitoring, and can be accessed via Windows Explorer’s context menu. It also features URL shortening, multi-account support, reuploading, and the ability to upload images embedded in text while retaining formatting. The app is available in several languages, including English, Russian, Turkish, Korean, Arabic, and more. Image Uploader 1.4.3 Build 5352 changelog: New Features Screen Recording: Added two powerful capture methods: DirectX (Desktop Duplication API) FFmpeg-based recording Expanded Hosting Services: Added support for new file hosting platforms: TeleBox (linkbox.to) take-me-to.space ranoz.gg webshare.cz lobfile.com imgpx.com freeimghost.net radikal.cloud anonpic.org fotozavr.ru imgtr.ee thumbsnap.com 8upload.com filemail.com Others Video Uploads: Added Flickr.com support for video uploads Localization: New French translation added Context Menu: Added "File Information" option to video file context menus DPI Support: Improved support for: Screen DPI changes Mixed-DPI multi-monitor setups Improvements Disabled application window animations during screenshot/screen recording initiation Updated API and documentation Improved overall stability Bug Fixes Fixed network client error that could cause application crashes Resolved unauthorized startup registration issue Fixed upload functionality for pixeldrain.com Restored tray icon balloon notifications visibility Various minor bug fixes Download: Image Uploader 64-bit | Portable 64-bit | ~16.0 MB | (Open Source) Download: Image Uploader 32-bit | Portable 32-bit | ~15.0 MB Download: Image Uploader ARM64 | Portable ARM64 | ~11.0 MB Links: Image Uploader Home Page | Screenshot | GitHub Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Reacting Well
      SteveJaye earned a badge
      Reacting Well
    • One Month Later
      MadMung0 earned a badge
      One Month Later
    • One Month Later
      Uranus_enjoyer earned a badge
      One Month Later
    • Week One Done
      Philsl earned a badge
      Week One Done
    • Week One Done
      Jaclidio hoy earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      430
    2. 2
      ATLien_0
      156
    3. 3
      +FloatingFatMan
      149
    4. 4
      Nick H.
      64
    5. 5
      +thexfile
      62
  • Tell a friend

    Love Neowin? Tell a friend!