Unix Operating System II
ITSW 2436 (Formerly CISC 2490)
S Y L L A B U S
All Sections




This syllabus is intended as a set of guidelines for the Unix Operating System II course. North Lake College and your instructor reserve the right to make modifications in content, schedule, and requirements as necessary to promote the best education possible within prevailing requirements affecting this course.




North Lake College   Lead Instructor: Dr. Tim Gottleber
5001 N. MacArthur   Office: T- 129
Irving, TX   Phone 972-273-3459
(3459 campus)
    E-mail: ttg@dcccd.edu

COURSE DESCRIPTION

This course continues the development of Unix concepts and tools. Topics include advanced file system management, additional editors, text formatting, multi-tasking support and advanced shell programming.

Prerequisite: Successful completion of CISC 1406 (formerly CISC 1480), passing the Unix II qualifying test, or other demonstrated competence approved by the instructor is required.
(4 Credits {hours: 3 lecture 3 lab})

COURSE FOCUS

This course is designed to enable the student to continue their exploration of the Unix operating system. It will provide the student the opportunity to: develop additional kills using the two common Unix editors; craft additional, complex shell scripts; learn more uses for Unix tools like awk and sed; examine some of the internal processes of the operating system; and gain a better understanding of Unix processes.

TEXT AND REFERENCES

There are three required texts for this course:

The Harley Hahn's Student Guide to Unix, by Harley Hahn, published by McGraw-Hill. ISBN 0-07-025492-3

UNIX in a Nutshell by Daniel Gilly published by O'Reilly & Associates, Inc. ISBN 1-56592-001-5

UNIX II Notes and Lab Guide by Dr. Tim Gottleber.

Additional Unix reference books may prove helpful, however they are optional. Three that are very highly recommended are the sed & awk book by Dougherty, and Learning the vi Editor by Lamb, both are published by O'Reilly & Associates, Inc. and The Unix Philosophy by Mike Gancarz published by Digital Press.

{Note: no Unix user or programmer can have too many Unix books ;-) }

For a real interesting read, pick up:
Unix System Architecture, by Prabhat K. Andleigh, published by Prentice Hall.

COURSE GOALS (or objectives)

The following list of course goals will be addressed in the course. (* designates a CRUCIAL goal)
SCANS data are included.
There is an explanation of SCANS available.

Goal Scans Competency/ Foundation Evaluation
Architecture and Theory:
*1. Describe the concept of a Virtual Machine F1, F5, F7, F12, F17 Examination
*2. Distinguish between an Interrupt and a Signal F1, F5, F7, F12, F17 Examination
3. Describe process management F1, F5, F7, F12, F17 Examination
4. Explain memory management with multiple processes F1, F5, F7, F12, F17 Examination
*5. Distinguish between real and virtual memory F1, F5, F7, F12,F17 Examination
6. Describe CPU usage and sharing among processes F1, F5, F7, F12,F17 Examination
7. Explain file/data access methods F1, F5, F7, F12,F17 Examination
8. Describe the general system usage accounting services F1, F5, F7, F12,F17 Examination
9. Utilize the Unix user command interface F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18,C19, C20 Completion of Lab assignments
*10. Characterize the features of Unix commands F1, F5, F7, F12,F17 Examination
11. Identify Unix system services F1, F5, F7, F12,F17 Examination
*12. Describe the levels of Unix system software from Kernel to user written code F1, F5, F7, F12,F17 Examination
13. Differentiate between Kernel space and User space F1, F5, F7, F12,F17 Examination
14. Execute specific Kernel commands F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18,C19, C20 Completion of Lab assignments
*15. Identify Unix structures including but not limited to: Page table entry, Virtual Address Structure, Process Table entries, Disk Inodes, File Structures, I/O buffers. F1, F5, F7, F12,F17 Examination
16. Describe Unix system calls F1, F5, F7, F12,F17 Examination

17. Use both named and unnamed pipes

