ULI101 Week 1

From CDOT Wiki
Revision as of 16:07, 4 September 2017 by Mark (talk | contribs) (Welcome to ULI101)
Jump to: navigation, search

Week Overview

  • Course introduction
  • Obtaining your Seneca accounts
  • Changing passwords
  • The Matrix server
  • The role of an operating system
  • '*nix' overview
  • Open source philosophy
  • Linux GUI
  • The terminal window
  • Secure communication with the Matrix server

Welcome to ULI101

  • The Internet has become part of our daily lives. Although we use it every day, few of us have a real understanding of the underlying technologies.
  • This course will introduce and teach you:
    • How to interact with the Linux operating system from the command line
    • Networking concepts, such as connecting to a remote server through a client program running on a local computer
    • Automation of simple tasks through scripting
  • Think of this course as learning how to text the Linux/Unix operating system. So while it may seem strange at first, you will get it after a while and before you know it, you will get more automation done with fewer keystrokes.

Important Information

  • The website for this course is: https://cs.senecac.on.ca/~fac/uli101/ — it contains weekly slides, assignment details, and other important information for the course.
  • Please make certain that you read through the course outline, which states what this course will cover, how you will be evaluated, and the course policies relating to late assignments or missed tests.
  • Your professor will give you additional details which may override or supplement the information on the course website (for example, your section’s test and assignment dates may vary).
  • Topics such as course introduction, evaluation policies, student conduct, and where to obtain notes/resources are usually discussed in the first class.

Definition - Operating Systems

A computer can’t do anything useful without a program — a program is defined as data and a list of instructions to follow.

An operating system (OS) is a collection of programs which manage and control the basic operation of the computer, including:

  • Allocating resources (memory, disk space, network bandwidth, access to devices)
  • Managing files
  • Starting, stopping, and controlling other programs
  • Enforcing basic system security

Evolution

Unix OS

