Aucbvax.1755 fa.info-cpm utzoo!duke!chico!harpo!mhtsa!ucbvax!AFITGORDON@BBNB Mon Jun 15 11:11:03 1981 Re: CP/M vs **NIX in the Office Environment In response to the message sent 10 June 1981 22:29-PDT (Wednesday) from WANCHO@DARCOM-KA Greetings, Gentlemen, I have recently noted your conversations regarding the adoption of an operating system for microcomputers in an automated office environment. I would like to offer my opinions and comments in the following document for your review. Your work is interesting and related to what I have already been doing with CP/M. The following document, for example, was composed on my personal microcomputer using the Word Star text editor/formatter under CP/M and automatically transmitted to the ARPA Net, where it was further transmitted to you via electronic mail. The following, then, are my opinions, for what they are worth, and they are submitted in the interest of information exchange with your community. Richard Conn -------- Document Follows -------- A Comparison of CP/M and UNIX A Comparison of CP/M and UNIX A Matter of Choice An interesting discussion and controversy concerning the selection of an Operating System (OS) for a micro- computer-based office automation system has recently taken place between and within members of DARCOM (Dept of the Army Readiness Command) and others on the ARPA Network. Central to the controversy are two basic groups -- those for the CP/M OS and those for UNIX/UNIX-like OS's. This is the first such controversy I have observed that has taken any significant proportions, and with the advent of the new 16-bit microprocessors such as the 8086, Z8000, and 68000 and the "UNIX-like" operating systems such as OMNYX and XENIX, the question of staying with CP/M or going to the UNIX environment is going to arise with more and more frequency. UNIX (first released by Bell Labs in 1969) has recently been hailed as the "Operating System of the 80'S" by several people, and I feel that now may be a good time to outline a comparison of CP/M 2.2 and UNIX for future reference. Note that this comparison involves traditional UNIX (NOT necessarily identical to the yet-to-be-released XENIX). Having done some research on and used both types of operating systems, I offer the following discussion for general dissemination. This discussion is divided into two parts -- (1) a brief comparison of Bell's UNIX and CP/M 2.2 and (2) a brief discussion of the criteria for selection of the OS and my recommendation. Part 1 -- A Comparison of UNIX and CP/M 2.2 -- The following is a basic comparison of several key points of the UNIX and CP/M 2.2 Operating Systems. Data for the UNIX part of the comparison was extracted from "The Bell System Technical Journal", July-Aug 78, Vol 57, No 6, Part 2, ISSN0005-8580 (Articles: "A Retrospective" by DM Ritchie and "The UNIX Shell" by SR Bourne primarily). Data for the CP/M 2.2 part of the comparison was extracted from "Digital Research CP/M 1.4 & 2.0 Documentation" reprinted by Morrow Designs, Inc. (Section II: CP/M 2.0 User's Guide). The data presented is edited and augmented by comments from my personal experiences. UNIX ! CP/M 2.2 ------------------------------!---------------------------- o No Unique Version ! o Unique Version At least 5 versions exist: ! Version 2.2 (Precisely 1. "Standard" maintained! Defined) by the UNIX Support Group at ! Bell Labs ! Page 1 A Comparison of CP/M and UNIX 2. PWB/UNIX (Programmers! Work Bench) ! 3. Version 6 (distrib. ! by Western Electric) ! 4. Version 7 ! 5. The version currently! in use by the Computing ! Science Research System at ! Bell Labs ! ! o Multi-user/process ! o Single-user/process ! o File Size Limit ! o File Size Limit == 1e9 bytes (depends on ! == 8e6 bytes version); e=10 to power ! ! o Supports Random Access Files! o Supports RA Files also ! o Targeted to the PDP-11 Fam ! o Targeted to 8080/Z80 ! o Tree Directory Structures ! o Dual-Level Directory (Indefinite number of levels! Structure (USER/DIR or and Path Names) ! SYS) and Limited Path (A:FN) ! o Links Allowed ! o Links Permitted (Extension) (Different dir entries pt to! same file for disk space save)! ! o Device Transparency and Re- ! o Device Transparency and Re- directability Complete ! directability limited to (I/O routed to/from files ! terminal I/O and terminals with equal ease)! User Interface Comparisons UNIX ! CP/M 2.2 ------------------------------!-------------------------- o Command Interpreter ! o Command Interpreter "Shell" ! "CCP" ! o Shell Easily Replaced ! o CCP Replaced with ! difficulty ! o Not Part of Kernal ! o Not Part of Kernal ! o Full Command Language is ! o Full Command Language is relatively complicated ! simple ! o All commands have redirect- ! o Only terminal I/O is able I/O (<,<<,>,>>) ! redirectable ! o More extensive wild cards ! o Simple wild cards (?,*,[c1-c2],[c1...cn]) ! (?,*) ! o Interprocess information ! o No equivalent transfer (pipes); coroutines! Page 2 A Comparison of CP/M and UNIX ! o Type-Ahead ! o Type-Ahead possible ! via BIOS ! o Parallel processes ! o No equivalent ! o Indirect command files; no ! o Indirect cmnd files; 20 limit to arguments ! argument limit (sh file arg1 arg2 ...) ! (submit file arg1 ...) ! o Conditional Execution ! o No equivalent (ANDF - &&, ORF - !!) ! ! o Construct Execution ! o No equivalent if ... then ... else ! case ... in ... ! while ... do ... ! for ... do ... ! until ... do ... ! ! o Shell Variables (Param sub) ! o No equivalent ex: user=myfile ! print $user ! ! o Command Substitution ! o No equivalent ex: d='pwd' ! Other Items UNIX ! CP/M 2.2 ------------------------------!---------------------------- o Reliability - Good ! o Reliability - Good ! o Security - Fair ! o Security - Poor ! o Use of HOL ! o Use of HOL 90-95% in C - OS ! Mainly Assem - OS 95-100% in C - Utilities ! 90% in PL/M - Std Utils ! o ARPANET Interface (NCP) ! o No Equivalent currently available ! (except for terminal pgms) ! o Extensive document prepara- ! o Extensive document prep tion facilities ! facilities ed - simple char-oriented! ED - simple char-oriented editor ! editor Are there any screen- ! WM, EP - screen-oriented oriented editors or ! editors formatters? ! WS, MW - s-o edit/format troff, nroff - formatters! TFS - formatter with macro expansion ! with macro expansion eqn - mathematical expr ! No known equivalent preprocessor ! tbl - table preprocessor ! No known equivalent spell - spelling check ! SPELLGUARD - spell chk Page 3 A Comparison of CP/M and UNIX speak - voice output ! No known equivalent diff - file comparator ! FILCOM - file comparator ! o Online instruction ! o Online instruction learn -- tutor ! PILOT - CAI language online help? ! HELP - online doc ! o Exotic applications ! o Exotic applications yacc - compiler-compilers! MUMATH - symbolic others? ! algebra ! o Languages ! o Languages C, FORTRAN 77, BASIC, ! C, FORTRAN IV, BASICs, SNOBOL, APL, ALGOL 68, PASCAL ! APL, ALGOL 60, PASCALs, others? ! LISP, MUMATH, MUSIMP, ! PILOT, PL/I, COBOL ! others? Part 1 Commentary From the point of view of a hacker (such as I consider myself to be), both CP/M and UNIX are outstanding operating systems to experiment with and study. Systems programming on each is relatively easy to do, and both exhibit an ex- treme level of extensibility which may be utilized by sys- tems programmers. By this I mean that both OS's can be modified, tailored to a specific application, with a great deal of ease at the systems programming level. Each is flexible enough to be used to create a "virtual machine" of the system programmer's design which can react in almost any way desired (e.g., text processing environments and program development environments can be easily created which are tailored to a user's particular needs). The particularly intriguing aspects of UNIX to me are: 1. the tree directory structures; using these, each user's projects and files can be logically grouped and organized as the user and/or his manager desires and special work environments, each with their own set of commands, can be easily created 2. the Shell (command interpreter) can be easily replaced, so specialized shells or even menu-driven command environments may be created with ease 3. device transparency and redirectability is an outstanding concept! This allows instances such as a program which by default sends its output to the terminal (such as a directory program) to be forced to channel its output to a different device, a file, or even another process; the potential for applications of this facility is enormous! 4. parallel processing and coroutines are common- place; this provides the very nice ability of a user to, say, initiate the printing of a file while he goes off and does something else -- better yet, one user may issue Page 4 A Comparison of CP/M and UNIX several commands to be executed concurrently while he does something else 5. conditional executions (ANDF, ORF), language constructions in the command language (IF, WHILE, FOR, CASE, etc.), and parameter and command substitutions (Shell variables) are novel and interesting concepts On the other hand, the intriguing aspects of CP/M to me are: 1. the ability to divide logical projects and work files into user areas, with each user area having its own set of files and commands (any number of which may be hidden [transparent] to the user); in a single user environment, this seems to be just as reasonable and useful as the tree structure of UNIX 2. the ability to replace the CCP (with difficulty); this can be done easier in UNIX, but it is not outside the scope of a system programmer to do this with CP/M (I have done it, making a major modification which greatly enhances CP/M's power -- command execution of COM files under my new CCP searches the current user area on the current disk, falls to user 0 of the current disk if not found, finally falls to user 0 or drive A: if not found, and finally issues an error message). This new CCP significantly places CP/M in a competative mode with UNIX in command execution (UNIX traces up the tree for command execution). 3. CP/M's terminal I/O is redirectable, and this buys a lot of flexibility for the user; UNIX, however, is equally redirectable and even more so 4. CP/M is very small, leaving much of the microcomputer's memory for the transcients and utilities; size is sometimes a problem, but with the new microprocessors and their megabyte addressing capabilities, it should no longer pose such a problem 5. finally, and perhaps most importantly, a wide variety of relatively high-quality software (screen-oriented editors, language systems, communications systems, etc) is currently available for CP/M, and I have not seen such quality systems yet being prepared for systems like XENIX (whose specs are not even out yet); there will be a definite lag before (and IF) XENIX and other such systems obtain the software base currently in existence for CP/M!!!!! Page 5 A Comparison of CP/M and UNIX Part 2 A Commentary -- Criteria for Selection and Recommendation In making such a selection of operating systems, I feel that there are five basic questions which should be considered in the evaluation. In short, these questions are the following: 1. Is the OS adequate to meet the needs of the user? Is there enough memory for the required utilities and applications programs to run in (considering the memory management schemes employed by the OS)? VERY IMPORTANT -- Is the OS responsive (In the microcomputer age, I consider the time of the user/programmer to be much more valuable than the time of the machine, and an OS/machine which in any way slows the user/programmer down due to its lack of re- sponsiveness should be reevaluated!!!!) 2. Is the OS extensible (user-customizable for his particular application)? If I don't like the form of the command language or the commands of the editor, can I change these to meet my tastes? If I want a menu-based user interface, can I create one? 3. Is software produced under the OS on machine A easily transportable to the same OS on machine B (allowing, of course, media compatability)? Source code generally is transportable provided the language is standardized (like C on UNIX), but is the binary (including the OS "hooks") also transportable (like on CP/M)? 4. Are software tools (editors, compilers, de- buggers, etc.) available AND effective for the target class of users? For instance, I would much rather give my secre- tary a screen-oriented editor which is easy to use as op- posed to a character-oriented editor in which she has to worry about the position of an imaginary cursor. The tool should be easy to use, people should be quickly and inexpen- sively trained to use it, and it should be efficient (fast, capable, and requiring as little overhead as possible). Also, if I currently have an existing tool base which my people are already trained to use, I should think carefully about moving to a new OS just because it is new or pro- mising. 5. Finally, is the software easily maintainable and reliable? Tools are seldom perfect, and improvements are constantly coming out. I would like to see the ability to modify my tools if I desire (I own them, don't I?) and be supported by the vendor as new releases emerge. Also, I want to use proven, time-tested tools which I can rely on extensively. Hence, reader, from my point of view, presented are the primary attributes of UNIX and CP/M 2.2 and my basic set of criteria to judge these systems by. Coming from a largely- CP/M environment (I already have CP/M as a base), UNIX would win hands down (looking through the eyes of a hacker). UNIX Page 6 A Comparison of CP/M and UNIX is a fantastic software tool which supports many interesting and exciting features, and, regardless of the use I put the UNIX system to, I still have my CP/M base to support my current applications and interests (also including hacking). The above statement, however, was from the point of view of a hacker with a CP/M base. The question posed, however, was from the point of view of the creation of a new system to support office automation. This is a management system in a manager's environment, not a hacker system in a programmer's environment. To make a choice for the manager, let's fall back to the five criteria outline above. In my opinion, both operating systems come out about even in the first three items. Both UNIX (XENIX?) and CP/M are generally adequate, extensible, and support transportable software for the automated office environment. In both cases, tools may have to be designed for specific needs (like XMSG for UNIX mail and CBBS software for CP/M mail). Software support from systems programmers will probably be required to design and integrate the tools necessary for an automated office system. Item 4 is perhaps a key point in the decision. CP/M already has a relatively-large base of quality tools for the target class (secretarial/managerial) of user. From my observation of automated office environments such as my own CP/M environment, AUGMENT of Tymshare, and NLS under TENEX and TOPS-20, I note that the majority of the time (at least in my case, and I suspect most others) is spent in the electronic mail system and the editors. Consequently, tools for these environments must be most effective, allowing the user to get his job done in a minimum amount of time with a minimum amount of effort. I am currently employing menu- driven mail systems and fast screen-oriented editors for these functions, and I feel that (design-dependent, of course), these are the most productive alternatives avail- able today. Specialized terminals designed with the editors in mind (e.g., DNLS Workstations) are a good goal, but general CP/M screen editors such as Word Master, Word Star, and Magic Wand are already available, reliable, field-proven and tested, and reasonably effective (I spend little time waiting on them/giving commands and more time composing than I do with more conventional editors). I have not seen comparable field-proven software for the new UNIX systems (they are not even out yet). Finally, the fifth item, that of software maintainability and support, is concentrated on support from this (office automation) level. Your environment probably will not have systems programmers readily available, so you will probably be largely dependent on vendor support. Again, reliable, field-proven software is a big plus. Two additional points should be brought out at this time as well: (1) the philosophy question of the state of the art and (2) the philosophy question of the use of the new microcomputers (microprocessors). Concerning the state of the art, UNIX (XENIX?) is Page 7 A Comparison of CP/M and UNIX definitely closer to it than CP/M, but the operating system is just the RESOURCE MANAGER of the computer system, not the KEY to the computer system. The KEY to the system lies in the TOOLS (utilities) which run under the operating system! These tools must be reliable, easy to use, and efficient in human terms. From my observations, EDITORS are the most instrumental of tools, and the Word Master and (particularly) Word Star are the most powerful, reliable, and efficient editors I have seen (with the possible exception of EMACS on MIT and the DNLS editor). Such are already available under CP/M, and I know of no comparable editor (Such could exist, of course) under XENIX (will the UNIX editors work on XENIX?). Concerning the philosophy question, many people still look at computer systems and operating systems from a "con- ventional" point of view. The computer is typically viewed as an expensive resource which must be used as efficiently (in terms of computer thruput) as possible, but the micro- processor has changed that. Under CP/M, I am currently running two microcomputers (total cost is under $15,000) quite effectively. These machines and their software are designed to serve me, and to obtain a maximum of effective- ness for the user (measured in terms of minimum wait on the computer), operations such as number crunching programs and print spooling are sent to the second machine. Too many times I have working in environments such as a dual CYBER, DEC-10, or VAX where the machine's thruput was considered above the individual's effectiveness, and the responsiveness of these machines to me was far less than that of my own microcomputer! I hope you consider this point; individual effectiveness and usefulness should be of prime concern, and consider the idea of supplying the single individual with more than one processor/machine. Many of the pro-UNIX types may cling to the old (machine-thruput) school of thought, but much is to be said for the user-effective (made possible by the inexpensiveness of the microcomputer) school of thought. The multiprocess capabilities of UNIX are nice, but I consider multiprocessor capability to be nicer still! In sum, my recommendation is to go with CP/M if your need is immediate. If not, wait and see what the UNIX-like systems have to offer in reliability, tools, and competa- tively-marketed (competition is very important for quaility) software. "Something better" is always coming out, but buying "the best" (=most recent?) software at a given time is not necessarily the best decision in the long run. New software is frequently field-debugged (not always, of course), and you should be leary of opening yourself up to do the debugging when you are trying to get a job done. Page 8 ------- ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.