F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
*18. Describe the physical organization of a Unix file system F1, F5, F7, F12,F17 Examination
19. Explain disk caching F1, F5, F7, F12,F17 Examination
*20. Define standard Unix I/O F1, F5, F7, F12,F17 Examination
21. Distinguish between NFS and RFS F1, F5, F7, F12,F17 Examination
22. Interpret context switching F1, F5, F7, F12,F17 Examination
23. Explain the process creation (vfork) procedure F1, F5, F7, F12,F17 Examination
*24. Distinguish between swapping and paging F1, F5, F7, F12,F17 Examination
25. Examine porting issues F1, F5, F7, F12,F17 Examination
*26. Demonstrate how to write "portable code" F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Writing portable code for the labs.
27. Define the POSIX Interface Standard F1, F5, F7, F12,F17 Examination
Editors:
*28. Use the vi editor to perform tasks as required by the lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
*29. Use the ex editor to perform tasks as required by the lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
*30. Use the sed editor to perform tasks as required by the lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
Other Unix tools and features:
*31. Write awk scripts to perform text manipulation F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
32. Write awk scripts to perform file access F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
*33. Use awk scripts to generate meaningful reports F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
34. Handle arrays using awk F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
35. Create useable user interfaces using awk F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
*36. Use nroff to perform simple text formatting F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
37. Write Bourne shell scripts to fulfill the lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
38. Write Korn shell scripts to fulfill lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
39. Write Tcsh shell scripts to fulfull lab exercises F1, F5, F7, F12, F17, C1, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20 Completion of Lab assignments
40. Present a topic to the class F1,F6, F13, F14, F15, F16, C1, C3, C4, C5, C6, C7, C10 Delivering a presentation
*41. Work as a member of a team F1, F2, F5, F6, F7, F8, F9, F12, F13, F14, F15, F16, F17, C1, C4, C5, C6, C7, C9, C10, C12, C13, C14 Work as a member of a team.
42. Demonstrate regular attendance F8, F11, F13, F15, C1 Regular attendance

STUDENT CONTRIBUTIONS

Each student will spend at least 12 hours per week preparing for class. Attendance at each class meeting is critical and required in this class. The student is expected to complete each lab assignment using either the computers at North Lake College, or their own computer running a Unix operating system (or a variant which conforms to the general Unix standard). (The Linux operating system is considered an excellent choice for a 386/486/586/Pentium machine.)


COURSE EVALUATION

Your lab exercises and exams grades will be on a point basis, and the points you accumulate through the semester will result in a grade being assigned as is explained below.

There will be two (2) tests, each worth 150 points. (300 points total.)
12 required lab assignments worth 15 points. (180 points total.)
Some of these labs will have extra credit opportunities as well

A group/team presentation of some facet of Unix. That presentation will be worth up to 50 points.

at least one optional lab assignmens that will serve as an extra credit opportunity.

Attendance/class participation is critical to student success, and regular attendance (missing no more than 1 class meeting) will be awarded 20 points.

This gives a grand total of 550 points without extra credit.

