UNIX for Video Engineers Page 12 of 12

1Introduction

The Broadcast Television Engineering Technology program at Napa Valley College includes instruction related to the UNIX operating system. The class on UNIX for video engineers prepares broadcast TV students for usage and administration of various UNIX-like operating systems currently in common use at television stations and other enterprises that handle digital audio and video.

2Background

Companies involved with video are looking for people with video engineering background and computer operation, software development, and computer administration skills. For example, a recent job posting by Sony for a “Senior Production Services Technician” position has the following job description:

The Senior Production Services Technician position is a great opportunity for technical individuals with an interest in visual effects to assist in the production of feature films. This group is responsible for managing all data for a particular show, including file backup and retrieval, monitoring of renders and image processes, and various troubleshooting tasks.

The job posting lists the following as two of the three required technical qualifications:

3Mission

The mission of this portion of the BTV program is to ensure you can succeed at interviewing for such positions by being able to handle questions pertaining to your knowledge and experience with UNIX and UNIX-like operating systems, and to succeed at jobs that require you to have such knowledge and experience. As a side benefit, you will also be able to set up your own computer to run a UNIX-like operating system, and continue your education in that way.

4Overview

The instruction on UNIX will include the following topics:

5Educational Alternatives

Napa Valley College doesn't teach this material. The closest it comes is a class on UNIX usage; the class was offered last fall, but was cancelled since there were only four students who enrolled in it. Otherwise, the computer class offerings are based on Microsoft Windows. Also, the college IT department is Windows-centric, doubtlessly due to lack of resources for administering multiple operating systems. This spring would likely be a good time for us to study this material since we will likely have our hands full next year with electronics.

Santa Rosa Junior College teaches a class on UNIX usage, which includes some basic system administration and shell script writing. See Brian Hughes for more details.

The community college in San Francisco teaches a class on UNIX usage. See Will for more details; he plans on taking the class this spring.

Consider these alternatives, and come up with others if you can. This class needs to fit your needs, so if you are all taking a class on UNIX somewhere else, this class can adjust to add what's not being presented in the class(es) you are taking elsewhere (and we can spend the extra time on the other material we need to learn).

6Limitations

We could fill a full-time course of study on just the above topics, including the extensive laboratory exercises that you would need to complete. For example, Napa Valley College offers a three-unit class (CISN 165) just on computer security (3 class hours per week) in Spring 2006. We already are involved in a full-time course of study for television engineering, and Steve already must squeeze in an enormous amount of material to comply with SBE certification of our program, so we have to limit the coverage of this aspect of the program.

6.1System Administration

Aspects of system administration not directly pertaining to video-specific usage will not be covered; for example, we won't cover how to install and configure web servers, email servers, printing subsystems, or SQL databases unless we can see a specific need for that knowledge in careers in video engineering.

7Choice of UNIX-like Operating Systems

The UNIX-like operating systems we will use in this portion of the program will have the following attributes:

7.1License Terms

Since there are freely-available versions of UNIX-like operating systems, we will be using some of them for our studies. This means free as in:

Commercial versions often require license fees or other expenses to use them, and there are often license restrictions under which we would be obligated and could incur legal and financial liability were we to operate outside of those restrictions. The program can't afford to pay these fees, nobody wants to waste our limited time ensuring we are in compliance with restrictive operating system licenses, and there is no need to subject the college to potential legal liability.

7.2Open-source

Since open-source software is an important movement within computing today, and because unrestricted access to operating system source code may be useful to us, we will choose freely-available UNIX-like operating systems that are developed as open-source software.

7.3Transparency

You'll learn more about UNIX if you work with flavors of UNIX that don't hide the gory and boring details about installation and configuration.

7.4Instructor Familiarity

I know FreeBSD better than any other UNIX-like operating system.

7.5Choices

I'll cover the following UNIX-like operating systems.

Operating System

Details

FreeBSD

The laboratory portion of the course will be oriented around FreeBSD. The computer laboratory room that we will be using for the course contains a computer running FreeBSD 5, and we will be using that computer for some of our lab exercises. We will also be using FreeBSD for the system installation and administration instruction and laboratory exercises.

OpenBSD

OpenBSD is generally regarded as having a superior security record, and is similar to FreeBSD in its design lineage and license agreement.

Linux

I'll cover Linux in mentioning its differences from BSD operating systems.

HP/UX

