<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://spo600.proximity.on.ca/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://spo600.proximity.on.ca/feed.php">
        <title>Chris Tyler's Wiki - ops102</title>
        <description></description>
        <link>http://spo600.proximity.on.ca/</link>
        <image rdf:resource="http://spo600.proximity.on.ca/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-21T22:02:22+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_1&amp;rev=1741705907&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_2_-_loops&amp;rev=1741665286&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:brainteaser_more&amp;rev=1718322116&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:filesystem_basics&amp;rev=1714786862&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:file_globbing_common_commands_and_text_editors&amp;rev=1716578126&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:file_management_practice&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:introduction_to_operating_systems&amp;rev=1735831371&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:more_solution&amp;rev=1718322298&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:pathname_practice&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:permissions&amp;rev=1716931648&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:public_key_cryptography&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:redirection&amp;rev=1714789614&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:regular_expressions&amp;rev=1743482530&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:resources_and_processes&amp;rev=1750160097&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:screen_tutorial&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:software_management&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:ssh&amp;rev=1713291008&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:start&amp;rev=1741188180&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:using_cut_with_spaces&amp;rev=1741187914&amp;do=diff"/>
                <rdf:li rdf:resource="http://spo600.proximity.on.ca/doku.php?id=ops102:windows_scripting&amp;rev=1750163330&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://spo600.proximity.on.ca/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Chris Tyler's Wiki</title>
        <link>http://spo600.proximity.on.ca/</link>
        <url>http://spo600.proximity.on.ca/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bash_scripting</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting&amp;rev=1713291008&amp;do=diff</link>
        <description>Bash Scripting

What is a script?

A shell script is a computer program which is interpreted by an operating system shell.

Scipts are used to automate procedures that could be manually performed from the command line. They can potentially save a huge amount of time by eliminating repetitive commands. For example, if you're going to compile and test a program 100x, and each compilation and test cycle requires 25 steps (commands), you're looking at performing 2500 steps. It's much more efficient …</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_1&amp;rev=1741705907&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-11T15:11:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bash_scripting_1</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_1&amp;rev=1741705907&amp;do=diff</link>
        <description>Bash Scripting 1

What is a script?

A shell script is a computer program which is interpreted by an operating system shell.

Scipts are used to automate procedures that could be manually performed from the command line. They can potentially save a huge amount of time by eliminating repetitive commands. For example, if you're going to compile and test a program 100x, and each compilation and test cycle requires 25 steps (commands), you're looking at performing 2500 steps. It's much more efficien…</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_2_-_loops&amp;rev=1741665286&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-11T03:54:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bash_scripting_2_-_loops</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:bash_scripting_2_-_loops&amp;rev=1741665286&amp;do=diff</link>
        <description>Bash Scripting 2: Loops

Looping in Bash

There are four types of loops in bash:

	*  for VARIABLE in LIST
	*  for (( ; ; ))
	*  while EXPR
	*  until EXPR

In every case, the actual body of the loop is contained within do ... done keywords.

for VARIABLE in LIST</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:brainteaser_more&amp;rev=1718322116&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-13T23:41:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>brainteaser_more</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:brainteaser_more&amp;rev=1718322116&amp;do=diff</link>
        <description>Brainteaser: More

Here's an interesting thing to think through:

Normally, the standard input (stdin) of a program is used for input from the terminal. For example, the nano editor uses stdin to get keystrokes from the user.

The output of any command or program that produces a lot of text can be piped into the</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:filesystem_basics&amp;rev=1714786862&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-04T01:41:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>filesystem_basics</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:filesystem_basics&amp;rev=1714786862&amp;do=diff</link>
        <description>Filesystem Basics

Hierarchical File Systems

Most modern computers are equipped with one or more random-access storage devices -- either a mechanical hard disk drive (HDD), or a fully electronic solid state disk (SSD). Both of these provide a numbered set of blocks or sectors, each of which stores a set amount of data (typically 512 or 1024 bytes).</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:file_globbing_common_commands_and_text_editors&amp;rev=1716578126&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-24T19:15:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file_globbing_common_commands_and_text_editors</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:file_globbing_common_commands_and_text_editors&amp;rev=1716578126&amp;do=diff</link>
        <description>File Globbing, Common Commands, and Text Editors

Filename Patterns

Linux and Windows systems both allow ambiguous filenames, which use wildcard symbols to enable filename matching. The process of converting an ambiguous filename, or filename pattern, into a list of matching filenames is called</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:file_management_practice&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file_management_practice</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:file_management_practice&amp;rev=1713291008&amp;do=diff</link>
        <description>File Management Practice

Exercise 1

Purpose: To practice creating directories, copying files between directories, and moving files between directories on a Linux system.

