Final Objective

In order to gain experience with mainframe system programming, management, and networking, the student's final objective is the development of an i386-based Unix (clone) system. In the final stage of the project, this system will begin service as a general-student-access dialup an internet services

that will provide basic internet services for student dialup access.

Each of the following objectives are necessary to accomplish this final objective.

In keeping with SRJC computer naming conventions, the name for this project (and, the name of the machine) will be "Nermal."

Unix is a trademark of AT&T. To describe the class of operating systems that behave like Unix, the student will use the term, "*nix."

Objective One

What are you planning to achieve?

The student plans to assemble all hardware and operating system components required to accomplish the final objective.

How do you intend to accomplish this?

This objective will be accomplished by acquiring the following basic resources, and orchestrating them into a usable system. To clarify...

"Acquiring resources" -- software sources and binaries will be downloaded off of various Internet anonymous FTP sites. These will be transferred to Nermal via floppy diskette as "tar" volumes (Tape ARchive). The floppy images for the initial operating system bootstrap, as well as the initial (floppy-based) root filesystem, will also be acquired.

"Orchestrating..." -- The initial, "installation-oriented" operating system will be used to prepare a hard disk for use, and create filesystems thereon. Critical applications (such as a C compiler, an editor, etc.) will be installed on the hard disk.

After the installation is completed and tested, The student will begin development and configuration of Nermal's own operating system, including

Configuring out devices that will not be used in the final system

(e.g., SCSI and mouse support)

Adding devices that will be used in the final system

(e.g., Ethernet and multi-port serial support)

Adding TCP/IP extensions

(...which are necessary for Nermal to provide Internet services).

Adding system and user application binaries. (e.g, telnetd, telnet, ftpd, ftp, mail, etc.)

Throughout the entire project, the student will maintain a system log of work completed or attemped on Nermal. Further, the student will ensure the supervising faculty member has complete access to the system (including the system log).

Hardware Resources:

Santa Rosa Junior College Computing Services has graciously provided hardware resources. (Contact: Dave Johnston, x4853). The completed hardware will be assembled from spare parts, which include

one 20 Mhz, i386-based computer (ISA architecture)

one hard disk drive with suitable space

a multi-port serial card, with at least four usable RS-232C connections

four rack-mounted Microcom (Hayes-compatible) RS-232C modems

one Western Digital model 8003e ethernet interface card.

Any of these resources may be removed from the project -- they are spares, and subject to use where a failure occurs. Dealing with unexpected re-allocation of these resources should be considered part of this project -- the supervisor faculty member will be notified of any such changes for evaluation purposes.

Software Resources:

Operating System

At least two i386-based *nix operating systems are available that require no licensing fees: 386BSD and Linux.

Operating System

386BSD

Linux

Current Version

0.1

0.97

History

Constructed in a series of columns published in Dr. Dobb's Journal.

Originally developed by Linus Torvalds (a student at Helsinki University, Finland). Currently has over a hundred contributing programmers, all coordinated through the Internet.

The preferred operating system for Nermal will be Linux.

OS Extensions

TCP/IP extensions are available in source form via the Internet. The extensions will be compiled on site into the Linux kernel.

Applications

Standard *nix applications are available in source and binary form via the Internet. Initially, pre-compiled binaries will be used. (Later, sources will be obtained, a source tree constructed, and binaries will be compiled on site -- details on these operations appear under another objective.)

Informational Resources:

When are you going to complete this objective?

The first objective will be completed prior to October 2nd.

What form will the completed project take?

The completed project, at this stage, will consist of an i386 machine with a *nix operating system. The system will be capable of communications over the Internet with the fully qualified domain name of "Nermal.santarosa.edu."

How will it be evaluated?

The project will be evaluated by the level of operability in the system, and whether or not that operability coincides with the goals expressed within this objective. A list of changes to the "stock" Linux kernel will be provided to the supervising faculty member for evaluation.

Objective Two

What are you planning to achieve?

The student plans to obtain sources for user applications, place them in Nermal's source tree, configure them, compile them, then install the binaries.

(Note: While some *nix applications have been "ported" to Linux, there are still many that will require editions to their source code before they will work with this OS.)

Example Applications

Application

man

troff, cut, split, fold, etc.

awk

lex/yacc

uucp

Description

online documentation

text formating utilities

text processing utility

lexical analyzer programming utilities

Unix-Unix communications system elm

pine

sz/rz

xmodem

nntpd

cnews, nn, rn

electronic mail package

(another) electronic mail package

serial-line file transfer system

(another) serial-line file transfer system

machine-independent news server

news readers

Additionally, the student plans to upgrade the operating system as new (stable) versions of the Linux kernel (and its extensions) become available. (Note: While similar in nature to objective one, keeping the kernel up-to-date will require less work than the first objective since all current modules will remain on Nermal in pre-compiled form.)

How do you intend to accomplish this?

To accomplish this objective, the student will acquire sources and documentation for all important software, place those sources on Nermal, edit the sources (as necessary), compile them (using Linux's shared libraries), install the resulting binaries, and configure the system to use the binaries properly.

When are you going to complete this objective?

The second objective will be completed prior to November 6th.

What form will the completed project take?

Nermal will contain all functionality explained in objective one; in addition, important applications will be available to users. These applications will be properly installed in the manner customary for *nix systems (i.e., with binaries compiled on-site).

How will it be evaluated?

The project will be evaluated by the level of operability and documentation within the system (including applications). Some salient points the supervising faculty member may wish to consider:

Do all applications work as expected?

Are all system and application documents existant and up-to-date?

Are all changes to source code clearly commented, and are those changes consistent with good programming practice?

Those applications that required changes to their source code to operate correctly on Nermal will be pointed out to the instructor for evaluation.

Objective Three

What are you planning to achieve?

The student plans to create a campus-wide, machine-independent, message base for student and faculty use.

Concurrently, the student will open the system to general student access, and maintain the system under user loading conditions.

Additionally, as with objective two, the student plans to upgrade the operating system as new (stable) versions of the Linux kernel (and its extensions) become available.

How do you intend to accomplish this?

To create the message base, the student will obtain sources for a network-news transfer protocol daemon (nntpd), modify the sources to work within Linux, compile the sources, install the resulting binary, and configure the system to properly use the binary

To open Nermal for general student access, the student will announce the system's availability, explain how to access the system, and inform potential users how to apply for an account. The announcement will be made on appropriate telecommunications forums, such as Super Oak Leaf Online's "News" conference and the prestigious "nerds@cs.santarosa.edu" mailing list.

When are you going to complete this objective?

The second objective will be completed prior to November 6th.

What form will the completed project take?

Nermal will contain all functionality explained in objective one; in addition, important applications will be available to users. These applications will be properly installed in the manner customary for *nix systems (i.e., with binaries compiled on-site).

How will it be evaluated?

The project will be evaluated by the level of operability and documentation within the system (including applications). Some salient points the supervising faculty member may wish to consider:

Do all applications work as expected?

Are all system and application documents existant and up-to-date?

Are all changes to source code clearly commented, and are those changes consistent with good programming practice?

Those applications that required changes to their source code to operate correctly on Nermal will be pointed out to the instructor for evaluation.