The Unix Model Curriculum is a detailed plan for teaching all the important concepts necessary for an introductory course in Unix and Linux. The Unix Model Curriculum was developed by Harley Hahn to help instructors decide which topics to teach and the order in which to teach them.
A Unix-Neutral Approach to Teaching
One of the goals of the Unix Model Curriculum is to ensure that students become comfortable using any type of Unix or Linux, in their own language, anywhere in the world. This goal is promoted in several ways.
First, it is a core principle that students should be educated generally enough as to be able to use any major type of Unix as well as the most important shells. Specifically, students should be comfortable, not only with Linux, but with System V-based Unix (such as Solaris), and BSD-based Unix (such as FreeBSD and Mac OS X). Moreover, students should understand the basic operation of the most important shells: Bash (the default Linux shell); the Korn shell (the modern version of the Bourne shell); and the Tcsh (the modern version of the C-Shell). After all, in the course of a lifetime, one will be called upon to use a variety of Unix and Linux systems. Thus, it behooves us to consider the studentís long-term needs, regardless of which system happens to be available at your particular school.
Toward this end, the curriculum introduces Unix and Linux by using a set of basic principles common to all Unix-like operating system. Where significant differences exist, they are taught as variations of the standard, ensuring that the student becomes comfortable with the most important, most enduring concepts.
A similar didactic approach is used with the shells. The student is introduced to the idea that there are the two main families of shells, each of which is explained in terms of the appropriate historical and technical background. The Korn shell and Bash are then introduced as members of the Bourne Shell family, while the C-Shell and the Tcsh are taught as being members of the C-Shell family. Because some of the details are complex, the book has numerous tables and explanatory notes that act as a reference, should the student need to switch from one operating system to another, or from one shell to another (as we all must do from time to time).
The second way in which a Unix-neutral teaching environment is developed concerns internationalization. In the early days (1970s and 1980s), all Unix systems were derived from either System V or BSD (see Chapter 2), both of which were U.S.-centric systems, based on the ASCII code.
Today, Unix and Linux systems are used widely, well beyond the United States. Indeed, the Linux kernel and the various Linux distributions are developed by volunteers from around the world. As a result, Unix has evolved into a true international operating system that supports much more than U.S. English and ASCII. For the beginner, the most significant concepts related to internationalization are locales, collating sequences, and character classes. These topics are discussed in detail as part of the treatment of filters and regular expressions.
Establishing and maintaining a Unix-neutral approach in our teaching leads the student to internalize the idea that Unix and Linux are global systems. In this way, the student develops the knowledge and skills to become conversant with any type of Unix or Linux he or she may be called upon to use.