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!

  • khorovodoved@lemm.ee
    link
    fedilink
    arrow-up
    28
    ·
    edit-2
    1 year 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)
    • lseif@sopuli.xyz
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

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

    • tricoro@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

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

      • lseif@sopuli.xyz
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year 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

      • khorovodoved@lemm.ee
        link
        fedilink
        arrow-up
        3
        ·
        1 year 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.