The Unix SolutionFast, cheap and versatile |
|
From "Special Report", Access to Wang, November 1994 |
|
[ Prior Article ] [ Return to the Catalog of articles ] [ Next Article ] |
Cheap and powerful, Unix is one of several operating environments that are usually considered when a system conversion is planned. Like the Wang VS and other minicomputers, Unix provides the ideal combination of easy access to development tools, low cost, and good end-user performance. Unix is also a chameleon, masquerading as a host system, a data communications router, a LAN server, or all of these systems at once.
Here is some information on Unix systems to help in comparing options with other operating environments.
Unix is a multi-tasking operating system developed in the early 1970s by scientists at Bell Laboratories. Originally written in machine language for a small Digital Equipment (DEC) system, Unix was rewritten in C - a language also developed at Bell Labs - and ported to other architectures. Versions were subsequently developed for many processors, aided by the availability of the source code, its use of a high-level language, and easy licensing requirements, and Unix is available for hundreds of systems today.
After development of the file system and other core components at Bell Labs, copies of Unix were given to universities in the late 1970s for research and development. These college students and professors added important refinements, such as screen-oriented development tools, networking and communications, and standard file and directory naming. Many students carried their enthusiasm for Unix to the outside world, spurring increased interest in applying Unix to commercial purposes. Still, it was not until the late 1980s that Unix began to emerge as a business environment.
Many Unix programs are developed in C - a language available for nearly all computing environments - and it is relatively easy to move these applications between versions of Unix. This portability has resulted in a large selection of products for Unix systems and strong competition between vendors. Products from differing vendors usually work well together, due to consistent use of system calls and other features of the operating system.
Like the Wang VS, Unix is primarily interactive; that is, it is designed to work with terminals and user-entered commands and offer immediate feedback to the user. Non-interactive applications are less robust, though Unix includes a background scheduler and queuing capabilities. With its strong networking and communication support and excellent performance, Unix is also a good server choice for client/server applications - a different form of user interaction.
The native Unix user environment is a command prompt, much like the prompt offered by MS-DOS. While many academic and technical shops give end users access to the command level, most commercial systems are set up to restrict end user access to specific menu choices. Most system administrators and many programmers prefer to enter commands at the prompt, and most versions of Unix require command entry for system administration and other technical purposes. The shell, as the command prompt is known, interprets all commands entered by the user and acts as an interface to the operating system. Most versions of Unix offer more than one shell interpreter, allowing users to choose the type of command syntax they prefer. Scripts - collections of shell commands contained in a text file - allow automation of shell commands and fill the need of batch languages like MS-DOS batch files or VS Procedure files.
In addition to the standard commands and system information, Unix provides environment variables and aliases to allow the command environment to be tailored to the wishes of the user. Environment variables allow values to be inserted into a variable and recalled by that name in commands or scripts. Aliases assign names to combinations of programs, scripts, or commands, allowing the user to set up new commands for specific needs.
Unlike the VS, Unix makes no presumption about the type of workstation used nor its dimensions. Valid terminal choices include simple character terminals, multi-window graphical systems (X windows), or personal computers supporting either of these approaches. At present, most commercial applications are developed assuming the requirements of a VT100, a character terminal that supports similar screen attributes (bold, underline, etc.) used by most character terminals, including those used on Wang VS systems. Many businesses have selected PCs running VT terminal emulation software instead of actual terminals, allowing access to both traditional host applications and PC-based software.
The X window system is a graphical environment, similar in principle and use to the Apple Macintosh and Microsoft Windows operating environments. Like Unix, X was originally developed at colleges and adapted for commercial use. X terminal applications are popular in the technical and scientific worlds, but the high cost of X terminals, complex development requirements, heavy use of system resources, and few available applications have kept them away from business users.
The Unix file system is a hierarchy of directories and files, similar to that used by MS-DOS. Unlike DOS, Unix file and directory names are case-sensitive, names can be long (up to 64 characters in some versions), and physical disk volumes are presented as a single directory "tree", rather than requiring separate file structures on each. A Unix directory can even be a network connection to another system, presented to users and applications as if it were physically connected to the local machine.
Unix directories and files contain access control features that restrict user activity to valid options. Permissions for reading, executing, or modifying a file or directory may be controlled independently, allowing full access control. Like the VS, some Unix systems support Access Control Lists (ACLs) allowing further flexibility. While powerful, Unix permissions are complex and require care and diligence to administer.
Like other multi-user operating systems, Unix requires that users identify themselves and, optionally, provide a password before system access is granted. User setup includes assignment of a number as a unique identifier, specification of shell or other start-up environment, file permissions, passwords, and group membership. Assignment of these values is frequently complex and accuracy is critical. Unfortunately, there are no standard Unix programs to perform this administration and most Unix vendors provide poor administrative tools.
Each user has a home directory that contains user-specific information, including a profile to set up terminal options, environment variables, and aliases. Home directories are normally only accessible by the owner or a system administrator. File and access is controlled through membership in groups and specific permissions to read, execute, and modify files. Users may belong to more than one group.
Assignment of file and directory permissions are often the most prevalent task in the life of a Unix system administrator. Despite rumors to the contrary, Unix systems are not inherently insecure; instead, the complexity of permission assignment makes it easy to overlook security gaps that can be exploited by unauthorized users. Easy connection to outside communication sources - dial-up lines, public networks, etc. - exacerbates this problem by allowing access to a larger number of potential intruders.
Unix file system management tools - like almost all Unix tools - oriented to the command line and provide abbreviated information. Like user setup, there are strong tools to monitor disk space and other attributes but no standard screen-oriented review and maintenance programs. Scripts and third-party tools can help fill this gap.
To the technical user, Unix provides a terse but powerful environment. There are a large number of programming tools, largely oriented around the needs of system administrators. Command structures are abbreviated and options are usually controlled by arguments - codes passed to the program on the command line. Learning these command structures takes time and practice.
Beyond the core system elements, most of Unix consists of a large collection of small utilities, each performing a single function. These tools can be bound together within scripts or through Standard I/O, a capability that allows the output from one process to be used as input for the next.
Programmers will find a good set of tools for C language development, but Unix support for other languages (COBOL, RPG, BASIC) is poor. There is nothing similar to the integrated Wang development environment, which ties the editor, compilers, and debugger into a single view.
Choosing Unix as your operating platform also require careful consideration of its strengths and limitations. While less complex than mainframe environments, Unix systems require substantially more effort and expertise than proprietary minicomputers like the Wang VS. Existing programmers and technical staff will need training and experience to become productive in Unix, and all will have to construct some of their own tools to increase their effectiveness.
On the other hand, the competition between vendors and the interchangability of software provide excellent value and quality. The choice of hardware is nearly moot, since most systems work well together and are very reliable. In addition to vendor support, a rich user community is available for technical questions training. Finally, there is a growing base of competent technical employees in the job market. In short, Unix provide great flexibility and value for those willing to work with its greater complexity.
Copyright © 1994 Dennis S. Barnes
Reprints of this article are permitted without notification
if the source of the information is clearly identified