This course will cover the fundamental concepts and philosophy behind free and open source software (FOSS). The course will discuss open source and free software licensing; open source business strategies and impact; FOSS utilization in the enterprise; and development methodologies. Students will learn to set up and configure an industry-standard open source operating system, including system installation, and basic system administration; system architecture; package management; command–line commands; devices, filesystems, and the filesystem hierarchy standard. Also addressed are applications, shells, scripting and data management; user interfaces and desktops; administrative tasks; essential system services; networking fundamentals; and security, as well as support issues for open source software. Multiple distributions are covered with emphasis on the two leading enterprise distribution families.
Pre-Requisites: None
Required Textbook: Releases · https://github.com/jhajek/Linux-text-book-part-1/releases/ PDF and ePub available (free for life with updates)
Other Required Materials:
Software Requirements: VirtualBox for Intel based Windows and Intel Macs
Parallels Pro for M1/M2 Macs
50% off Parallels Pro 1 year subscription license for Education -> https://www.parallels.com/landingpage/pd/education/
Introduction to Open Source Operating Systems - Master's
Illinois Institute of Technology via Coursera
-
206
-
- Write review
Overview
Syllabus
- Module 1: The History and Philosophy of Unix and Linux Free and Opensource Software
- Welcome to Introduction to Opensource Operating Systems! Module 1 offers a deep dive into the rich history of the Unix operating system, covering seven pivotal periods from its inception in 1969 up to today. Students will explore the developments and the philosophy that shaped Unix during its formative years and how it has continued to influence modern computing paradigms. Emphasis is placed on recognizing the seminal contributions of Unix's key architects and contributors, providing an understanding of the system's enduring legacy in today's technological landscape.
- Module 2: Navigating the Linux Desktop
- This module provides a comprehensive exploration of the Linux ecosystem, beginning with the function and features of package managers and App stores, which streamline software installation and management. Students will understand the roles of window managers and desktop environments in shaping user interaction, as well as the intricacies of display protocols like X and Wayland. The course demystifies the various types of desktop Linux, delves into the practicalities of compiling source code, and explains the concept and diversity of Linux distributions. Comparing the major distribution families, the module also equips students with the skills to utilize virtualization platforms for deploying different Linux distributions.
- Module 3: Introduction to the Linux Editors and Shell Scripts
- Module 3 turns the spotlight on the powerful capabilities of the Linux command line, providing learners with the expertise to leverage the significance of shell meta-characters in expanding shell functionalities. This shows the power of text commands and the major concept of shell scripting in Linux. We will introduce you to the grep command for intricate search operations and replacements using shell meta-characters as well. Students will grasp the essentials of input/output redirection and using Linux pipes. We will be focusing on the nuances of standard input, output, and error. Key concepts such as file permissions, and security nomenclature will be explained. The course also covers the role of the Linux Shell within the OS and the use of absolute and relative paths, all while demystifying the structure of the Linux Filesystem for efficient system navigation and management.
- Module 4: Intermediate Shell Scripting
- Module 4 empowers students with the skills to automate routine tasks in Linux using shell scripts. We will incorporate positional parameters and control structures to give your scripts logic. Students will learn to declare and understand the scope of system environment variables. The course also explains the manipulation of the system PATH, modifications to user profiles, and the automation of tasks through shell scripting. Additionally, students will become familiar with the capabilities of the vi(m) editor, and distinguish between stream editors and text editors, laying a solid foundation for advanced text processing and system administration in a Linux environment.
- Module 5: Introduction to System Administration
- Module 5 provides a deep understanding of Linux system administration, starting with the sudo command's crucial role in maintaining root user security. Students will learn the processes for creating and managing user accounts, as well as the significance and analysis of system logs for maintaining system health and security. The coursework introduces essential system tools for ongoing monitoring and reporting, and presents the "3Ps" (Path, Permission, and Dependencies) troubleshooting methodology. Additionally, the module covers secure remote access techniques, ensuring students can administer Linux systems effectively while upholding stringent security standards.
- Module 6: Introduction to Managing Linux Processes and Filesystems
- This module focuses on the Linux boot process by breaking it down into its three fundamental phases, providing a clear explanation of what occurs during each stage. Students will compare the traditional SysVinit system with the newer systemd init system, gaining insight into their differences, functionalities, and service management techniques. Focusing on system tools for process examination, this module clarifies the purposes of Linux systemd service files. It also delves into the structure and management of filesystems, including a comparison of different Linux filesystems, the mechanics of virtual disk creation and attachment, and the fundamentals of Logical Volume Management. Additionally, the course covers efficient command-line tools for compression, archiving, disk utilization, and mounting, equipping students with practical skills for comprehensive system management.
- Module 7: Introduction to Networking, Databases, and Web Technologies
- This module equips students with the essential knowledge to configure, manage, and troubleshoot basic network settings on Linux operating systems. The course also provides introductions to configuring and deploying major webserver platforms. Students will learn to install and configure popular opensource SQL databases, gaining practical database management skills. And lastly, this module covers the selection and configuration of desktop-based firewalls and Linux networking.
- Module 8: Introduction to Automation
- This module addresses the critical role of automation in Linux systems, outlining the challenges it solves by streamlining and simplifying complex tasks. Students will be introduced to the current landscape of orchestration and automation tools, with a particular focus on the contributions of Hashicorp to the field. They will learn the processes for automating the installation of Linux operating systems and discover solutions for deploying complete applications using automation tools. Additionally, the course delves into the concept of secrets management within automated environments, teaching students how to securely handle sensitive information in an automated and scalable manner.
- Summative Course Assessment
- This module contains the summative course assessment that has been designed to evaluate your understanding of the course material and assess your ability to apply the knowledge you have acquired throughout the course. Be sure to review the course material thoroughly before taking the assessment.
Taught by
Jeremy Hajek