We may earn an affiliate commission when you visit our partners.
Course image
Jeremy Hajek

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.

Read more

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/

Enroll now

What's inside

Syllabus

Module 1: The History and Philosophy of Unix and Linux Free and Opensource Software
Welcome to Introduction to Open Source Operating Systems! Module 1 offers a deep dive into the rich technological and philosophical history of the Unix operating system, covering two pivotal periods: from its inception in 1969 to 1984, and from 1984 to 2015. Students will explore the groundbreaking developments and the ethos 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 a comprehensive understanding of the system's enduring legacy in today's technological landscape.
Read more
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 distros, offering a holistic view of Linux's framework and its applications.
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 grep command for intricate search operations and replacements using shell meta-characters. Students will delve into techniques for locating files and directories within the filesystem, and grasp the essentials of input/output redirection and piping, including the nuances of standard input, output, and error. Key concepts such as file permissions, security nomenclature, and the significance of shell meta-characters in expanding shell functionalities will be explained. The course also covers the fundamentals of traversing the filesystem with shell commands, 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 the cron scheduling service and to craft effective shell scripts incorporating positional parameters. Students will learn to declare and understand the scope of system environment variables, and to construct conditional statements within Bash scripts for logical flow control. 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" (Problem, Procedure, and Prevention) 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 targets and service levels. 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. It introduces fundamental network diagnostic tools to maintain connectivity and system integrity. The course also provides in-depth training on configuring and deploying major webserver platforms, allowing students to compare and discuss the applications of leading open-source webservers within the industry, with a focus on securing webserver configurations. Students will learn to install and configure popular SQL and NoSQL databases, gaining practical database management skills. And lastly, this module covers the selection and configuration of desktop-based firewalls, ensuring students can secure Linux systems effectively against network threats.
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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops skills, knowledge, and tools core to an IT career
Taught by instructor recognized for their work in Unix and Linux
Examines industry-standard Linux operating system and its applications
Covers software licensing and business strategies, which are relevant to learning about the industry
Course includes interactive hands-on labs and materials
Requires learners to come in with no prior experience or knowledge

Save this course

Save Introduction to Open Source Operating Systems - Bachelor's to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Introduction to Open Source Operating Systems - Bachelor's with these activities:
Review previous coursework or study materials related to Linux fundamentals.
Refreshes existing knowledge, providing a solid foundation for the course's advanced concepts.
Browse courses on Linux Fundamentals
Show steps
  • Gather old notes, textbooks, or online materials on Linux fundamentals.
  • Review key concepts such as system architecture, file systems, and command-line basics.
  • Identify areas where your knowledge is weak and focus on those.
  • Consider taking practice quizzes or tests to assess your understanding.
Create a notebook to compile and organize course materials.
Encourages active engagement and organization, promoting better retention and understanding.
Show steps
  • Create a new notebook or document.
  • Divide the notebook into sections for each module or topic.
  • Take notes during lectures and add them to the notebook.
  • Summarize key concepts and definitions.
Create a glossary of key Linux commands and definitions.
Enhances vocabulary and understanding of essential Linux commands, facilitating quick reference during the course.
Browse courses on Linux Commands
Show steps
  • Create a new document or spreadsheet.
  • List down key Linux commands and their descriptions.
  • Organize the commands into categories or subtopics.
  • Include examples and usage scenarios for each command.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Complete the tutorials on the official Linux Foundation website.
Provides guidance from an authoritative source, reinforcing concepts covered in the course.
Browse courses on Linux
Show steps
  • Go to the Linux Foundation website.
  • Find the tutorials section.
  • Choose a tutorial that aligns with the course topics.
  • Follow the tutorial steps and complete the exercises.
Install and configure a Linux operating system in a virtual machine.
Provides hands-on experience in setting up a Linux system, a fundamental skill for this course.
Browse courses on Virtual Machine
Show steps
  • Download and install a virtualization software such as VirtualBox or VMWare.
  • Download an ISO image file of a Linux distribution, such as Ubuntu or CentOS.
  • Create a new virtual machine and configure the settings.
  • Install the Linux distribution on the virtual machine.
  • Configure basic network and system settings.
Provide support and guidance to other students in the course.
Reinforces understanding by explaining concepts to others and fosters a collaborative learning environment.
Show steps
  • Identify a topic or concept that you feel confident in.
  • Join the course discussion forums or online study groups.
  • Offer help and answer questions from other students.
  • Provide constructive feedback and support to enhance their learning.
Practice using Linux commands in a terminal.
Improves proficiency in using the command line, essential for navigating and managing Linux systems.
Browse courses on Linux Commands
Show steps
  • Open a terminal window in your Linux virtual machine.
  • Run basic commands such as 'ls', 'cd', 'mkdir', and 'cat'.
  • Experiment with different command options and flags.
  • Practice using pipes and redirection.
