My frustration
I've been seeing popular media outlets once again fail to distinguish the kernel from the system software developed around it, and I believe people need to understand this point before the userbase grows much more with this misunderstanding.
Knowing the difference
Operating system / Distribution
An operating system is a collection of software — bootloader, kernel, desktop, complementary software — which makes up a user experience, and is compiled under an expectation of use for the majority of end-users. In the Linux userland we call these distributions. But operating system can define these as well. Further subtopics will break down the different software which makes one up.
Bootloader
Each system will come with its own variety of this, with its own special configuration based on itself existing in its own vacuum. Configuration varies if it's the Microsoft NT loader, PLoP, Syslinux, GRUB, BURG, LILO, or others like it, but its primary task is to load from a bootable partition to select which system to boot into, if multiple systems exist, or facilitate using the only other bootable partition, if not the partition the system is on already.
Whatever your bootloader of preference may become, it is kernel-agnostic — You probably care more about reading this sentence than your bootloader does about which bootable partitions exist on attached media. Depending on its specific function, the bootloader can facilitate loading systems on media attached via means normally unavailable on your motherboard's firmware.
Bootloaders can also chainload into other bootloaders, if you so wish. Chainloading is more for if exists a system you cannot change the primary boot device, or compiling together multiple instances of systems which come with its own variety of bootloader with specific functions programmed into their menus, but the primary purpose is still the same regardless what you, as an end-user selects from their respective menus.
Pro tip: Installing a bootloader on a separate device allows for an alternative if somehow the primary bootloader malfunctions for any reason, or if the bootloader doesn't exist on the primary boot media act as a use restriction and light data security measure.
Kernel
The kernel is what facilitates all operations on any machine it is executed from. It is software in its own right, but special in the fact if a kernel doesn't support the hardware which exists, then any other software intended to be used with the kernel will not function, which renders the system inoperable. Kernels can be specialized to only the hardware on a given system, or like Ubuntu MATE be monolithic — In exchange for bloat and features you will never, ever use, the few hardware configurations you possess which the kernel is compatible with will facilitate booting into the system with that hardware in use. This means the kernel doesn't need to be recompiled to function with new hardware.
An easier way to imagine the kernel is a conductor for all bus operations on the system, from displaying the video, to transferring data, to emitting sound. The kernel has complete control of it. This alone doesn't make up the operating system. It makes what an OS does possible.
So why does it matter what the difference is?
Really simple, using the software this community represents — Canonical tomorrow could recreate their system using the Berkeley System Device kernel and become more Apple-like, which itself uses Apple's variety of BSD. Should Canonical do this, it would be up to distribution vendors if they want to ride this new wave of development and recompile everything to function with BSD. If Martin really wanted to keep the spirit of Ubuntu MATE alive in this alternate timeline, Ubuntu MATE would no longer be Debian using the Linux kernel, it would be a Debian-like using the BSD kernel.
Desktop (environment) / Shell
Desktop can be synonymous with System, and here needs some distinction as well. MATE is the desktop environment, or shell of Ubuntu MATE. A desktop environment is the software which makes up the graphical user interface. It doesn't necessarily need to rely upon X — Many desktops before the X Window Server were simply fancy multitasking text-based interfaces, with custom software to allow for crude Z-indexing which defined which window was on top of the other, or with some tiling-based solutions what programs resided in which containers.
tmux
, a software available for Debian and Debian-based systems reflects what popular tiling window managers like i3
and awesome
allow — software which exists in containers on a single workspace. While tmux
; known formally as terminal multiplexer, requires a text-based shell to exist via emulator or TTY, it can be seen as an emulation of original desktop interface concepts on earlier multitasking-capable operating systems when personal computing was a concept long before its coming of age.
The desktop environment may also influence what other software you use as part of the operating system. As a few solutions exist, such as GTK, KDE and wxWidgets, it must be evaluated per-case if a system should be lighter-weight by relying on one interface solution, or multiple. For light weight you avoid software which requires more interface library software, or if that isn't a concern then all solutions can exist and function concurrently.
The environment by itself does not define an operating system, only what software by default which provides a graphical interface to facilitate use of the hardware, and by extension what software by default communicates in varying degrees to the kernel.
Confusion of GNOME Shell vs. text-based interfaces
In an effort to simplify terminology, GNOME team chose to call their most recent iteration of their GTK3-based desktop GNOME Shell. While a Shell can be anything which allows the user to interact with the machine using human interface devices, this can lead to interesting situations where for decades the term "Drop to shell" was used to mean interfacing with a text shell via TTY. X on most Ubuntu systems will operate in tty7
, which can be accessed after going into another TTY by holding Ctrl and Alt while (holding Fn and) pressing F7.
Depending on motherboard / keyboard firmware, Fn may not be necessary to hold down.
Everything else / Summary
GNU coreutils, PuTTY, VideoLAN Corp's VLC Media Player, Pidgin (as Finch) — All of these things doesn't need anything but the kernel, shell and essential files for command-line operation to exist. None of the available software solutions you could install in Ubuntu MATE, or any distribution by itself make up the totality of your use experience, but all of it contributes to the core concept of an operating system.