Grades will be assigned on the following scale:
A= 495 points and above (90%)
B= 494 - 440 points (80%)
C= 439 - 385 points (70%)
D= 384 - 330 points (60%)
F= fewer than 330 points :-(




COURSE SCHEDULE

The class meets for 6 hours per week. This time will be divided between lecture, exercises, and lab assignments. The actual amount of time in each of these areas will vary depending on the topic under discussion.

Addendum B is a tentative listing of the topics and reading assignments for each week.

GROUP PRESENTATION:

One of the mainstays in the Unix world is that we Unix folks share what we learn. That makes it possible to continue to grow without re-inventing the wheel. Another facet of this world is that most of us work in groups or teams. You will be randomly assigned to a two person team that will last for the duration of the course. We will discuss all the ramifications of the team concept during the first class. Since you are now Unix wizards, you have the responsibility to share your knowledge with the rest of the Unix world, represented here by the class.
Therefore you will be asked to research, prepare and present one Unix topic or tool, outside the prescribed range of the course, that you have discovered, use, or have developed. Please schedule with your instructor when you would like to present your material. It can be in the form of a demonstration or presentation, and a LAB. Your goal is to impart new knowledge to this microcosm of the Unix universe. There are two restrictions:
First, you may not present system administration type topics, that will be covered in another class, and you will not be allowed to have root access so don't depend on that.
Second, plan to spend 30 minutes to one hour in your presentation. Try to have the lab constructed so that it can be completed during the class session. Please discuss all topics with your instructor before you begin working on them.

Standards:

Most companies require their scriptors to follow as set of standards, we too have standards to which your scripts must adhere. Please review the standards document and build all your scripts to those standards.

ADDENDUM A:

PERFORMANCE OBJECTIVES

  1. The student will not be allowed references. The student will identify the components of a Virtual Machine. Performance will be satisfactory if the student identifies the components of a Virtual Machine in a way consistent with the text and with class discussion.

  2. The student will not be allowed references. The student will distinguish between an Interrupt and a Signal. Performance will be satisfactory if the student can successfully distinguish between an Interrupt and a Signal in a way consistent with class discussion and the text.

  3. The student will not be allowed references. The student will describe the concepts of process management in a Unix environment. Performance will be satisfactory if the student can describe Unix process management in a way consistent with class discussion and the text.

  4. The student will not be allowed references. The student will explain the process of Unix memory management among multiple processes. Performance will be satisfactory if the student can successfully describe memory management among multipel Unix processes in a manner consistent with class discussion and the text.

  5. The student will not be allowed references. The student will distinguish between real and virtual memory. Performance will be satisfactory if the student correctly distinguishes between real and virtual memory.

  6. The student will not be allowed references. The student will explain how Unix shares the CPU among multiple processes. Performance will be satisfactory if th studetn can successfully describe how Unix shares the cpu among multiple processes in a manner consistent with class discussion and the text.

  7. The student will not be allowed references. The student will explain Unix file access methods. Performance will be satisfactory if the student can successfully describe Unix file access in a manner consistent with class discussion and the text.

  8. The student will not be allowed references. Teh student will explain the Unix accounting methods. Performance will be satisfactory if the student can successfully describe Unix accounting services in a manner consistent with class discussion and the text.

  9. The student will be allowed references. The student will utilize the Unix command interface. Performance will be satisfactory when the student uses the Unix command interface to perform actions as directed by the lab and the instructor.

  10. The student will not be allowed references. The student will describe the general features of Unix commands. Performance will be satisfactory if the student describes the general features of Unix commands in a way consistent with the text and class discussion.

  11. The student will not be allowed references. The student will explain the Unix system services. Performance will be satisfactory if the student can successfully describe 8 of the general Unix system services in a manner consistent with class discussion and the text.

  12. The student will be allowed references. The student will describe the levels of software between the user written code to the Kernel code. Performance will be satisfactory if the student correctly identifies the levels of code between a user written script and the Kernel.

  13. The student will not be allowed references. The student will differentiate between Unix Kernal space and user space. Performance will be satisfactory if the student can successfully differentiatebetween Unix Kernal space and user space in a manner consistent with class discussion and the text.

  14. The student will be allowed references. The student will execute various elements of Unix Kernel code. Performance will be satisfactory if the student can correctly run specific Kernel commands.

  15. The student will be allowed references. The student will identify various Unix structures including but not limited to:
         Page Table entries
         Virtual Address Structures
         Process Table entries
         Disk Inodes
         File Structures
         I/O Buffers
    Performance will be satisfactory if the student correctly identifies the structures listed above, and can name elements of those structures.

  16. The student will not be allowed references. The student will describe Unix system calls. Performance will be satisfactory if the student describes the physical organization of a Unix file system in a manner consistent with descriptions in the text and in the lecture.

  17. The student will not be allowed references. The student will use both named and unnamed pipes in the lab environment. Performance will be satisfactory if the student correctly uses both named and unnamed pipes in the completion of the lab exercises.

  18. The student will not be allowed references. The student will describe the physical organization of a Unix file system. Performance will be satisfactory if the student describes the physical organization of a Unix file system in a manner consistent with descriptions in the text and in the lecture.

  19. The student will not be allowed references. The student will describe disk caching in a Unix system. Performance will be satisfactory if the student correctly describes disk caching in a Unix system in a manner consistent with descriptions in the text and in the lecture.

  20. The student will not be allowed references. The student will describe the standard for Unix I/O. Performance will be satisfactory if the student describes the standard Unix Input and Output files in a manner consistent with the documentation on the system.

  21. The student will not be allowed references. The student will distinguish between NFS and RFS in a Unix system. Performance will be satisfactory if the student correctly distinguishes between NFS and RFS in a Unix system in a manner consistent with the text and the lecture.

  22. The student will not be allowed references. The student will describe interrupt context switching. Performance will be satisfactory if the student describes interrupt context switching in a manner consistent with the text and the lecture.

  23. The student will not be allowed references. The student will explain the steps in the process creation (vfork) procedure. Performance will be satisfactory if the student correctly explains the steps in the process creation procedure in a manner consistent with class discussion and the text.

  24. The student will not be allowed references. The student will differentiate between swapping and paging. Performance will be satisfactory if the student describes the differences between swapping and paging in a manner consistent with the text and the lecture.

  25. The student will not be allowed references. The student will examine porting issues in Unix. Performance will be satisfactory if the student describes the issues involved in porting to different shells in the Unix environment, in a manner consistent with the text and the lecture.

  26. The student will not be allowed references. The student will describe the criteria necessary to create code that is portable from one Unix system to another. performance will be satisfactory if the student describes those criteria that are deemed critical to creating portable code as documented in the lecture and in the text.

  27. The student will not be allowed references. The student will describe the importance of the Posix Interface Standard. Performance will be satisfactory if the student describes the significant issues involved in the Posix Interface Standard, in a manner consistent with the text and the lecture and research.

  28. The student will be allowed references. The student will use the vi editor to perform a series of edits on text files. Performance will be satisfactory if the student performs the edits required on the files as directed by circumstances and laboratory exercises.

  29. The student will be allowed references. The student will use the ex editor to perform a series of edits on text files. Performance will be satisfactory if the student performs the edits required on the files as directed by circumstances and laboratory exercises.

  30. The student will be allowed references. The student will use the stream editor (sed) to perform a series of edits on text files. Performance will be satisfactory if the student performs the edits required on the files as directed by circumstances and laboratory exercises.

  31. The student will be allowed references. The student will use the Unix awk tool to perform text manipulation. Performance will be satisfactory if the student uses the awk tool to perform text manipulation to fulfill the requirements of laboratory exercises in a manner that does not generate awk or Unix errors.

  32. The student will be allowed references. The student will use the Unix awk tool to perform file access and manipulation. Performance will be satisfactory if the student uses the awk tool to access files and manipulate their contents to fulfill the requirements of laboratory exercises in a manner that does not generate awk or Unix errors.

  33. The student will be allowed references. The student will use the Unix awk tool to perform file access. Performance will be satisfactory if the student uses the awk tool to access Unix files to fulfill the requirements of laboratory exercises in a manner that does not generate awk or Unix errors.

  34. The student will be allowed references. The student will use the Unix awk tool to create a useful user interface. Performance will be satisfactory if the student uses the awk tool to create useful user interfaces to fulfill the requirements of laboratory exercises in a manner that does not generate awk or Unix errors.

  35. The student will be allowed references. The student will use nroff to format a file according to directions provided in a laboratory exercise. Performance will be successful if the student uses nroff to generate a document of the form specified by the instructor without generating either Unix or nroff errors.

  36. The student will be allowed references. The student will use one or more of the commands available in the Bourne shell to create code in a script to solve problems posed in the lab. Performance will be successful if the student uses Bourne shell commands to build scripts to fulfill the requirements of laboratory exercises in a manner that does not generate Bourne shell errors.

  37. The student will be allowed references. The student will use one or more of the commands available in the Korn shell to create code in a script to solve problems posed in the lab. Performance will be successful if the student uses Korn shell commands to build scripts to fulfill the requirements of laboratory exercises in a manner that does not generate Korn shell errors.

  38. The student will be allowed references. The student will use one or more of the commands available in the Tcsh shell to create code in a script to solve problems posed in the lab. Performance will be successful if the student uses Tcsh shell commands to build scripts to fulfill the requirements of laboratory exercises in a manner that does not generate Tcsh shell errors.

  39. The student will present a lecture to the class presenting an area of Unix that is not usually covered in the curriculum. Performance will be satisfactory if the student presents material to the class in a manner designed to convey information.

  40. The student will work as a member of a team. Performance will be satisfactory if the student works with another student throughout the semester, performing as a productive and reliable member of a team, working to master the material presented.

  41. The student will demonstrate regular attendance. Performance will be satisfactory if the student regularly attends class in compliance with the college policy which states:

    "Students are expected to attend regularly all classes in which they are enrolled. Students have the responsibility to attend class and to consult with the instructor when an absence occurs."

    Because so many concepts in this course build on previous lectures and experience, regular attendance is vital.




Please also give careful attention to the following:

1. Cheating: It is possible to obtain another student's work, modify it slightly, and turn it in as your own. When you are caught cheating you will receive a performance grade of F for this course. In addition, other action may be taken as described in the Student Code of Conduct. Cheating robs two people of their rightful reward: the person from whom you copy is deprived of their right to the copyrighted work they did and you are deprived of the learning experience you could have had. No one benefits from cheating, it will not be tolerated.
Besides, cheating is contrary to the mindset of a real Unix person.

This does not mean I discourage discussion with your fellow students. I encourage you to discuss solutions to problems from class with other members of the class. In this class I encourage you to work in a group. I will expect that the assignments you hand in will be based upon group effort. All I ask is that you put the names of all the participants in the group on whatever you hand in. That way I can know who to credit. What I am trying to avoid is identical work, claimed for independent credit by two or more people.

2. Ethical computer usage: While this topic encompasses the problem of cheating listed as item one, it is a far larger issue than simply cheating in class. Any attempt by any student to compromise the integrity of the computer lab, classroom computers, or other instructional or administrative machines or steal or damage the software or hardware at North Lake or on other networked computers will be dealt with in the most severe manner possible.

You may not load personal software on any machine at North Lake College, nor may you copy software from any North Lake College computer without prior, written permission from both your instructor and the data processing department.

Along this same line, it is improper to use the computer resources of the college to copy another's paper or other assignments to be submitted as your own. Please use our equipment in an ethical manner. If you have any question as to the proper/ethical use of this equipment, please feel free to discuss it with your instructor prior to such use.

Finally, you will be using the Internet to connect your lab machine to the Unix computer(s) at North Lake College. Please restrict your Internet usage, during assigned lab and lecture time, to activities DIRECTLY related to your course. Do not use the INTERNET connection to play games, check your private (and non-class) E-mail or perform other non-class related activities. If you have an off-campus Internet provider, you may use that provider to log into the North Lake College machines to work on your homework during non-class hours. It will be to your advantage to be able to access the Unix servers from home. If you are working from home, the same rules of proper usage apply. Do not download files across the Internet that are not directly related to your course work in Unix II. You must also read and follow the DCCCD AUP.

ADDENDUM B:

ITSW 2436 Advanced Unix
Tentative Course Schedule

Listed below is a tentative schedule of the topics for lectures for the Unix Operating System II course. Please note: the student is expected to read the material in the text, and in other references if available, before the class session in which the topic is discussed.


Week # Topics
1 Intro/Overview/history
general comments/ The Unix Philosophy

Leveling/Review/Refresh


2 sed review

Leveling/Review/Refresh


3 awk review

Leveling/Review/Refresh


4 Introduction to the Korn shell

Leveling/Review/Refresh


5 Unix Architecture/user commands

Advanced ed and ex


6 vi reveiw and enhancements

Advanced vi


7 Other scripting languages, (perl, tcl, python, etc.)

Using a scripting language


8 File Processing (theory)
Standard FIles and redirection
Presentation 1

Interesting commands and ideas
sort/cut/paste/join etc.
MID TERM


9 Memory and memory management
Presentation 2

Process creation and management
signals and semaphores
Presentation 3

10 Process creation and management cont.

Pipes, unnamed and FIFO
Presentation 4

11 Remote control
Presentation 5

Text formatting with nroff
Presentation 6

12 Another shell, tcsh

Power tools (grep/sed/awk)
Presentation 7

13 OH NO!!! CGI
Necessary HTML, forms and CGI scripting

Common Gateway Interface scripts
Presentation 8

Back to the Bourne Shell!
14 Shell "stuff" and scripting

Shell "stuff" and scripting
Presentation 9

15 Shell "stuff" and scripting

Shell "stuff" and scripting
Presentation 10

Final Exam In class + Take Home



NOTE The instructor reserves the right to modify this schedule depending upon occurrences during the semester, the particular needs of the class, or other unforeseen events which would necessitate schedule modification to best meet the educational needs of the class.

Return to the Mad Dr.'s Page