Lecture 11. Software industry: its develop-
ment and distribution, cultural signicance of
Free Software movement
Informal and unedited notes, not for distribution. (c) Z. Stachniak, 2011.
Note: in cases I were unable to nd the primary source of an image or determine
whether or not an image is copyrighted, I have specied the source as unknown. I
will provide full information about images and/or obtain reproduction rights when
such information is available to me.
Computer softwarethe soul of a computeris rarely a subject of a pas-
sionate discussion of new trends in information technologies. When a new
smartphone is demonstrated, its amazing functionality is instinctively but
unfairly linked with pressing of keys or touching of icons on the screen a
physical sensation connecting our experiences more with hardware than with
... yes, with what?
What is exactly happening when a smartphone is turned on? Well, several
things are happening: the screen lights on, the radio is turned on, several
icons appear, information appears about received e-mails, text messages, up-
dates, and other information. The device begins to listen to our requests:
screen touches, key presses, spoken commands. How is all of that accom-
When a new game is downloaded for, say the Microsofts Xbox360/Kinect
console, what exactly is being downloaded? how does the downloadable stu
that constitutes a game look like? and how a click on the download game
now link results in such a game nding its way into an Xbox?
1 The majority of computer and communication devices operate by following
instructions listed in the so-called program and stored in the devices mem-
ory. This applies to computers and tablets as well as to game consoles and
smartphones. So, an operating system of a smartphone (or OS), such as the
Android (Google), Symbian (Nokia) iOS (Apple), BlackBerry OS (RIM),
Windows Phone 7 and Windows Mobile (Microsoft) are programs, and so
are Xbox games.
Without programs, computers and other computing and information devices
would be as useless as a book with empty pages or a game console without
games. Without software your computer would be a very expensive paper-
weight. The next time you send an email or play Star Wars Kinect (Lu-
casArts Entertainment) take a moment to think about software engineers
that made all of that possible.
2 Hardware Software
Computer hardware: computers, their components and peripherals.
Fig. 1. (Personal) computer hardware.
Computer software: computer programs and associated data that deter-
mine a computers operating environment and provide users with applications
by commanding the hardware to perform specic tasks.
Computer software is delivered to a computer for execution in the form of
a sequence of instructions written in a specic so-called programming lan-
guage. A computer is following these instructions in the order given in the
program. The following example illustrates this idea with a little program
written in the language called BASIC (see Figure 2). Can you guess what
this program instructs a computer to do?
3 Fig. 2. Sample BASIC program (left) and its execution (right).
Types of computer software
Though there are many distinct categories of computer software (e.g. com-
puter games, operating systems, spreadsheets, databases, text editors, etc.),
most of them fall into two main categories: system software and application
System software takes care of a computers functionality. When a com-
puter or a smartphone is turned on, a certain kind of software is executed
to perform many functions (e.g. initialization of devices such as screen, key-
board, mouse, and audio card). Another kind of system software, called an
operating system, enables a user to communicate with a computer and its
peripherals, and to request the execution of other programs such as launch-
ing a Web browser, a text editor, or a computer game. An operating system
is watching a user, reacting to keyboard presses, mouse position, screen
touches, and other input data.
Application software is any program which is not a system software. This
is a large class which includes all the apps but also other types of programs
such as those used by software engineers to design and debug application pro-