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.