Contribute to an open-source project related to Linux.
Provides practical experience in working with Linux systems and contributing to the open-source community.
Browse courses on Open Source
Show steps
  • Find an open-source project on GitHub or other platforms that aligns with your interests.
  • Review the project's documentation and codebase.
  • Identify a small feature or bug that you can contribute to.
  • Create a pull request with your proposed changes.

Career center

Learners who complete Introduction to Open Source Operating Systems - Bachelor's will develop knowledge and skills that may be useful to these careers:
Open Source Developer
An Open Source Developer creates, maintains, and contributes to open source software projects. This course provides a deep understanding of open source software development methodologies and practices, giving a strong foundation for this career.
Linux Administrator
A Linux Administrator is responsible for managing and maintaining Linux-based operating systems, ensuring optimal performance, security, and reliability. This course provides comprehensive knowledge of Linux operating systems, including system administration, networking, and troubleshooting, making it an excellent choice for aspiring or current Linux Administrators.
Unix Administrator
A Unix Administrator manages and maintains Unix-based operating systems, ensuring optimal performance, security, and reliability. This course provides a comprehensive understanding of Unix operating systems, including system administration, networking, and troubleshooting, making it an excellent choice for aspiring or current Unix Administrators.
DevOps Engineer
A DevOps Engineer is responsible for bridging the gap between development and operations teams, ensuring seamless software delivery and maintenance. Understanding open source operating systems is crucial for this role, as many DevOps tools and technologies rely on open source software.
Systems Administrator
A Systems Administrator manages and maintains computer systems, ensuring optimal performance, security, and availability. This course may be useful as it covers fundamental concepts of system administration, including user management, file systems, and networking.
Security Engineer
A Security Engineer designs, implements, and maintains security measures for an organization's systems and networks. This course may be helpful as it introduces the fundamentals of operating system security, including concepts such as user permissions, firewalls, and intrusion detection.
Software Architect
A Software Architect designs and develops the architecture of software systems, ensuring optimal performance, scalability, and maintainability. This course may be useful as it provides a foundation in open source operating systems and their underlying concepts, which are often used in enterprise-scale software systems.
Network Administrator
A Network Administrator is responsible for managing and maintaining an organization's computer networks, ensuring reliable and secure connectivity. This course may be useful as it provides an introduction to networking fundamentals, including network configuration, security, and troubleshooting.
Software Designer
A Software Designer creates and maintains software designs, translating user requirements into technical specifications. This course may be useful as it provides an understanding of the technical aspects of open source operating systems, which can be valuable in software design.
Software Developer
A Software Developer creates and maintains software applications, utilizing programming languages and software tools. This course may be useful as it provides a foundation in open source operating systems, which are widely used in software development.
Software Engineer
A Software Engineer applies engineering principles to software development, ensuring reliability, maintainability, and efficiency. This course provides a strong foundation in open source operating systems, which are commonly used in software engineering.
Web Developer
A Web Developer creates and maintains websites and web applications, utilizing programming languages and web technologies. This course may be useful as it covers the basics of open source web technologies, providing a foundation for web development.
Information Security Analyst
An Information Security Analyst is responsible for protecting an organization's computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course may be useful as it introduces the fundamentals of open source operating system security, providing a foundation for understanding and implementing security measures.
Technical Support Analyst
A Technical Support Analyst provides technical support to users, resolving hardware, software, and network issues. This course may be useful as it provides an introduction to open source operating systems, which are often used in enterprise environments.
Chief Technology Officer
A Chief Technology Officer (CTO) leads and manages an organization's technology strategy, infrastructure, and operations. This course may be useful as it introduces the core concepts and practices of open source operating systems, providing a strong foundation for understanding the technical aspects of a company's infrastructure.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Introduction to Open Source Operating Systems - Bachelor's.
The Linux Administration Handbook is considered by many to be a standard reference for anyone who operates a Linux system. Topics such as user management, software installation, security, and shell scripting are covered.
Provides insights into the challenges of software engineering.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Introduction to Open Source Operating Systems - Bachelor's.
Introduction to Open Source Operating Systems - Master's
Most relevant
Intel® Network Academy - Network Transformation 102
Most relevant
Enterprise GIS Made Easy
Most relevant
Using Open Source Tools to Create an Enterprise GIS
Getting Started with MariaDB
PCB design with KiCad - updated for KiCad 7
Tomcat Administration Deep Dive
Number Sense for Primary Education with PhET Simulations
Open Source Software Development: Linux for Developers
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser