
What is EFI?
EFI (Extensible Firmware Interface), often referred to as UEFI (Unified EFI), is a modern replacement for the traditional BIOS. It initializes hardware and starts the bootloader to launch the operating system. It uses a special partition called the EFI System Partition (ESP), usually formatted as FAT32. Legacy BIOS is simple and works by reading and executing boot code from the MBR. It doesn’t understand modern filesystems or security mechanisms.
What is a Partition Table?
A partition table is a data structure on a disk that tells the operating system how the disk is divided into partitions. Each partition can be used to store a different file system or type of data. Common partition table formats include MBR (Master Boot Record) and GPT (GUID Partition Table).
Feature | GPT (GUID Partition Table) | MBR (Master Boot Record) |
---|---|---|
Max Partitions | Unlimited (typically up to 128 in Linux) | Up to 4 primary (or 3 primary + 1 extended) |
Max Disk Size | Supports disks larger than 2 TB | Supports up to 2 TB disks |
Redundancy | Stores multiple partition table copies | Stores only one copy of partition table |
Data Integrity | Uses CRC32 for error checking | No built-in error checking |
Boot Mode | Requires UEFI firmware | Works with BIOS firmware |
Compatibility | Not supported by very old systems | Compatible with older BIOS-based systems |
What is Linux Directory Structure?
The Linux File Hierarchy Structure or the Filesystem Hierarchy Standard (FHS) defines the directory structure and directory contents in Unix-like operating systems.
One of the advantages of this filesystem structure is that you can mount a disk in any of these routes. For example since we don’t want to lose our files on reinstalling the linux on our PC we mount
a disk in our /home directory. On new installation of linux we just mount it in /home
and then we have all files and configurations in our system.
Generally the user defined configurations are stored as dotfiles in your home directory. By the way the files starting with a dot gets hidden.
For example, .bash_history
is a hidden file in your home directory that stores the commands you have run in your bash in terminal.
/
├── bin → Essential user binaries (e.g., ls, cp)
├── boot → Bootloader files (e.g., GRUB, vmlinuz)
├── dev → Device files (e.g., /dev/sda, /dev/null)
├── etc → System configuration files
├── home → User home directories (e.g., /home/yourname)
├── lib → Essential shared libraries for binaries in /bin and /sbin
├── media → Mount points for removable media (USB, CD-ROM)
├── mnt → Temporary mount point for filesystems
├── opt → Optional software and third-party packages
├── proc → Virtual filesystem providing process and system info
├── root → Home directory of the root user
├── run → Runtime data (transient files like PID files)
├── sbin → System binaries (for system administration)
├── srv → Service data (e.g., web or FTP servers)
├── sys → Virtual filesystem for kernel and hardware info
├── tmp → Temporary files (cleared on reboot)
├── usr → Secondary hierarchy for user applications and files
│ ├── bin → Non-essential user binaries
│ ├── lib → Non-essential shared libraries
│ └── share → Architecture-independent data
└── var → Variable data (e.g., logs, mail, spool)
What is /boot/efi
?
/boot/efi
is a mount point for the EFI System Partition (ESP) on UEFI-based systems. It contains bootloaders, kernel images, and configuration files needed for booting. Without it, the system wouldn’t be able to boot using UEFI.
What is Swap?
Swap space can take the form of a disk partition or a file. Users may create a swap space during installation or at any later time as desired. Swap space can be used for two purposes, to extend the virtual memory beyond the installed physical memory (RAM), and also for suspend-to-disk support.
What is Linux Filesystem?
A Linux file system is a structure that defines how data is stored and accessed on storage devices in a Linux environment. It includes a directory hierarchy rooted at /
and supports various file system types such as ext4, xfs, btrfs, etc. It manages files, directories, permissions, and metadata.
Feature | Linux File System (e.g., ext4, xfs) | Windows File System (e.g., NTFS, FAT32) |
---|---|---|
Case Sensitivity | Case-sensitive (file.txt ≠ File.txt ) | Case-insensitive (file.txt = File.txt ) |
File Permissions | Strong permission model (owner/group/others) | Basic permissions (ACLs in NTFS, more complex setup) |
File System Types | ext4, xfs, btrfs, etc. | NTFS, FAT32, exFAT |
Root Directory | Single root: / | Multiple roots: C:\ , D:\ , etc. |
Configuration Files | Stored as plain text in /etc , etc. | Stored in Registry and config files |
Executable Files | Permissions define executability | File extension (e.g., .exe , .bat ) defines it |
Mounting Drives | Mounted anywhere in the directory tree | Assigned to drive letters |
Stability | Very stable for servers | Stable, but less commonly used for servers |
What is OS Installation?
OS installation is the process of setting up an operating system (like Linux) on a computer’s storage device. It includes creating partitions, formatting them, installing the base system, bootloader, and setting up configurations like user accounts, locales, and network settings. OS installation is a process of loading the OS onto a computer’s hard disk. During installation, the OS files are copied and configured so that the computer can boot and run.1
What is a Package Manager?
A package manager in Linux is a tool that automates the process of installing, updating, configuring, and removing software packages from your system. It handles software dependencies, downloads the required files, and manages installation paths.
Key Functions:
- Install software from repositories
- Update packages to the latest versions
- Remove software cleanly
- Manage dependencies so all needed libraries are present
Distribution | Package Manager |
---|---|
Debian/Ubuntu | apt / dpkg |
RedHat/CentOS | yum / dnf |
Arch Linux | pacman |
openSUSE | zypper |
Alpine Linux | apk |
There are also universal package managers like: snap (Canonical)
,flatpak
,AppImage (portable, doesn't need installation)
In terms of accuracy in managing dependencies, here’s how the major package managers generally compare:
DNF (Fedora/RHEL/CentOS)
- Most accurate and robust in dependency resolution.
- Handles complex dependency trees and conflicts very well.
- Supports modular repositories, automatic weak dependencies, and transaction rollbacks.
- Uses the powerful libsolv library for fast and accurate resolution.
APT (Debian/Ubuntu)
- Very good at dependency handling
- Stable and conservative – prioritizes system stability over bleeding-edge features.
Can sometimes leave orphan packages unless you run apt autoremove.
pacman (Arch)
- Fast, but has minimal automatic dependency conflict handling.
- Assumes the user understands their system.
- Will not auto-handle partial upgrades well — you must run pacman -Syu regularly.
- Doesn’t support weak dependencies (optional ones), unlike APT/DNF.
What is a Repository Mirror?
A repository mirror in Linux is a copy of a software repository hosted on a different server, often closer to your geographic location, to provide faster and more reliable access to software packages.
Why mirrors are used:
- Faster downloads due to closer server proximity
- Load balancing to reduce strain on the main server
- Redundancy in case the main repository is down
Config files
You can change mirrors to get faster downloads.
- pacman mirrors are located in
/etc/pacman.d/mirrors
- APT mirror are located in
/etc/apt/mirror.list
What is pacman?
pacman is the package manager used by Arch Linux and the distributions based on arch linux. It stands for “package manager” and handles installing, updating, removing, and managing software packages.
What is pacman-key?
To determine if packages are authentic, pacman uses GnuPG keys in a web of trust model. The current Master Signing Keys are found To Be added later. At least three of these Master Signing Keys are used to sign each of the Developer’s and Trusted User’s own keys which then in turn are used to sign their packages. The user also has a unique PGP key which is generated when you set up pacman-key. So the web of trust links the user’s key to the Master Keys.
Examples of webs of trust:
Custom packages : You made the package yourself and signed it with your own key. Unofficial packages : A developer made the package and signed it. You used your key to sign that developer’s key. Official packages : A developer made the package and signed it. The developer’s key was signed by the Arch Linux master keys. You used your key to sign the master keys, and you trust them to vouch for developers.2
What is GnuPG
GnuPG (GPG) stands for GNU Privacy Guard. It is a free, open-source encryption tool used for:
- Encrypting and decrypting files, emails, and data.
- Signing data and verifying signatures.
- Managing public and private keys.
Key Features:
- Public-key and symmetric encryption.[Symmetric encryption is a type of encryption where the same key is used for both encrypting and decrypting data.]
- Digital signatures for authenticity and integrity
- Used by developers to sign Git commits and release tags.
- Keyring management (for storing and distributing keys)
- Common in package verification and secure software distribution.
- Integrates with email clients like Thunderbird (via Enigmail)
- Trusted in secure email communication (e.g., with PGP).
Example:
gpg --import keyfile.asc
gpg --verify package.sig package.tar.zst
What is Keyring Management?
Keyring management refers to how tools like GnuPG (GPG) store, organize, and manage public and private encryption keys. A keyring is essentially a database (or collection) of cryptographic keys.
Why It Matters:
- Secure communication: You can’t encrypt or verify messages unless the right keys are in your keyring.
- Web of trust: GPG uses trust levels to decide whether a key is reliable, which prevents impersonation.
What is fstab?
The fstab (file systems table) is a configuration file located at /etc/fstab
that defines how and where disk partitions, devices, or remote file systems are automatically mounted during system startup.
What is chroot?
A chroot is an operation that changes the apparent root directory for the current running process and their children. A program that is run in such a modified environment cannot access files and commands outside that environmental directory tree. This modified environment is called a chroot jail.
Changing root is commonly done for performing system maintenance on systems where booting and/or logging in is no longer possible.
Common examples are:
- Reinstalling the boot loader.
- Rebuilding the initramfs image.
- Upgrading or downgrading packages.
- Resetting a forgotten password.
- Building packages in a clean chroot.3
What is Bootloader?
A bootloader is a small program that loads the operating system into memory and starts it. It runs after the firmware (BIOS or UEFI) and before the OS kernel. Examples include GRUB (used in most Linux distros) and systemd-boot.
What is Linux Kernel?
The Linux® kernel is the main component of a Linux operating system (OS) and is the core interface between a computer’s hardware and its processes. It communicates between the 2, managing resources as efficiently as possible.
The kernel is so named because—like a seed inside a hard shell—it exists within the OS and controls all the major functions of the hardware, whether it’s a phone, laptop, server, or any other kind of computer.4
What the kernel does
The kernel has 4 jobs:
- Memory management: Keep track of how much memory is used to store what, and where
- Process management: Determine which processes can use the central processing unit (CPU), when, and for how long
- Device drivers: Act as mediator/interpreter between the hardware and processes
- System calls and security: Receive requests for service from the processes
Kernel packages are installed under the /usr/lib/modules/
path and subsequently used to generate the vmlinuz executable image in /boot/. When installing a different kernel or switching between multiple kernels, you must configure your boot loader to reflect the changes. For downgrading the kernel to an older version, see Downgrading packages#Downgrading the kernel.5
What is Gnu?
Most people using systems they call “Linux” are actually running a GNU system with the Linux kernel—properly called GNU/Linux. The GNU Project, started in 1984, aimed to create a complete free Unix-like operating system. By the early 1990s, GNU had nearly all essential components except a kernel. When Linus Torvalds released Linux (the kernel) in 1992 as free software, it completed the GNU system, forming the first entirely free operating system: GNU/Linux.
The common use of the name “Linux” for the entire system leads to confusion, giving the impression that Torvalds created the whole system, when in fact the bulk of the system and its development originated from GNU. The GNU Project deliberately built a full system—not just individual programs—by identifying and developing or finding all necessary parts.
Even though Linux is essential, it comprises a small portion of the full system. For example, in some distributions, GNU components account for more than 15% of the code, while Linux is only around 1.5–3%.
Today, many distributions include nonfree software and follow the “open source” model, contrasting with GNU’s free software philosophy, but fully free GNU/Linux distros do exist. Stallman urges users and developers to call the full system “GNU/Linux” to properly credit the GNU Project’s foundational role.
What is locale?
The term “locale” refers to a set of rules and settings that define how software should handle language-specific and region-specific behavior. It tells the system how to present information to the user based on their cultural and linguistic preferences.
/etc/locale.gen
is a config file listing all possible locales. By default, many of them are commented out to save disk space and system resources.
You uncomment (e.g. en_US.UTF-8 UTF-8
) to tell the system which locales you want to generate.
Without a proper locale:
- You might see weird or broken characters.
- Sorting might not follow expected rules.
- Apps might misinterpret your input/output (especially non-English text).
- You may get errors or fallback behavior.
What is DNS?
DNS (Domain Name System) is the system used to translate human-readable domain names (like example.com
) into IP addresses (like 93.184.216.34
) that computers use to identify each other on a network. It’s like a contacts app on your smart phone to call the phone numbers by contact name.
What is /etc/resolv.conf
?
/etc/resolv.conf
is a configuration file in Linux that specifies the DNS servers the system should use for resolving domain names. It usually contains lines like nameserver 8.8.8.8
.
What is /etc/hosts
?
The hosts file, located at /etc/hosts
, is used to map hostnames to IP addresses manually. It provides a way to override DNS lookups for specific domain names locally.
Example:
127.0.0.1 localhost
192.168.1.100 myserver.local
What is sudo?
“sudo” is a command-line utility that allows a user to run specific commands with elevated privileges, typically those of the root user, without having to log in as root. It is actually super user do
.
What is systemctl?
Systemctl is a command-line tool that allows for the management and monitoring of the systemd system and service manager. It consists of a range of system management utilities, libraries, and daemons that have replaced the previous System V (SysV) init daemon.
With its various commands, systemctl proves to be a helpful tool in managing a server’s services. It provides detailed information about individual systemd services as well as those that have system-wide usage. 6
What is Desktop Environment?
A desktop environment (DE) in Linux is a complete graphical user interface (GUI) that provides everything you see and interact with on your screen—like windows, panels, icons, menus, and applications.
Some popular DE:
- GNOME – Uses plenty of system resources but gives you a modern, polished system
- KDE – Highly customizable desktop with moderate usage of system resources
- Xfce – Vintage look but light on resources
What is Display Manager?
A display manager (DM) in Linux is the program that provides the graphical login screen and manages user sessions and graphical desktops.
Some popular DM:
- GDM (GNOME Display Manager) | GNOME
- SDDM (Simple Desktop Display Manager) | KDE Plasma
- LightDM | XFCE
References:
Footnotes
-
https://trustedinstitute.com/concept/comptia-a-plus/system-configuration/operating_system_installation ↩
-
https://avnsgt.gitbooks.io/archlabs-knowledge-base/content/gnupg/pacman-key.html ↩
-
https://www.redhat.com/en/topics/linux/what-is-the-linux-kernel ↩
-
https://www.liquidweb.com/blog/what-is-systemctl-an-in-depth-overview/ ↩