DEPARTMENT:
COURSE TITLE:
COURSE NUMBER:
Computer Science
Unix Operating System
MCO 245
PREREQUISITES:
CREDIT HOURS:
DEVELOPER:
LAST UPDATE:
MCO 232
3
Shmuel Fink
August 19, 2003
COURSE DESCRIPTION
This course introduces students to advanced features of the UNIX Operating System. Student will gain valuable in-depth knowledge of the entire UNIX environment and the inner workings of this operating system.
COURSE/DEPARTMENTAL OBJECTIVES
The student will:
Acquire general knowledge of how the shell parses the command line
Understand the Unix file system and how to work with files and directories
Comprehend both hardware and software features of main memory and auxiliary storage
Become comfortable working in the Windows 2000/XP environment
Learn how to read man pages and use commands never used before
COURSE/INSTITUTIONAL OBJECTIVES
This course will fulfill the following institutional goals:
To promote traditional study of liberal arts and sciences and foster programs with promote academic excellence and a high level of scholarship;
To enhance critical thinking and foster communication skills;
To promote development of student’s analytical and quantitative competencies and to foster their ability to succeed in a technological society;
To further the professional career interests and aspirations of students in a broad range of liberal arts, pre-professional and professional studies.
1
COURSE CONTENT
The Unix Operating System
Getting Started
An Introduction to the Utilities
The File Structure
The Shell
The vi Editor
The Bourne Shell
Programming Tools
Networking and the Internet
HARDWARE/SOFTWARE/MATERIALS REQUIREMENTS
Large screen monitor or projector
Internet connection
Telnet software
One account for each student on a Unix server
COURSE REQUIREMENTS
2 exams given during the semester
Cumulative final exam
Homework assignments
Hands-on lab exercises
GRADING POLICY
Students must take two exams in addition to the final exam
Students must complete all assigned lab projects.
Students must complete designated homework assignments
Cumulative final exam must be given at least a 33% weight in the student's semester grade.
METHODOLOGY
Lectures should be enhanced using the following teaching tools: textbook, handouts, large screen monitor, and white board. Each lecture should use a minimum of two of the above to clearly communicate information. When using the large screen monitor to review a software application, also use the white board to emphasize any commands that are introduced or reviewed. Oral
2
lecturing exclusively without handouts, reference to the textbook, or use of the whiteboard; is deemed insufficient. Students must be required to login to the Unix server to practice the commands they have learned.
COURSE TEXT
Title:
Author:
ISBN:
Unix System V: A Practical Guide, 3
Mark G. Sobell
0-8053-7566-X
Published: 09/30/1994 rd
Edition
Publisher: The Bejamin/Cummings Publishing Company
BIBLIOGRAPHY
2
3
Title:
Author:
UNIX: The Textbook
Syed Mansoor Sarwar, Robert Koretsky, Syed Aqeel Sarwar
ISBN: 0-201-61260-7
Published: 08/03/2000
Publisher: Addison-Wesley
COURSE OUTLINE:
CLASS TOPICS
1 Introduction to the Unix Operating System
Brief overview on computer architecture.
What is an Operating system?
How does the operating system interact with hardware, compiler, and user programs.:
Examples of various operating systems designs.
What is Unix? What is the history and background of Unix?
How Unix differs and compares with other operating systems.
What is the 'Kernel' ?
What is Multi-user/Multi-processing/Time sharing
The Unix environment.
What is a terminal and how does the terminal interacts with the Unix system.
What are Control characters ?
What is a 'Login' and how is it used ?
What is a 'Password' and how is it used ?
What does the command environment look like ?
What does 'Type-ahead' mean and how it differs with other operating systems.
What does 'Logging out' mean ?
What is meant by the 'User environment' ?
What is the 'Shell' ?
How does the Shell compare with the 'command.com' of DOS.
3
5
4
6
7
8
How the shell and Kernel interact.
What are the different Shells ?
What is a 'Process' ?
What is a 'Parent process' ?
What is meant by a 'Process Id' ?
How does the user environment affect a process ?
What is a file ?
What is a filename ?
What is meant by file permissions ?
What are the different type of files in a Unix system ?
How does a 'User' interact with the 'Shell' ?
What is a '.' file ?
How does one create a file ?
What is the 'ed' editor ?
What is the 'cat' and 'pr' command ?
What is the 'more' command ?
What is the 'ls' command and what it is used for ?
How does one copy, move and delete a file ?
What is a directory ?
How does one navigate through the directory tree ?
What is the 'cd' command ?
What is the 'mkdir' and 'rmdir' commands ?
What is the 'cp' and 'mv' command ?
What is the 'pwd' command ?
What is the 'cpio' command and how to use it to backup files?
What is the 'wc' command and what it is used for ?
What is the 'grep' command and the different ways it is used?
What is the 'sort' command and the different ways it is used?
What is the 'tail' command ?
What is the 'diff' command ?
What is the 'cmp' command ?
What is the 'find' command ?
(Review) what is the shell ?
What is the '.profile' file ?
What is the 'echo' command ?
What is standard input/standard output/ standard error ?
What is input redirection ?
What is output redirection ?
What are 'Pipes' and what are they used for ?
Putting commands together to preform task (from command line).
Putting commands together to preform task (from a file).
What is a shell program ?
How does the shell program differ from the 'Dos' Batch file ?
What are shell expansion characters.
4
11
12
10
13
14
9
What are shell arguments ?
What is the 'read' command ?
What is the 'chmod' command?
What is the 'chown' command ?
How does one use the shell programming environment to preform important tasks ?
What is 'sed' and 'awk' and how are they useful in shell
Shell program examples.
What does a background process mean ?
What is the '&' symbol and when is it used ?
What is the 'ps' command and when is it used ?
What is the 'kill' command ?
What is the 'wait' command ?
More Shell examples using redirection and pipes.
Understanding the programming environment.
What is a File System ?
How does the user work with different file systems ?
What are the terms inodes and superblock ?
What is the 'set' command.
What does an enviromental variable mean and how does it effect the user environment?
What does the 'PATH' mean and how does one change it ?
What is the 'export' command.
What is the 'ln' command ?
Shell interactive programming.
What is the 'if then/else/fi' commands ?
What is the 'case/esac' commands ?
What is the 'for', 'while do', 'until' commands ?
What is a 'signal' in the Unix environment ?
Setting and catching 'traps' and 'signals'.
More shell programming.
More Shell programming.
More Shell programming.
What is a Unix device ?
What is a Unix device driver ?
The device driver mechanism in Unix.
Understanding the Unix 'C' programming environment.
15 More on 'C' programming environment.
Discussing IPC and Networking with Unix.
Shell command list who tee echo date ls tr sh pwd cat exec ps ps if/else/fi while/done export dd df case/esac for/done find
5
wc sort mv uname du cp id rmdir set env mkdir chmod cd chown
Terms to Know
TTY LOGIN cpio
DEVICE
GETTY
PASSWORD
INIT
FORK
EXEC
MASKS
DEVICE DRIVER tail rm ln uid
SERIAL COMMUNICATIONS
INTER PROCESS COMMUNICATION (IPC)
KERNEL
SHELL
PERMISSIONS
TERMINAL CONTROL CHARACTER
ATTENDANCE:
All students are expected to maintain good attendance throughout the course. Instructors must put percentages for all criteria for marks i.e. midterm, final, quizzes, class work, projects and home work assignments on course outline. Note: Attendance can not be used as a criteria to determine final grade.
6