Linux refers to the family of operating systems based on the open-source Linux Kernel [first released in 1991] with a largely Unix-like interface. This family of operating systems is distributed and specialized for varied purposes, such as desktops, smartphones, mainframes, edge computing devices, etc. Linux was solely built as an open-source project and today is the most widely used family of operating systems in the world.
The core competencies include usage and understanding of secure shell (ssh), process and memory monitoring and management, filesystems, and an understanding of the init process and job scheduling.
- Secure Shell (SSH) - SSH is a cryptographic network protocol to access network services over a network using public/private keys. An understanding of its usage [connecting to remote machines], and copying a file over the network is essential.
- Process Monitoring and Management - Linux provides both command-line tools and software packages to monitor and manage processes. Usage of top/htop, ps, kill, and setting limits using 'ulimit'.
- Memory Monitoring and Management - Linux provides tools to monitor and manage memory. Familiarity with command-line tools to check usage both primary and secondary usage. Theoretical understanding of kernel space and user space in programs, virtual memory, and demand paging is necessary.
- Filesystems - Theoretical understanding of commonly used filesystems [ext3, ext4, btfs], and file layout in Linux. Making partitions, changing file permissions, forming symbolic links, and mounting and unmounting a disk using CLI.
- Init process - Init is the parent of all processes, executed by the kernel during the booting of a system.
- Job scheduling - Linux provides tools to schedule jobs [once or periodically] by setting up command execution at a given time.