this post was submitted on 26 Nov 2023
115 points (96.7% liked)

Linux

46819 readers
1097 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi all - I am learning about Linux and want to see if my understanding is correct on this - the list of major parts of any distro:

  1. the Linux Kernel
  2. GRUB or another bootloader
  3. one or more file systems (gotta work with files somehow, right?)
  4. one or more Shells (the terminal - bash, zsh, etc...)
  5. a Desktop Environment (the GUI, if included, like KDE or Gnome - does this include X11 or Wayland or are those separate from the DE?)
  6. a bunch of Default applications and daemons (is this where systemd fits int? I know about the GNU tools, SAMBA, CUPS, etc...)
  7. a Package Manager (apt, pacman, etc...)

Am I forgetting anything at this 50,000 foot level? I know there are lots of other things we can add, but what are the most important things that ALL Linux distributions include?

Thanks!

you are viewing a single comment's thread
view the rest of the comments
[–] pastermil 13 points 9 months ago (1 children)

Also:

  • init system, without which you'd be left with only one program running at a time
  • some programs are written in interpreted language (e.g python, shell, perl), so the interpreter would also be required
  • C library, without which none of the above would function (yes, even if all the programs are statically compiled, it still has that library included with each executable)
  • this one is not necessary for the runtime, but is needed for creating a working system: toolchain -- preprocessor, compiler, linker, assembler -- all the stuff for transforming the source code into executables

Another comment mentioned Linux From Scratch, I'd totally recommend that, but it would take so much of your time manually building stuff (which is why it is so educational). If you don't have the time, you may want to opt with Gentoo instead.

[–] [email protected] 4 points 9 months ago

I would also mention:

  • The multi-user system, which is a bunch of config files, libraries, utils and UIs, that deal with logging in or doing stuff as a specific user.
  • The logging system. Individual applications can simply log to a different file each but for system services the logging is usually centralized and offers additional features (like logging remotely etc.)
  • Setting up networking is pretty much mandatory these days.