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.
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:
“Solid Linux or UNIX Operating System experience.”
“Proven shell/Perl scripting skills.”
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.
The instruction on UNIX will include the following topics:
history of the UNIX operating system and its derivatives
comparison of UNIX with Microsoft Windows
conceptual model of the UNIX operating system
command-line usage
command shell scripting
scripting languages
installation of a UNIX-like operating system
administration of a UNIX-like operating system
upgrading of a UNIX-like operating system
third-party software installation and upgrading
security
networking
graphical user interfaces available for UNIX-like operating system
popular command-line and graphical applications available for UNIX-like operating systems
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).
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.
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.
The UNIX-like operating systems we will use in this portion of the program will have the following attributes:
amenable licensing terms
open-source
transparency
instructor familiarity
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:
not having to pay any money to use the operating systems
lack of restrictions on what we do with the operating systems
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.
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.
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.
I know FreeBSD better than any other UNIX-like operating system.
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. |
Here's a detailed list of topics that will be covered in class, in the order in which they will be covered.
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.
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.
Trademark issues (why I keep referring to UNIX-like operating systems). Multi-user and multi-tasking.
Shells provide command-line interfaces to the kernel.
The command-line interface is still critical to UNIX use.
One root directory in a single directory hierarchy. Multiple drives can be mounted at mount points in that hierarchy.
Most everything looks like a file.
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).
Piping in process control allows multiple single-function software tools to be joined to accomplish complex tasks.
Users, groups of users, and the superuser (root).
Special groups (e.g., wheel).
Viewing and setting permissions on files and directories.
POSIX, X/Open
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)
--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
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.
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
touch – create an empty file
cp – copy a file
diff – specify differences between two files
mv – rename/move a file
rm – remove/delete a file
mkdir – create a directory
cd, pwd
mv – moves a directory
rmdir – remove/delete a directory
file – discovers type of a file
Star, question mark, and bracket pairs special characters for file names in command arguments.
Who, w, finger
command-line IM: write, mesg, wall
ls -l, chmod
Problems with changing to a directory referred to by a symbolic link
Shell identification via ps.
Stdio, stdout, stderr
I/O Redirection
/dev/null
pipes
filters
Invoke, invoke in background, suspend, kill, fg, bg, jobs, ps
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
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.
Bzip, gzip, tar, cpio, pax
(e|f)grep
(g)awk
sed
This is a big topic. I'll have more details later.
Another topic that's a class all by itself.
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.
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.
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.
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.
UNIX has a file system with a single root. Windows has a file system with multiple drives, each of which have a root.
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).
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.
System configuration files in the /etc directory
Application configuration files in the /usr/local/etc directory
Get a Removable Hard Disk from IT
Install and Remove Removable Hard Disk
Obtain Installation CD-ROM(s)
Set up machine to boot off CD-ROM
Unplug machine from the network
Install FreeBSD 6.0 and application packages
Customize kernel
Set up firewall
Plug machine back into network
Set up NTP daemon
Portupgrade
cvsup(_without_gui)
fastest_cvsup
Build and install any software required for backups
Dump and restore
Backup to CD-ROM or DVD-ROM (mkisofs, cdrecord)
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
Numeric identifier for the level of restrictions related to changes to system-critical files.
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.
Chroot is common among UNIXes. Jail is unique to FreeBSD.
fpm (Figaro's Password Manager)
Word processors, spreadsheets, presentation builders, low-end databases. OpenOffice, AbiWord.
GNUCash is roughly a Quicken/MSMoney equivalent.
Firefox, Konqueror, links, lynx
Evolution, Kmail, Thunderbird, mutt, pine, mail.
Heavyweight and lightweight.
WindowMaker
Whois, traceroute, nslookup/host, tcpdump, netstat, sockstat, ifconfig
Copyright ©
2006 Robert J. McDonald All rights reserved Last saved on