High-level architecture of Linux machine
- Understanding kernel, TTY terminal, PTY terminal, shell, and hardware interfacing
Building the VM-based learning environment for seamless hands-on experience
- Understanding VM and host machine
- How we automated the VM building workflow? What are the tools and resources required?
- How to install VirtualBox, Vagrant, and Git Bash in your host machine? (hands-on)
- How to build an automated Ubuntu Linux 18.04 server-based VM? (hands-on)
- Managing the Ubuntu Linux 18.04 server VM from CLI (hands-on)
Terminal-based text editors
- What is Vim and Nano? Why we use Vim and Nano text editors?
- How to use Vim and Nano text editors? (hands-on)
Kernel
- What is the importance of the Linux kernel in the DevOps world?
- How to access the kernel and its modules? (hands-on)
- How the Linux kernel bootstraps? How to correlate it with GRUB, the bootloader program?
- How to observe a bootstrapped Linux kernel? (hands-on)
Terminal
- How to understand the TTY and the PTY terminals?
- Visualizing the TTY and PTY terminal devices (hands-on)
Shell
- What is the significance of the Bash shell in the Linux world?
- How to install C-shell, Korn shell, and Z-shell? (hands-on)
- How to switch and access different shells? (hands-on)
- How the PTY terminal integrates with the shell? (hands-on)
- Understanding the usage of shell environment variables
- Managing the shell environment variables (hands-on)
User and group
- What is the best way to understand the users and groups?
- What happens when you create a user? (hands-on)
- Who is the Sudo user or Sudoer?
- How to create and manage a Sudo user? (hands-on)
- Managing the users and groups (hands-on)
Partition and filesystem
- How partition and filesystem concepts are relevant to the modern-day DevOps engineer?
- What are the four major steps involved in storage management?
- Understanding the major divisions and different types of partitions with limitations
- How to create and manage partitions effectively? (hands-on)
- Understanding the different types of filesystems and the use cases
- How to flash a filesystem into the partition? (hands-on)
- What are the ways to mount a filesystem? How to understand the filesystem mount configurations?
- How to persist filesystem mount configuration during system reboot? (hands-on)
- Understanding the structure of filesystem tree with it’s naming conventions
- Visualizing the structure of filesystem tree and navigating between filesystem paths (hands-on)
- Knowing the different types of files supported in Linux machine
- How to verify the different types of files in Linux machine? (hands-on)
- Understanding the concept of ownership and permission in filesystem
- How to apply and manage ownership and permission to a file and directory? (hands-on)
Process
- As a DevOps engineer, what is the significance of process management?
- Understanding the process management lifecycle in Linux machine
- What are the different modes of process execution? How to understand process signals?
- How to use signals to control foreground and background processes? (hands-on)
- How to interpret system performance based on CPU cores and RAM?
- Observing system load and system memory pressure to measure system performance (hands-on)
Package
- What is the significance of package management in the context of DevOps engineering?
- What are the two ways of installing software on a Linux machine? How to understand it better?
- How package managers like Debian and RPM simplifies the software installation mechanism?
- How to build/compile and install software from its source code? (hands-on)
- How to install and configure a software using a package manager? (hands-on)
Service
- How service management is relevant to the modern-day DevOps engineer?
- Interconnecting the init system, daemon programs, and the system services
- How to understand and correlate Systemd with SysV, the runlevel-based init system?
- Observing the implementation of Systemd and how it internally uses runlevels (hands-on)
- How to manage system services using SysV and Systemd? (hands-on)
Network
- What is the importance of networking in container technology and cloud infrastructure?
- Analogy-based understanding of networking components namely DHCP, IP, NIC, MAC, device, port, socket, traffic, connection, etc
- How to understand major classes and design a network namespace using the CIDR format?
- How to use simple commands to verify the networking stack of Linux machine? (hands-on)
SSH
- How popular DevOps tools like Ansible, Chef, Git, and Jenkins uses SSH protocol? How SSH is used in cloud servers and containers?
- Understanding the architecture of SSH protocol with key-based authentication
- How to install and configure an OpenSSH server? (hands-on)
- How to configure key-based authentication in an OpenSSH server based on the recommended practices? (hands-on)