Unix is an operating system originally developed at Bell Labs starting in 1969. Unix is:

  • a portable, interactive, multitasking, multiuser operating system.
  • written in a language that can be used on different types of computers (the C language)
  • interactive - i.e. users can use the computer directly, and immediately see the results of their actions
  • a multitasking environment - the operating system creates the illusion of performing multiple tasks at the same time by rapidly switching between them
  • a Multi-user environment - it provides features necessary to support multiple users, including file security and the ability to interact with several people at once
  • Unix became very popular because Bell Labs (AT&T) distributed it at almost no cost to colleges and universities, which then taught students operating system programming using the Unix source code; these students later entered the industry and wanted to continue to use this powerful, familiar operating system.
  • Hardware vendors appreciated an operating system which could easily be configured for new hardware, rather than reinventing the wheel each time a new family of computers was introduced. In fact, Unix/Linux now runs on system ranging from watches to huge mainframes.
  • Unix and the Internet grew up hand-in-hand (the DARPANET project, precursor to the Internet, was approved in April 1969 — the same month that Bell pulled out of the Multics project and began the development of Unix; throughout the history of the Internet, the Unix OS has provided its platform.

Linux and GNU

Although Unix source code was widely distributed at low cost to educational institutions, it was still controlled by AT&T and was therefore never completely free (cost) nor free (unrestricted freedom to modify and use it).

  • Richard Stallman published the GNU Manifesto in 1984, which described the need for Free Software (“Free in the sense of free speech, not free beer”).
    • The resultant GNU project developed free, open source replacements for most of the Unix programs, but not for the Unix kernel (the core program that interacted with and controlled the hardware).
    • These programs were released under the GNU General Public License (GPL), which permits anyone to copy, use, and modify the software, as long as these rights are preserved for anyone receiving a subsequent copy of the software.
  • In 1991, Linus Torvalds, a Finnish computer programmer, released the Linux kernel, eventually placing it under the GPL.
    • The Linux kernel, GNU software, and some other components can be combined into a powerful, Unix-like operating system (it can’t technically be called Unix, because it has never been certified to be Unix, but virtually everyone in the industry regards it as such).

The combined GNU and Linux system is called GNU/Linux by some but just Linux by others (much to the dismay of Richard Stallman, who feels that the simple name Linux downplays the tremendous contribution made by the GNU Project).

Using Linux/Unix at Seneca

Throughout your studies at Seneca you will use a variety of Unix/Linux systems, including:

  • SIRIS - Registration & Information System (register for courses, timetable, view final grades)
  • MATRIX - Practice & perform Linux commands
  • SCS - main Computer Studies web server
  • MY.SENECACOLLEGE.CA (Blackboard) - College LMS
  • With rare exceptions (notably my.senecacollege.ca), most college servers are available under servername.senecac.on.ca

Matrix Server

The Matrix server consists of many PCs connected together to form a Linux cluster. A cluster is a cost effective alternative to mainframe computing.

Matrix Server

  • Note that the workstations in the labs form part of the Matrix group. When you boot (startup) a PC in a S@Y lab, you are given the choice of starting Windows or starting Linux.
  • If you choose Linux, your PC will join the Matrix cluster, and you will have direct access to your files, the Matrix printers, the database server, and so forth.
  • You should choose the Matrix login whenever possible to get the most productive work environment for this course
  • You can also connect to Matrix from a Windows system, but in such case you are usually limited to a terminal window

Obtaining Your Matrix Account

  • Once you obtain your student card and have access to college email, you will need to create an account on Matrix using a web browser
  • You can complete this step from one of the school labs or your home computer
  • You will need to use the Windows login in the lab - Create a matrix account with: https://matrix.senecac.on.ca/webadmin/agree/agreement.php
  • Please complete this as soon as possible so you can start working on the labs right away
  • Please contact Information Technology Services https://inside.senecacollege.ca/its/index.html in case of problems

User names and passwords

  • Most servers at Seneca are accessible using your “My Seneca” user name and password
  • Your Seneca password must be changed periodically as per college policy
  • Use the appropriate link at: https://my.senecacollege.ca
  • The college Password Service enforces certain rules when creating passwords - please read the instructions on the password creation/change page
  • It is extremely important to guard your accounts from unauthorized access - make sure that you password is hard to guess (but easy to remember for you) and always log off whenever leaving the lab

Interacting with Unix/Linux

Traditionally, interaction with Unix and Linux servers is conducted:

  • Using terminals (sometimes called shells), which connect remotely to the server. This provides users with a Command Line Interface (CLI). Users can use the server from other operating systems.
  • With a more advanced setup, users can interact with the OS using:
    • Graphical User Interface (GUI) similar to the one found in a desktop or laptop operating systems.
    • Touch User Interface (TUI) and Voice User Interface (VUI) found on smartphones.

Between all types of user interfaces, the humble CLI (from the beginning of the computing era) that is a terminal window interacting is still the most efficient way to interact with the operating system, especially for advanced users, administrators, and programmers.

Insecure Communication (Legacy)

In the Seneca Computer System Overview, you are shown the use of the telnet application to connect to your Matrix account. When the telnet application runs and connects to the server, it acts like a terminal that is physically connected to the computer. In this case, the monitor is the telnet window on your PC, and accepts keyboard entry.

The Telnet application was invented in 1972, and many versions of this applications are still available for many operating systems (eg. Windows, Linux, Unix, Apple-Macintosh). A major weakness of the Telnet is the lack of security. Another individual could easily view or capture a user’s keystrokes when using the telnet application including passwords! Today, Telnet is a legacy application, used rarely or for testing purposes - you should always communicate with servers using encrypted connections.

Secure Communication

SSH or “secure shell” application allows data (i.e. keystrokes) to be encrypted to prevent other people intercepting this information. Other than that, the functionality overlaps with telnet. In the Seneca Labs in MS Windows, there is an application on the desktop called SSH Client. You are advised to use this application. You can download or buy SSH applications for your PC at home. On a Unix/Linux host ssh is available on the command line:

# ssh username@host for example:
$ ssh user@matrix.senecac.on.ca