I'll cover HP/UX, at least in mentioning its differences from BSD and Linux operating systems, because our video server runs HP/UX.



8Lesson Plan

Here's a detailed list of topics that will be covered in class, in the order in which they will be covered.

8.1Introduction

Why we are learning UNIX in the Broadcast TV Engineering Tech program (for those who didn't read this document). An overview of the material to be covered (this lesson plan). Pretty much going over this document for those who didn't download it.

8.2UNIX History

Starting with Bell Labs, going to U.C. Berkeley and AT&T, spreading from there. Sun Microsystems. Linux. BSD derivatives. I'm not going to spend a lot of time on this at this stage, I'm just providing some context that ends up actually being useful in fitting this bulk of information into your heads.

8.3UNIX Conceptual Model and Philosophy

Trademark issues (why I keep referring to UNIX-like operating systems). Multi-user and multi-tasking.

8.3.1Partitioning: Kernel and Shells

Shells provide command-line interfaces to the kernel.

8.3.2Interface

The command-line interface is still critical to UNIX use.

8.3.3File System

One root directory in a single directory hierarchy. Multiple drives can be mounted at mount points in that hierarchy.

8.3.4Devices and Hardware Management

Most everything looks like a file.

8.3.5Process Control

Create, monitor, suspend, resume, and kill processes. Ability for the output of one process to be piped to the input(s) of (an)other process(es).

8.3.6A Software Tool Does One Job Well

Piping in process control allows multiple single-function software tools to be joined to accomplish complex tasks.

8.3.7Security

Users, groups of users, and the superuser (root).

Special groups (e.g., wheel).

Viewing and setting permissions on files and directories.

8.3.8Standards

POSIX, X/Open

8.4Command Line Usage

8.4.1Logging In and Logging Out

Remote logins: telnet, SSH, rsh.

Account/user name and password case-sensitive

MOTD. Last log in time.

Command syntax. Arguments: options, parameters.

Hostname command.

Uname command.

Date command.

Sleep command.

Change password using the passwd command. Discuss password choices.

Logout methods: exit, logout, control-D (EOF)

8.4.2Help

--help argument for GNU utilities

man pages for operating system commands and installed application commands

info piles for utilities

FreeBSD handbook

which and whereis

Locate/slocate

apropos

8.4.3Home Directory

Basic file system list/read commands: ls, cat, head, tail, more, less.

Directory contents: dot, double-dot.

Hidden files are files whose names start with a dot.

Overview of default configuration and shell startup files and directories; not much detail on them yet, just know that's the usual location.

8.4.4Files and Directories

Good file and directory name conventions: 0-9, a-z, A-Z, underscore, period, comma, no spaces.

Absolute and relative pathnames.

Tilde metacharacter.

Go over these commands

Star, question mark, and bracket pairs special characters for file names in command arguments.

8.4.5User Information

Who, w, finger

command-line IM: write, mesg, wall

8.4.6File/Directory permissions

ls -l, chmod

8.4.7Standard locations for files

8.4.8Links (Hard and Symbolic)

Problems with changing to a directory referred to by a symbolic link

8.4.9Shells

Shell identification via ps.

8.4.10Command Line Input and Output (I/O)

Stdio, stdout, stderr

I/O Redirection

/dev/null

pipes

filters

8.4.11Process control

Invoke, invoke in background, suspend, kill, fg, bg, jobs, ps

8.4.12The vi Editor

Teaching this rather than emacs because Linux comes with emacs (I believe) but other free open source operating systems don't.

Command to start vi

Input mode: entering, exiting

Saving work

Exiting vi

Starting vi on a file from the command line

Moving around in the file (up, down, left, right, next word, previous word, end of word, beginning of word, end of line, beginning of line, page up/down, half-page up/down, first line of file, last line of file)

File statistics (control-G)

Opening a new file

Going back to the previous file

Reading in a file

Open new line

Delete line

Change word

Delete word

Replace letter

Substitution

Changing multiple words

Buffers: yank/put, named buffers

Markers (m and ' commands)

Undo

Repeat last command

Search (include search metacharacters)

Search and replace

Join

Parameters: number/nu

Shell escape

8.4.13Source Code Control Systems

Rcs, sccs, cvs, subversion, Perforce at least defined

Concepts common to source code control systems: code line, deltas, branches, merging, backporting, forward porting.

Work with rcs: ci, co, rcsdiff, rlog, RCS subdirectory, rcs keywords for expansion

Lab: customize shell startup files.

8.4.14File compression, file archiving

Bzip, gzip, tar, cpio, pax

8.4.15Text Processing

(e|f)grep

(g)awk

sed

8.4.16Shell Programming

This is a big topic. I'll have more details later.

8.4.17Perl Programming

Another topic that's a class all by itself.

8.5UNIX and Microsoft Windows

8.5.1Relationship Between File Type and File Name Extension

Windows depends on those last few letters after the final dot in the file's name to categorize the file by type. UNIX ignores the file name in typing the file.

8.5.2Command-line Connections

In UNIX, any command line connection can conceivably do anything on the machine. In Windows, the user logged into the console can conceivably do anything, but users logged in as clients of services don't have that same potential. Windows supports multiple consecutive users and UNIX supports multiple concurrent users.

8.5.3Embedded Spaces in Filenames

On UNIX, try to avoid including spaces in filenames. This is actually true for Windows, also, but seems to have more impact on UNIX because UNIX users use the command line more.

8.5.4Symbolic Links

UNIX has symbolic links, Windows doesn't. Symbolic links are incredibly useful. Microsoft keeps adding stuff to its filesystem to approach the functionality of symbolic links, but has never really gotten there.

8.5.5File System Rootedness

UNIX has a file system with a single root. Windows has a file system with multiple drives, each of which have a root.

8.5.6Locations of System and Applications Files

UNIX has standard locations for system and application files. Microsoft Windows uses a registry to record locations of system and application files (Windows also has standard locations for some system files).

8.5.7Application Installation and De-installation

On UNIX, generally applications can be installed and uninstalled without rebooting. UNIX machines rarely need reboots; operating system upgrades are an exception, as are application installations/upgrades on a machine run at a high security level (defined in the class). Windows machines frequently require reboots after application installation and deinstallation.

8.6System Administration

8.6.1System Directories and Their Contents

System configuration files in the /etc directory

Application configuration files in the /usr/local/etc directory

8.6.2Becoming Superuser

8.7System Installation

8.7.1Preparation

Get a Removable Hard Disk from IT

Install and Remove Removable Hard Disk

Obtain Installation CD-ROM(s)

8.7.2Installation

Set up machine to boot off CD-ROM

Unplug machine from the network

Install FreeBSD 6.0 and application packages

8.7.3System Post-installation

Customize kernel

Set up firewall

Plug machine back into network

Set up NTP daemon

8.7.4Building Applications Software from Source Code

Portupgrade

cvsup(_without_gui)

fastest_cvsup

Build and install any software required for backups

8.7.5System Backups

Dump and restore

Backup to CD-ROM or DVD-ROM (mkisofs, cdrecord)

8.7.6System Upgrade from Source

Cvsup and supfiles – cvsup_without_gui for server machines

Put supfiles under source code control in /root.

make system

Build upgraded system from source

Install upgraded system

8.8Security

8.8.1Security Level

Numeric identifier for the level of restrictions related to changes to system-critical files.

8.8.2Portaudit

Database of security flaws. Daily analysis and report of any installed packages that have known security issues. Refusal to build/install package versions with known security issues.

8.8.3Chroot and Jail

Chroot is common among UNIXes. Jail is unique to FreeBSD.

8.8.4Password Manager

fpm (Figaro's Password Manager)

8.9Popular Applications

8.9.1Office Productivity

Word processors, spreadsheets, presentation builders, low-end databases. OpenOffice, AbiWord.

8.9.2Financial applications

GNUCash is roughly a Quicken/MSMoney equivalent.

8.9.3Web browsers

Firefox, Konqueror, links, lynx

8.9.4Email clients

Evolution, Kmail, Thunderbird, mutt, pine, mail.

8.10Popular Graphical User Interfaces

Heavyweight and lightweight.

8.10.1GNOME

8.10.2KDE

8.10.3NextStep derivatives

WindowMaker

8.11Networking

8.11.1TCP/IP/UDP/ICMP

8.11.2IP Addresses

8.11.3Subnets

8.11.4Gateways

8.11.5Routing

8.11.6Other Protocols

8.11.7Domain and Machine Naming

8.11.8Tools

Whois, traceroute, nslookup/host, tcpdump, netstat, sockstat, ifconfig



Copyright © 2006 Robert J. McDonald All rights reserved Last saved on 14. Jan. 2006 23:25:56