DOS And Unix
Compare and Contrast Microsoft DOS with
UNIX
As is suggestive of its name, an
operating system (OS) is a collection of programs
that operate the personal
computer (PC). Its primary purpose is to support
programs that actually do
the work one is interested in, and to allow competing
programs to share the
resources of the computer. However, the OS also controls
the inner workings
of the computer, acting as a traffic manager which controls
the flow of data
through the system and initiates the starting and stopping
processes, and as
a means through which software can access the hardware and
system software.
In addition, it provides routines for device control, provides
for the
management, scheduling and interaction of tasks, and maintains
system
integrity. It also provides a facility called the user interface which
issues
commands to the system software. Utilities are provided for managing
files and
documents created by users, development of programs and software,
communicating
between users with other computer systems and managing user
requirements for
programs, storage space and priority. There are a number of
different types of
operating systems with varying degrees of complexity. A
system such as DOS can
be relatively simple and minimalistic, while others,
like UNIX, can be somewhat
more complicated. Some systems run only a single
process at a time (DOS), while
other systems run multiple processes at once
(UNIX). In reality, it is not
possible for a single processor to run multiple
processes simultaneously. The
processor of the computer runs one process for
a short period of time, then is
switched to the next process and so on. As
the processor executes millions of
instructions per second, this gives the
appearance of many processes running at
once. User programs are usually
stored on a hard disk and need to be loaded into
memory before being
executed. This presents the need for memory management, as
the memory of the
computer would need to be searched for a free area in which to
load a users
program. When the user was finished running the program, the memory
consumed
by it would need to be freed up and made available for another user
when
required (CIT). Process scheduling and management is also necessary, so
that
all programs can be executed and run without conflict. Some programs
might
need to be executed more frequently than others, for example,
printing.
Conversely, some programs may need to be temporarily halted,
then restarted
again, so this introduces the need for inter-program
communication. In modern
operating systems, we speak more of a process (a
portion of a program in some
stage of execution (CIT, 3)) than a program.
This is because only a portion of
the program is loaded at any one time. The
rest of the program sits waiting on
the disk until it is needed, thereby
saving memory space. UNIX users speak of
the operating system as having three
main parts: the kernel, the shell and the
file system. While DOS users tend
not to use the term kernel and only sometimes
use the term shell, the terms
remain relevant. The kernel, also known as the
"Real Time Executive", is
the low-level core of the OS and is loaded into
memory right after the
loading of the BIOS whenever the system is started. The
kernel handles the
transfer of data among the various parts of the system, such
as from hard
disk to RAM to CPU. It also assigns memory to the various
system-level
processes that occur whenever the computer does anything. The
kernel is also
responsible for scheduling the CPU’s operations and for letting
the shell
access the CPU (PC Mag, 1). The shell is the visible user interface to
the OS
and is a program that loads on top of the operating system and offers
users
commands that lets them access the OS. Strictly speaking, the shell is
an
input utility that offers access to the operating system. Technically
speaking,
the shell, being a separate program, is not a part of the OS at
all. In the UNIX
world a number of shells are available, among them the Korn
shell, the C-shell,
the Bourne shell and the Bourne Again shell (yes,
really). In DOS, the standard
shell is COMMAND.COM, again nothing more than a
program. As different versions
of command.com came with different versions of
DOS, each added new commands and
new things that could be done by the user.
For example, DOS 4’s COMMAND.COM
added the /P switch to DEL to verify each
deletion, and DOS 5’s COMMAND.COM
provided the ability to sort the output of
the DIR command. HISTORY An acronym
for disk operating system, the term DOS
can refer to any operating system, but
is most often used as shorthand for
MS-DOS. Originally developed by Microsoft
for IBM, MS-DOS was the standard
operating system for IBM-compatible computers.
The initial version of DOS
was somewhat uncomplicated and resembled another
operating system called
CP/M. Subsequent versions have become increasingly
sophisticated, however DOS
remains a 16-bit operating system without support for
multiple users or
multitasking. The earliest forms of DOS were crude and
utilized only a few
commands, but as computers became more advanced, so did DOS.
By keeping
up with technology, DOS was implemented into more "user friendly"
operating
systems. However, as more sophisticated operating systems were
released, DOS
became less important. "Today, cyberpunks involved with the
latest OS trends
joke that DOS stands for ‘Dad’s Operating System’" (Comerford,
23). In
1980, IBM asked the Microsoft Corporation to produce the operating
system for
its first personal computer, the IBM PC. Prior to this, a company
called
Seattle Computer Products had sold an operating system called 86-DOS
to
Microsoft. Microsoft hired the author of 86-DOS, Tim Paterson, in
April of 1981
to modify the system, and renaming it MS-DOS (Microsoft Disk
Operating System),
it was released with the IBM PC. Thereafter, most
manufacturers of personal
computers licensed MS-DOS as their operating system
(Brittanica, 1). Limitations
of the early PC’s hardware were a big influence
on MS-DOS. Although the 8088
model computer had a 1Mb address space, IBM
decided to allocate the first 640K
of this to RAM, and the rest to ROMs,
video boards and other things.
Consequently, MS-DOS was set up to support
programs whose maximum size was 640K.
Version 1.0 of DOS was released
along with the IBM PC in August 1981. It
occupied 12K of the systems 640K of
memory, was somewhat compatible with CP/M
and, much like CP/M, supported only
a single directory. By contrast, even the
first version of UNIX had a full
hierarchical file system. In addition, Version
1.0 supported only a 160K
single sided 51/4-inch floppy diskette. Version 1.1
was released by Microsoft
in October 1982 and supported double sided 320K
diskettes. Aside from fixing
some bugs, this release was similar to Version 1.0.
Releases such as 1.1,
in which the number to the left of the decimal point is
the same as the
previous version depict relatively minor changes from the
previous release.
By contrast, Version 2.0 was largely a new system. In March
1983, IBM
introduced the PC/XT, its first personal computer with a hard disk. It
came
with a new variant of MS-DOS, Version 2.0. In this version,
Microsoft
incorporated many ideas from the UNIX system for which it was also
a vendor. For
example, incorporating minor changes, the MS-DOS file system
was taken largely
from UNIX. In addition, the shell was improved, and Version
2.0 supported a new
floppy diskette format, the 360K as well as user
installable device drivers,
print spooling, system configuration and memory
management. At this point,
MS-DOS was established as the dominant
operating system in PC market. In August
1984, IBM released its first 286
chip based PC, the PC/AT. The PC/AT supported
memory up to 16 Mb and had the
ability to run multiple programs at once.
However, the version of MS-DOS
that shipped with the PC/AT was 3.0, which
supported neither of these.
Rather, it ran the PC/AT in a mode that simulated
the 8088, only faster.
Since the PC/AT came with a 1.2Mb disk drive, battery
backup clock, and
configuration information in the CMOS, support for these
devices was added.
What's more, hard disks larger that 10Mb were now supported.
In addition,
the command processor (shell) was removed from the operating system
and made
into a separate program. In November 1984, 3.0 was replace by 3.1
which
provided the first support for networking. In 1987, IBM came out with
the PS/2
line of PC which shipped with MS-DOS 3.3, providing support for both
720K and
1.44Mb 31/3 floppy disk drives. With Version 4.0, Microsoft
added the DOS shell,
a menu driven shell rather than the previous keyboard
driven ones. In addition,
it now provided support for hard drives larger than
32 Mb. A major new release,
MS-DOS Version 5.0 was shipped in April 1991.
Although this was the first
version that made any serious use of the extended
memory, it still had the
restrictions that programs could not exceed 640K.
However, it had the ability to
locate most of MS-DOS itself in extended
memory, so about 600K of the lower 640K
was now available for user programs.
Version 5.0 also came with a useful HELP
utility, to aid new users. For the
first time, MS-DOS was sold in stores to the
public (previous versions were
only sold to computer vendors who delivered them
with their machines) (CIT,
1-3). The MS-DOS 6 family provided more memory
management for applications
such as Microsoft Windows. In addition, newer
utilities were provided for
disk-defragmentation, file compression, file backups
and anti-virus checking.
Other variations of MS-DOS exist, such as PC-DOS by
IBM, DOS-V, Dr. DOS
and others. There is even a FREE DOS available on the
Internet as an
MS-DOS clone. Although it can still be found on many computers,
MS-DOS is
technically an obsolete operating system, being replaced by
Microsoft
Windows. For personal computers, MS-DOS is a single user,
single tasking
operating system. Single user means only one person uses the
computer at a time.
Single tasking means that it essentially runs one
application program at a time,
and has no inherent support for running more
than one application program
simultaneously (CIT, 2). If we want to look at
the basic DOS operating system
itself, there is no need to look further than
three system files, command.com,
Io.sys and (in DOS6.x and earlier)
Msdos.sys. These files are crucial in DOS
versions up to 6.22. Io.sys
represents the lowest level of the interface and
contains the routines
necessary for interfacing the OS with the system’s BIOS.
It implements
MS-DOS as seen by the hardware and has default drivers for console
display
and keyboard, printer, serial communications, clock, and a boot disk
drive.
Msdos.sys handles the higher-level routines such as converting commands
from
applications into instructions for Io.sys. It implements MS-DOS as seen
by
application programs. It supports file and record management, memory
management,
character device input and output, execution of other programs,
and access to a
real-time clock (CIT, 3). Both of these files are in the root
directory, and
both are hidden from view by default. The idea is that you are
not suppose to
see them, so that you don’t do anything destructive to them
(such as deleting
them). They are also read-only so that they can’t be
deleted accidentally.
Command.com is the shell program which interprets
user commands, presents the
shell prompt, and contains a set of internal
commands. The rest of MS-DOS
consists of a number of utility programs.
Although DOS had cornered the PC
market, UNIX was still dominant on the
larger workstations. The birth of UNIX in
1969 provided the world with
its first modern operating system. An interactive
multi-user operating
system, UNIX was initially developed by programmers for
their own use.
Working for Bell Laboratories, Ken Thompson and Dennis Ritchie
created UNIX
as an operating system for the PDP-7 computer. Designed as a
simplification
of an operating system named Multics, UNIX was developed in
Assembly
language, a primitive computer language specific to one type of
machine
(Osiris, 1). However, Thompson developed a new programming language
"B"
which Ritchie enhanced to "C", and in 1973 this was used to rewrite
UNIX
which lended the OS portability (Linux Intl., 1). The original design
philosophy
for UNIX was to distribute functionality into small parts, the
programs (Theochem,
1). In this way, functionality could be achieved by
combining the small parts
(programs) in new ways. Moreover, if a new program
were to appear, it could be
integrated into the system. UNIX was slow to
catch on outside of academic
institutions but soon was popular with
businesses as well. The first five
versions were part of an internal research
effort of Bell Labs, and it was not
until the sixth version, called UNIX
Timesharing Sixth Edition V, that UNIX was
widely distributed (Osiris, 1).
Relatively recent developments are graphical
interfaces (GUI) such as MOTIF,
X Windows and Open View. UNIX has two major
versions. One, jointly developed
by UNIX Systems Laboratories (USL) and by
AT&T researchers together
with Bell Labs, generically known as System V, is
the commercial version and
is the most widely distributed by major
manufacturers. The second, developed
by the University of Berkley and Berkley
Software Distribution (BSD), is
the educational version and is completely
focused on research. The USL
version is now on its fourth release, or SVR4,
while BSD’s latest version is
4.4. However, there are many different versions
of UNIX besides these two.
The operating system has been licensed to several
manufacturers who in turn
developed their own versions of UNIX, based on System
V or BSD, but
adding new characteristics. Most versions of UNIX developed by
software
companies are derived from one of the two groupings and, recent
versions of
UNIX actually incorporate features from both of them. However, UNIX
has had
an unregulated history with over 200 versions (Berson, 16) existing
today.
The UNIX system is made up of three primary components, the kernel,
the
shell, and the utilities (which includes the file system). The central
part of
the OS, the kernel is the first program to start when the system is
turned on
and the last program to do anything when the system is halted. In
addition to
scheduling tasks, it manages data/file access and storage,
enforces security
mechanisms and performs all hardware access. The name
"KERNEL" represents
the fact that it is a program designed as a central
nucleus, around which other
functions of the system were added. The heart of
the operating system, it not
only interacts directly with the system’s
hardware, but presents each user
with a prompt, interprets commands typed by
a user, executes user commands and
supports a custom environment for each
user. The two most common shells are the
Bourne shell, default for the
System V, and the C-shell used mainly with the BSD
version (Osiris, 1). The
utilities consist of file management (rm, cat, ls,
rmdir, mkdir), user
management (passwd, chmod, chgrp), process management (kill,
ps) and
printing (lp, troff, pr). In order to obtain a basic understanding of
the
UNIX operating system, it is necessary to touch upon several of the
principal
characteristics that have permitted it to remain competitive through
the
years. 1. Advanced Administration of Processes UNIX has a process
manager
known as Process Scheduler, which handles the allotment of time to
each of the
processes according to the priority it was assigned. 2.
Multiprocessing Many
UNIX variants allow the use of various processors to
execute user tasks. This
means that UNIX has support for symmetric
processing, with which it can take
advantage of the fact that there are two
or more CPUs in the machine. 3. File
Management The hierarchical files
system that UNIX runs, as well as file access
control and directory control
have served as models for the majority of modern
operating systems such as
MS-DOS, OS/2 and even Windows NT. 4. Utilities Access
For the UNIX
operating system, each of the machines devices, whether it be a
hard drive,
printer, modem, etc. is seen as a file. Thus, access to any device
is carried
out as access to a file. This is possible through the fact that
UNIX
differentiates between kinds of files. In fact, the processes themselves
are
seen as files, which permits the establishment of another important
UNIX
characteristic, interprocess communication. 5. Virtual Memory The fact
that UNIX
has virtual memory allows the number of processes being executed to
require more
memory than exists in the machine. 6. Graphic Interface Although
not exactly a
novel characteristic of UNIX, most versions now have a graphic
interface. 7.
Interplatform Support This is another characteristic that
was added to UNIX
which lends the capability to execute programs from other
platforms (DOS and
Windows), within the UNIX environment. 8. Networks The
usual UNIX communications
protocol is TCP/IP. This allows variants of UNIX
based operating systems to
communicate between themselves or with other
platforms (Osiris, 1-2). CONTRAST
Both DOS and UNIX present a number of
similarities, several of which shall be
addressed here. First, both systems
are interactive, meaning that the shell
presents a prompt and waits for the
user to enter a command. After the return or
enter key is pressed, the shell
processes the command and when the command is
finished, the shell re-displays
the prompt. Second, DOS batch files and UNIX
script files can be used which
can store commonly used commands in a file, which
when executed, runs each
command as though it has been typed from the command
line. A sequence of
commands can be executed by executing the file which
contains the command(s).
Third, the handling of files in both DOS and UNIX is
simplified by using
wild-card characters to match files which match particular
patterns. Also,
with both operating systems, users can customize and control the
behavior of
the shell by using special variables that the shell supports, such
as the
prompt (20,1). In addition, both systems make use of "pipes" whose
symbol is
a vertical bar ( | ). With this convention, the output from one
command
becomes the input for another command. Several dissimilarities are
worth
noting. As was previously mentioned, DOS is a single user, single task
operating
system. Its user interface is not case sensitive, which means that
commands may
be typed in either upper case, lower case or a combination of
the two. UNIX
however, is a multi-user, multi-task OS. Non-interactive tasks
which do not
require keyboard input can be run in the background as a
separate task while the
user continues working with other interactive
programs (20,1). Differing from
DOS, its user interface is case
sensitive, meaning that only upper or lower case
commands must be used.
APPLICATIONS & COMPUTER TYPES Whereas DOS has been
used primarily on PCs
and standalone computers, UNIX can be run on single- or
multi-user computers
of all sizes with a wide range of microprocessors (Flynn
& McHoes 319).
UNIX is the widely supported operating system in the field of
computer
science, used extensively in business as well as educational
institutions.
Conversely, DOS is used mainly in businesses with older computer
systems.
BENEFITS & DISADVANTAGES The major advantage that DOS has over UNIX
is
its basic simplicity. Between this and the uncomplicated commands
presented
by the user interface, it is a relatively simple OS to learn. DOS
also has the
advantage of allowing the user to create an environment tailored
strictly for
the particular task they wish to accomplish. In addition, one
can customize DOS
to suit the current hardware. This can be accomplished with
commands such as
date, time, prompt, path, set, assign and subst. Unlike DOS,
UNIX’s main
feature is that it is a multi-user system, meaning more than one
user can use
the machine at a time when supported via terminals provided by a
serial or
network connection. Offering true preemptive multi-tasking, UNIX
can run more
than one program at a time with a CPU that services all
applications equally. In
addition, it has a hierarchical directory structure
which supports the
organization and maintenance of files. Other advantages
are that it has been in
the market for a number of years, and is therefore
considered a stable product.
Also, due to the fact that the kernel is in
"C", UNIX works in just about
every machine in the market, once again, making
it a portable system with a
collection of very powerful utilities. Also,
there are many applications
developed for DOS and UNIX which fall into the
category of "shareware"
available via the Internet (8,1). As with advantages,
both DOS and UNIX have
their share of disadvantages. It can be said that DOS
has two main drawbacks.
Since MS-DOS was originally written for a
particular family of microprocessors,
it displays an incredible lack of
flexibility and limited ability to meet the
needs of programmers and
experienced users (Flynn & McHoes, 265). UNIX also
has several very
distinct disadvantages. First, novice users find its commands
are almost
cryptic which is interpreted as being non-"user-friendly".
Second, the
fact that there exist so many versions of the operating system means
that
software producers must make several versions of their applications to
cover
the greatest number of potential users. Third, UNIX is a large
operating
system, and depending on the number of services installed and the
functions
used, space used on a hard drive may vary from 20 Mb to 300 Mb
(Osiris, 1).
Bibliography
Benson, Alex. Client/Server
Architecture. Gainesville: U P of Florida, 1992.
Comelford, Richard.
"Operating Systems go Head to Head", IEEE Spectrum. Dec
1993, pp 23-25.
Flynn, Ida M., and Ann M. McHoes. Understanding Operating
Systems. Second
ed. Boston: PWS, 1997. Greenfield, Larry. UNIX: The User’s
Guide.
University of Deuselldorf. [Accessed 3 September 1998].
*http://www.
Theochem.uni-duesseldorf.de/docu/user-guide* Introduction to
UNIX. University of
Guadalajara. [Accessed 3 September 1998].
http://osiris.staff.udg.mx/man/ingles/introduccion.html
" Microsoft
Corporation" Brittanica Online [Accessed 20 September
1998].
*http://www.eb.com:180/cgi-bin/g?DocF=micro/711/22.html* Operating
Systems
Introduction, v 3.2. Central Institute of Technology. [Accessed 5
September
1998]. *http://www.cit.ac.nz/smac/os100/unix01.html* Randall,
Neil. "So,
What’s an Operating System, Anyway?" PC Magazine 5 May 1998.
*http://www.zdnet.com/pcmag/pctech/content/17/tu1709.001.html*
[Accessed 6
September 1998]. STScI UNIX Users Guide. Space Telescope
Science
Institute. 24 September 1998. [Accessed 3 September 1998].
*http://ra.stsci.edu/documents/UUG/UnixGuide.book_65.html*
UNIX History.
Linux International. 14 November 1997. [Accessed 3 September
1998].
*http://ir.parks.lv/li/Resources/LDP/guide/section2_4_1.html*