Perform these steps on Matrix or another Linux system:

	*  Create a directory in which to practice (for example,</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:introduction_to_operating_systems&amp;rev=1735831371&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-02T15:22:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>introduction_to_operating_systems</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:introduction_to_operating_systems&amp;rev=1735831371&amp;do=diff</link>
        <description>What is an Operating System?

An operating system (OS) does exactly what the name states: It is software that operates a computer system!

Not all computers have had or required an operating system. Particularly simple computers, including the earliest models of both business computers and microcomputers, as well as very simple embedded computers, do not require an operating system. The computer embedded into a simple mass-market microwave oven, for example, only ever runs one program, does not …</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:more_solution&amp;rev=1718322298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-13T23:44:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>more_solution</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:more_solution&amp;rev=1718322298&amp;do=diff</link>
        <description>Solution: More

Start with the Brainteaser: More page.

Did you solve the problem?

If the stdout of the more (or less) program is tied up with input from another process, the two remaining standard file descriptors (stdout and stderr) are still connected to the terminal.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:pathname_practice&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pathname_practice</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:pathname_practice&amp;rev=1713291008&amp;do=diff</link>
        <description>Pathname Practice

Here's a tool for practicing converting pathnames between relative, relative-to-home, and absolute formats:

	*  Login to matrix.senecacollege.ca (using SSH)
	*  Run this command: 
~chris.tyler/public/pathpractice

	*  That command will generate a challenge based on real files that are available on Matrix. The system will show you your home directory and current directory as well as a filename, and the ask you to type in the filename converted to a different format. You will h…</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:permissions&amp;rev=1716931648&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-28T21:27:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>permissions</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:permissions&amp;rev=1716931648&amp;do=diff</link>
        <description>Permissions

In multi-user operating systems it is important to be able to control access to information. This is usually done at the file and directory levels.

Discretionary versus Mandatory Access Controls

There are two broad categories of access controls applied to files and directories:</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:public_key_cryptography&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>public_key_cryptography</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:public_key_cryptography&amp;rev=1713291008&amp;do=diff</link>
        <description>Public Key Cryptography

Overview

Public-key cryptography underlies virtually all e-commerce, online banking, and telecommunications systems.

In a nutshell, public key cryptography works like this:

	*   A large random number is generated.
	*   That number is used to derive two mathematically-related but different keys. Each key is also a large number.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:redirection&amp;rev=1714789614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-04T02:26:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>redirection</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:redirection&amp;rev=1714789614&amp;do=diff</link>
        <description>Redirection

Standard File Descriptors

On Linux, other Unix-like systems, and on Windows, programs may open file descriptors (Linux terminology) or file handles (Windows terminology). Each file descriptor/handle is a numbered channel connected to a file or device.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:regular_expressions&amp;rev=1743482530&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-01T04:42:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>regular_expressions</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:regular_expressions&amp;rev=1743482530&amp;do=diff</link>
        <description>Regular Expressions

Regular Expressions are search patterns for “Regular Text”. They are used by many different tools and languages, including the Linux grep command, the Windows findstr command, less, vi/vim, sed, awk, perl, python, and many others.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:resources_and_processes&amp;rev=1750160097&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-17T11:34:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>resources_and_processes</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:resources_and_processes&amp;rev=1750160097&amp;do=diff</link>
        <description>Resources and Processes

Computer Resources

Every digital computer system has finite resources, managed by the operating system.

One or more of these three broad categories of resources constrain (limit) the system's ability to execute each running program:</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:screen_tutorial&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>screen_tutorial</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:screen_tutorial&amp;rev=1713291008&amp;do=diff</link>
        <description>Screen Tutorial

When performing a long interactive operation such as a complex test or build over a remote connection (such as SSH), any network interruption such as a temporary break in WiFi connectivity or relocating from one pace to another will interrupt the operation and force you to start over.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:software_management&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>software_management</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:software_management&amp;rev=1713291008&amp;do=diff</link>
        <description>Software Management

Slides on the topic of software installation and management (temporary)</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:ssh&amp;rev=1713291008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-16T18:10:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ssh</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:ssh&amp;rev=1713291008&amp;do=diff</link>
        <description>SSH

SSH is the Secure Shell, a powerful encrypted communication tool. This page contains some basic information about the use of SSH.

SSH Software

SSH client and server programs are included with almost all Linux distributions, Mac OS, and recent versions of Windows (later updates of 10 as well as 11). You can obtain SSH client and server software for most other platforms, including Android.</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:start&amp;rev=1741188180&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-05T15:23:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:start&amp;rev=1741188180&amp;do=diff</link>
        <description>OPS102: Operating Systems for Programmers

This course is an introduction to operating systems for programmers and developers. It provides a general introduction to the concepts and use of the most popular contemporary operating systems.

Topic Overview</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:using_cut_with_spaces&amp;rev=1741187914&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-05T15:18:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>using_cut_with_spaces</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:using_cut_with_spaces&amp;rev=1741187914&amp;do=diff</link>
        <description>Using the &quot;cut&quot; Command with Spaces

The cut command is useful when you want to cut out a specific portion of text lines.

You can do this by character position:

 $ ls -l /etc/hosts | cut -c 2-10
 rw-r--r--

And you can do this by delimeter (separator symbol). For example, the file /etc/passwd consists of lines with multiple fields of data, separated by the colon (:) symbol. Here, I find the line for my account, and then cut out field 5 (the full name):</description>
    </item>
    <item rdf:about="http://spo600.proximity.on.ca/doku.php?id=ops102:windows_scripting&amp;rev=1750163330&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-17T12:28:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>windows_scripting</title>
        <link>http://spo600.proximity.on.ca/doku.php?id=ops102:windows_scripting&amp;rev=1750163330&amp;do=diff</link>
        <description>Windows Scripting

Windows vs. Linux Scripting

Windows shell scripting is similar to Linux shell scripting in many ways.

However, since Windows and Linux (and other Unix-like operating systems) have different technical heritages, some of the syntax and approaches are very different.</description>
    </item>
</rdf:RDF>
