Components
Components of a GNU Linux Operating System
Bootloader
- bootloader is the software which loads your os into the main memory
 - grub and refind are examples of some popular bootloaders
 
Kernel
- main core of the operating system
 
init system
- how the processes are started on startup, etc controls that
 systemdinit
shell
- where you enter commands it is the shell, different shells have different features
- bash
 - zsh
 - fish
 - csh
 
 
Display Server
- so to run graphical interface on linux, you will need some software which will display those components and windows
 xandwaylandare the popular choice of thesexis old but has more software supportwaylandis new and better but not all types of software is available for it.
Display Manger
- when you login the login screen is the display manager, it manages sessions
 - different de have different display managers, you can change them
 lightdm,sddm,gdmare some common display managers
Desktop Environment
- so desktop environment is how your interface looks and its default programs.
 - desktop environment controls these things
- default applications
 - your application launcher
 - notifications
 - keyboard shortcuts
 - how windows are displayed
 - icons and themes
 
 - gnome, kde, xfce, lxde, mate some common desktop environment
 - there are so many of them because everyone have their own preferences so use the one that works for you
 
Window managers
- when you install a desktop environment, it installs which power users don't need
 - like a text editor, a terminal, calculator, music player, etc
 - so to have more control you can just install window manager
 - i3, bspwm, awesome, openbox, dwm, xmonad are common wm
 
Widget toolkit
- ui toolkit used to make an application
- gtk and qt are the popular one used
 - kde use qt, gnome use gtk, two major desktop environment
 
 - https://en.wikipedia.org/wiki/D-Bus - for process communication