115
submitted 7 months ago by [email protected] to c/[email protected]

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
[-] [email protected] 28 points 7 months ago* (last edited 7 months ago)

I would say, that from most important to least important components are:

  1. kernel
  2. init system (systemd, openrc, runit...)
  3. C library (glibc, musl)
  4. filesystem
  5. coreutils
  6. shell
  7. bootloader
  8. package manager
  9. x11/Wayland (if any)
  10. sound system (if any)
  11. WM (if any)
  12. DE (if any)
[-] [email protected] 6 points 7 months ago

what do u mean by important? like 'essential to the system', or 'important to consider when choosing a distro', or what?

[-] [email protected] 9 points 7 months ago

I mean "something out of ordinary about it affects your experience with this distro the most".

[-] [email protected] 1 points 7 months ago
[-] [email protected] 4 points 7 months ago

I'm surprised you put shell so high when it tends to be less impactful in my experience. Like I care a lot more if my distro is using GNOME instead of KDE a lot more than if it's using bash instead of zsh. Plus it's easy to install and use a different shell

[-] [email protected] 3 points 7 months ago

It is easy to install another shell indeed, but it is quite difficult to configure it. While installation of DE is usually done with just one command. And you can use linux without DE, but not without shell. Many distributions even do not install DE by default at all.

[-] [email protected] 2 points 7 months ago

Okay but unless you are spending a lot of time in the command line, one (POSIX compliant) shell is as good as another. Like yes every distro needs a shell, but I don't much care which shell it is.

[-] [email protected] 2 points 7 months ago

Wouldn't the c library be more important than the init system?

[-] [email protected] 2 points 7 months ago

You are probably right. It is probably even more important than kernel.

[-] [email protected] 1 points 7 months ago
[-] [email protected] 2 points 7 months ago* (last edited 7 months ago)

One thing I don't know: if C is a compiled language already, what exactly does the C library do?

[-] [email protected] 6 points 7 months ago* (last edited 7 months ago)

it is a dynamically linked library, meaning its not in the compiled binary, but its assumed to already be on the system. as opposed to a statically linked binary. this lowers the file size of the binaries, because most will use the standard library.

edit: this may not be 100% correct, but its the general idea

[-] [email protected] 4 points 7 months ago

Most C binaries usually do not contain everything needed for their execution. It would make them too platform-specific. What most c programs do is that they use standard c library from platform for low-level things and communication with the system like memory allocation or stdin/stdout things, for example.

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

Linux

45797 readers
921 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