CSC Ten Thirty: Module 1.1 Flashcards

Contents and Objectives

  • Focus on various operating systems and their properties.

  • Exercises will primarily use Linux to support learning.

  • A computer system consists of hardware, operating system, and applications.

  • Applications need data, highlighting the importance of managing systems and data.

Hardware and Virtual Systems

  • Hardware includes desktops, laptops, and tablets.

  • The course will primarily use virtual systems, running operating systems as virtual machines on top of hardware.

Components of an Operating System

  • The kernel is the core of the operating system, communicating with the hardware.

  • System libraries are shared between different applications, including user and system applications.

  • The kernel manages communication between applications and computer hardware.

  • The term "operating system" is often synonymous with the kernel, though technically, it includes various systems and services.

  • In Microsoft Windows, the windowing system is often considered part of the operating system, whereas in Linux, it's just another application.

Multi-User Systems and the Kernel

  • Typically, one person uses a personal computer at a time, possibly with multiple profiles.

  • Servers often have multiple users logged in simultaneously, sharing resources.

  • The kernel is the most important component of the operating system.

  • One definition of an operating system is solely the kernel, excluding user-oriented systems like shells, windowing systems, and desktop environments.

Kernel Functions

  • The kernel is the only executable running constantly and has access to system hardware.

  • It allocates hardware resources like CPU time and memory to applications.

  • The kernel schedules resource use fairly and efficiently.

  • End users do not directly interact with the kernel.

  • Command line interfaces use a shell to interact with the kernel via commands in the terminal.

  • Graphical User Interfaces (GUIs) in desktop environments allow users to interact with the kernel through windows, buttons, etc.

System Libraries

  • System libraries are used directly by applications.

  • Prewritten, compiled, reusable code allows applications to use the same libraries for similar functionalities (e.g., opening/editing files).

  • This allows application developers to focus on application-specific tasks, using system libraries for hardware and OS functionality.

  • Personal computers have tens of thousands of libraries installed.

  • Server systems only install necessary libraries, whereas personal computers include many libraries for potential future use.

  • Applications access subsets of available system libraries.

System Calls

  • One library contains system calls, which allow applications to make calls to the kernel (e.g., opening or reading files).

Common Operating Systems

  • Personal computers typically use POSIX family operating systems or Microsoft Windows.

  • POSIX standards encapsulate the original Unix operating system from the 1970s, with common system libraries, services, and applications.

  • Individual operating systems within the POSIX family vary and may have different kernels.

The POSIX Family

  • Linux is the most important POSIX operating system, with the Linux kernel.

  • Nowadays, "Linux" refers to more than just the kernel, including systems, applications, and libraries.

  • Other POSIX-like OS include Android, Chrome OS, and macOS.

    • Android uses a modified Linux kernel for mobile phones, with specific applications and libraries.

    • Chrome OS is similar to Android.

    • macOS is derived from Unix and is compatible with many Linux functions.

Microsoft Windows

  • Microsoft Windows uses its own kernel.

  • The system libraries and OS are closed source and proprietary.

  • Linux is fully open source and free for use.

Linux Kernel Details

  • The Linux kernel consists of over 30,000,000 lines of code, making it a large community project.

  • About 4,500 modules support specific hardware.

  • The core modules provide core kernel functionality and are included in almost all distributions.

  • The Linux kernel is robust and stable, making it popular for various systems.

  • It is free and open source, facilitating its use in different systems.

  • The kernel dynamically loads modules or drivers to communicate with available hardware components.

Linux Usage

  • The Linux kernel works on most computer hardware, from supercomputers to personal computers, phones, modems, and smartwatches.

  • Microsoft Windows is popular for desktop PCs and laptops.

  • Linux dominates server systems, scientific computing, and cloud computing.

  • Personal use of Linux on personal computers has increased due to newer desktop environments.

  • Microsoft is integrating Linux into its operating system with WSL (Windows Subsystem for Linux).

Linux Distributions

  • The term "Linux" means more than just the kernel.

  • There are many different Linux distributions available.

  • A distribution (distro) is a specific version of the Linux kernel, including at least one shell, which allows the user to interact with the kernel via command line instructions.

    • Shell: A program facilitating user-kernel interaction through command-line instructions.

  • Distros contain required POSIX command-line tools.

    • POSIX: Standard definition for an operating system, containing necessary tools for compliance.

Optional Components of Distros

  • Desktop Environment: Various options available in Linux, unlike Windows or macOS.

    • Users can choose and install different desktop environments based on preference and goals.

Features of a Linux Distribution

  • User applications: file manager, terminal emulator, browser, spreadsheet application, etc.

  • Themes.

  • Package manager: Used to install and maintain software.

  • Update cycle and support policy: Some have continuous updates; others freeze a version for long-term support before releasing a new version.

Focus on Linux

  • The course will focus on Linux in exercises, comparing and contrasting its properties with Windows and macOS.

  • Linux is free and open source, allowing for experimentation without license concerns.

  • Linux dominates servers and clouds.

  • DevOps (development and operations) roles are increasingly common, utilizing Linux-based tools.

Linux Strengths

  • Containerization: Enabled by Linux and a step further than virtualization.

  • Kernel stability: Linux kernel is extremely stable and versatile for various hardware.

  • Ease of updating: Control over updates and software installations.

  • Security and privacy: Linux is secure from malware.

Linux as a Tool

  • Linux is a tool that requires understanding its properties before choosing it.

  • Other operating systems might be better in certain circumstances.