OPS102 - Module 2
OPS102 - Module 2
MODULE 2
Both graphical user interfaces (GUIs) and Command Line Interfaces (CLIs) have strengths and
weaknesses, making them suited for different types of use.
The visual nature of a graphical user interface makes it well-suited for creating, editing, and viewing
visual media, such as photos, videos, presentations, and highly-formatted documents. A GUI is also
well-suited to dense displays of visual information, such as data dashboards. However, most GUIs
are not well-suited to automation, and the large amount of information in the display may consume
a lot of network bandwidth if the GUI is used over a remote connection.
On the other hand, a CLI is well-suited to task automation, and many tasks may require fewer steps
to perform than when using a GUI. CLIs generall require much less bandwidth when used over a
network, making them well-suited to remote administration tasks.
GUI VERSUS CLI
To compare the data demands of the two types of user interfaces:
A GUI on a 1920x1080 ("full high definition") monitor displays about 6 megabytes of data (2 million
pixels x 3 bytes per pixel)
A TUI on an 80x25 character terminal displays about 2 kilobytes of data (0.002 megabytes) at one
time
As an example of the strengths of each type of user interface, consider the task of cropping,
resizing, and changing the format of photographs:
A GUI immediately shows the effect of changes and allows the adjustments to be easily fine-tuned,
producing exact results for a small number of photos. However, it may take many steps to perform
the edits, so editing hundreds of photographs will take a very long time.
A CLI is well-suited to automation. Edits could be applied to hundreds of pictures in a few seconds,
if the edits can be adequately described on the command-line.
CLI ANATOMY
A CLI is provided by two programs:
A terminal program, which is responsible for collecting user input and
displaying the output from the shell and commands.
A shell, which interprets the user's written commands.
These may be on the same machine, or they may be on different computers.
For example, it is common to access both Linux and Windows systems over a
remote connection, using a protocol such as SSH (secure shell). In that case, the
terminal program runs on the computer in front of the user, and the shell runs on the
remote computer system.
OPERATING SYSTEMS HISTORY
Before the mid-1960s: A number of different manufacturers produced various computers for
business. Since these machines were expensive, and because there were many different
manufacturers, a relatively small number of machines of each model were produced. Very little
was standardized, and data was rarely interchanged between computers. Consequently, there
were many different operating systems, each with a fairly small market.
1964/1965 - MIT and partners begin the Multics Project. This project introduced many concepts that
became common in later operating systems, including a heirarcical filesystem, multitasking, and
interactive operation. This project continued through 2000. However, Multics was a fairly resource-
intensive operating system and ran only on very specific hardare.
1969 - Bell Labs decided to end their participation in the Multics project. Dennis Ritchie and Ken
Thompson, Bell Labs employees who were familiar with the Multics project, decided to implement
some of its features in a much lighter-weight operating system, which they called Unix. Unix was
soon rewritten in the C language, and could be fairly easily ported to other types of computers.
OPERATING SYSTEMS HISTORY (CONT’D)
1970s - Unix continued to grow in popularity. Many computer vendors licensed it and adapted it to
work with their computers; some of these variants included Xenix (Microsoft), AIX (IBM), Ultrix (Digital
Equipment Corporation), HP/UX (HP), and many others.
1976 - Microcomputers, 8-bit computers inexpensive enough to be purchased by individuals or
small businesses, became widely available. Digital Research's CP/M operating system became
popular on Intel- and Zilog-based microcomputers.
1981 - IBM decided to enter the microcomputer market with the IBM PC. Needing an operating
system, IBM contacted Microsoft - but their only operating system at the time was Xenix, and the
IBM PC was not powerful enough to run Xenix well, so Microsoft licensed (and later purchased) a
CP/M clone named 86/DOS (aka QDOS) from a local computer company (Seattle Computer
Products). This operating system was used as the basis for Microsoft's DOS (disk operating system)
product, named PC/DOS when marketed by IBM or MS/DOS when marketed by Microsoft.
OPERATING SYSTEMS HISTORY (CONT’D)
1983 - The IBM PC was successful in the market, due to both IBM's marketing and the fact that IBM
published the technical specifications which enabled other companies to sell compatible
accessories, so IBM produced more powerful models including the IBM PC/XT (1983) and PC/AT
(1984). These models had much larger amounts of RAM as well as hard disks, so Microsoft needed
to update DOS with new features; they did this by incorporating some features from Xenix (their
Unix version), including a heirarchical filesystem.
1984 - Richard Stallman created GNU Project and the Free Software Foundation to promote the
concept of Free Software ("free" in the sense of freedom, not free of cost).
1984 - The X Window System is first developed at MIT to provide a cross-platform foundation for
graphical user interfaces. It becomes widely used on Unix systems sold by many different vendors.
1985 - Microsoft introduced Windows 1.0, which was used in conjuction with DOS. Windows
provided a graphical user interface and multitasking (though both were initially very limited).
OPERATING SYSTEMS HISTORY (CONT’D)
1991 - Linux Torvalds, a computer science student in Finland, wrote and released the Linux kernel.
The Linux kernel, combined with software from the GNU project and other free software projects
such as the X Window System, made a useful operating system (often referred to as "GNU/Linux" or
just "Linux").
1992 - IBM and Microsoft ended their collaboration on OS/2, an advanced operating system with a
graphical user interface. IBM continued independent development of OS/2.
1993 - Microsoft introduced Windows/NT (for "New Technology"), incorporating some concepts
from OS/2. Unlike previous versions of Windows which required DOS, Windows/NT provided a
complete (and more advanced) operating system with a GUI and did not require DOS. All future
versions of Windows were based on Windows/NT.
2001 - Apple released MacOS, a Unix-like operating system based on the "Darwin" kernel
2007 - A consortium of developers called the Open Handset Alliance, led by Google, released the
Android operating system for mobile devices. The Android platform is based on the Linux kernel.