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 <[email protected]>
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.