Linux Internals and system administration
Practical Linux system administration skills, from a developer's perspective: build a solid understanding of Linux internals, administration and troubleshooting in one hands-on course.
Work with processes, systemd, logs, networking and network servers, storage, containers and shell scripting.
Understand userspace vs. kernelspace, system calls, memory, POSIX fundamentals and day-to-day Linux operations.
Gain practical experience through guided labs (~70% hands-on) focused on realistic troubleshooting workflows.
How this helps: develop the confidence to inspect, manage and troubleshoot Linux systems in development, embedded and ops environments.
Who it’s for: designed for engineers who need both Linux internals context and practical system administration skills.
By the end, you’ll diagnose common Linux issues, automate routine tasks and understand what happens under the hood.
Curriculum
Linux application execution model
- Userspace vs. kernelspace
- The system call mechanism
- Privilege levels, access control and the user/kernel boundary
- Virtual memory vs. physical memory
- POSIX fundamentals and the Linux programming model
Containers essentials
- Containers vs. virtual machines
- Images, containers, volumes and networking fundamentals
- Basic Docker and Podman workflows
- Inspecting logs, processes and common failure modes in containers
Core shell and user-space workflow
- Terminal productivity, shell conventions and common shortcuts
- Standard streams, pipes, redirection and text-processing basics
- Navigating the filesystem and reading key files under /etc, /proc and /var
- Using man pages and built-in help effectively
Users, permissions and security foundations
- Users, groups, ownership, mode bits and umask
- sudo, sudoers and practical permission patterns
- SSH keys, agent forwarding and secure remote access basics
- Basic hardening concepts: login hygiene, service exposure and fail2ban
- Linux security frameworks: SELinux and AppArmor fundamentals
Process management and scheduling
- Processes, daemons and jobs
- ps, top, htop, pgrep, kill
- Scheduling basics and resource control. CFS. Real-time Linux? nice and renice
- Understanding process states and signals
- Inspecting live systems and reacting safely
systemd fundamentals
- The boot process - a short explanation
- The systemd process, unit types and dependencies
- Services, targets and timers
- systemctl workflows: start, stop, restart, enable and status
- Reading logs for services with journalctl
- Creating, testing and troubleshooting a simple custom service
Logging and monitoring
- journald concepts and journalctl usage patterns
- Reading /var/log and understanding common log locations
- Log rotation basics with logrotate
- Inspecting system health with uptime, free, vmstat, iostat and pstop
- Building a practical troubleshooting workflow from logs and metrics
Networking essentials and troubleshooting
- The OSI network model
- Ethernet Switching - what a developer must know about Ethernet switching
- Routing basics - what every developer must know about IP routing
- IP configuration and inspection with ip, ss, netstat and iptraf
- DNS resolution with dig, nslookup and /etc/resolv.conf
- Connectivity troubleshooting with ping, curl, wget, mtr
- Reading logs for network troubleshooting
- Firewall basics: UFW and core iptables / nftables concepts
- Intro to networking services: SSH config, apache and systemd-networkd
- Using /proc and sysfs for advanced troubleshooting and network finetuning
Storage and filesystems
- From block device to filesystem. The inode table - core concepts
- Inspecting block devices and partitions with lsblk, fdisk and blkid
- Mounting, unmounting and /etc/fstab basics
- Filesystem types and when to use them (ext4, xfs and overview of newer options)
- Disk usage analysis with df and du
- Reading logs for storage issues and corruption symptoms
Package management and system updates
- apt, dnf and package lifecycle basics
- Repositories, signatures, GPG keys and trusted sources
- Searching, installing, removing and updating packages
- Update strategies, verification and rollback awareness
Intermediate shell scripting
- Bash structure, quoting, working with functions
- Input parsing, positional parameters and argument handling
- Working with common data structures; from strings and numbers to arrays and JSON parsing.
- Error handling
- Writing maintainable automation scripts for admin tasks. Exercises
Scheduled tasks, performance and operational patterns
- User vs. system crontabs
- Logging and debugging cron jobs
- cron vs. systemd timers
- Intro to Linux performance tuning
- End-to-end troubleshooting patterns across process, network, storage and logs
Course Day Structure
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30