External Security
Typically, an operating system offers various services to other
network computers and users. These services are usually provided
through ports or numbered access points beyond the operating
systems network address. These services include offerings such as file
sharing, print services, e-mail, web sites, and file transfer protocols
(FTP).
At the front line of security are hardware devices known as
firewalls. At the operating system level, there are a number of
software firewalls available. Most modern operating systems include a
software firewall which is enabled by default.
A software firewall can be configured to allow or deny network
traffic to or from a service or application running on the operating
system. Therefore, one can install and be running an insecure service
such as Telnet or FTP and not have to be threatened by a security
breach because the firewall would deny all traffic trying to connect to
the service on that port.
Graphical User Interfaces
Today, most modern operating systems contain Graphical User
Interfaces (GUIs). A few of the older ones tightly integrated the GUI
to the kernel – one of the central components of the operating system.
More modern operating systems are modular separating the graphics
subsystem from the kernel.
A GUI is basically the pictures you see on the screen that help
you navigate your computer. They include the icons and the menus.
Many operating systems allow the user to install or create any user
interface they desire.
Graphical user interfaces tend to change and evolve over time.
For example, Windows has modified its user interface almost every
time a new version of Windows is released. The Mac OS GUI changed
dramatically with the introduction of Mac OS X in 2001.
Device Drivers
A device driver is a specific type of computer software developed
to allow interaction with hardware devices. Typically, this constitutes
an interface for communicating with the device through the specific
computer bus or communications subsystem that the hardware is
connected to.
Device drivers provide commands to and/or receiving data from
the device and on the other end, the requisite interfaces to the
operating system and software applications.
You cannot have a CD-ROM drive, for example, without a device
driver for that specific piece of equipment. You have drivers for a
printer, scanner, and even your mouse.
It is a specialized hardware-dependent program which is also
operating system specific that enables another program – typically an
operating system or applications software package or computer
program running under the operating system kernel.
This allows the system to interact transparently with the
hardware device and usually provides the requisite interrupt handling
necessary for any time-dependent hardware interfacing needs.
The key design goal of device drivers is abstraction. Every
model of hardware is different. Newer models also are released by
manufacturers that provide more reliable or better performance and
these newer models are often controlled differently.
Computers and their operating systems cannot be expected to
know how to control every device both now and in the future. To
solve this problem, operating systems essentially dictate how every
type of device should be controlled. The function of the device driver
is then to translate these OS mandated function calls into device
specific calls.
In theory, a new device which is controlled in a new manner
should function correctly is a suitable driver is available. This new
driver will insure that the device appears to operate as usual from the
operating system’s point of view for any person.
Some operating systems come with pre-installed drivers or a
variety of common drivers to choose from. When you buy a new piece
of hardware such as a joy stick, they will often come with a disk that
contains the device driver that you can install. Other drivers or
updated drivers are available online at the manufacturer’s website.
Application Interface
Just as drivers provide a way for applications to make use of
hardware subsystems without having to know every detail of the
hardware's operation, application program interfaces (APIs) let
application programmers use functions of the computer and operating
system without having to directly keep track of all the details in the
CPU's operation. Let's look at the example of creating a hard disk file
for holding data to see why this can be important.
A programmer writing an application to record data from a
scientific instrument might want to allow the scientist to specify the
name of the file created. The operating system might provide an API
function named MakeFile for creating files. When writing the program,
the programmer would insert a line that looks like this:
MakeFile [1, %Name, 2]
In this example, the instruction tells the operating system to
create a file that will allow random access to its data (signified by the
1 -- the other option might be 0 for a serial file), will have a name
typed in by the user (%Name) and will be a size that varies depending
on how much data is stored in the file (signified by the 2 -- other
options might be zero for a fixed size, and 1 for a file that grows as
data is added but does not shrink when data is removed). Now, let's
look at what the operating system does to turn the instruction into
action.
The operating system sends a query to the disk drive to get the
location of the first available free storage location.
With that information, the operating system creates an entry in
the file system showing the beginning and ending locations of the file,
the name of the file, the file type, whether the file has been archived,
which users have permission to look at or modify the file, and the date
and time of the file's creation.
The operating system writes information at the beginning of the
file that identifies the file, sets up the type of access possible and
includes other information that ties the file to the application. In all of
this information, the queries to the disk drive and addresses of the
beginning and ending point of the file are in formats heavily dependent
on the manufacturer and model of the disk drive.
Because the programmer has written the program to use the API
for disk storage, the programmer doesn't have to keep up with the
instruction codes, data types and response codes for every possible
hard disk and tape drive. The operating system - connected to drivers
for the various hardware subsystems - deals with the changing details
of the hardware -- the programmer must simply write code for the API
and trust the operating system to do the rest.
APIs have become one of the most hotly contested areas of the
computer industry in recent years. Companies realize that
programmers using their API will ultimately translate this into the
ability to control and profit from a particular part of the industry. This
is one of the reasons that so many companies have been willing to
provide applications like readers or viewers to the public at no charge.
They know consumers will request that programs take
advantage of the free readers, and application companies will be ready
to pay royalties to allow their software to provide the functions
requested by the consumers.
As we’ve stated before, there are operating systems in all sorts
of products – not just computers. Cell phones, DVD recorders, and
TiVo players also have operating systems, however, those OSs are not
readily noticeable to the consumer and they do not have any control
over them.
This might be a good time to review some of the computer
operating systems that are on the market today.
Typically, an operating system offers various services to other
network computers and users. These services are usually provided
through ports or numbered access points beyond the operating
systems network address. These services include offerings such as file
sharing, print services, e-mail, web sites, and file transfer protocols
(FTP).
At the front line of security are hardware devices known as
firewalls. At the operating system level, there are a number of
software firewalls available. Most modern operating systems include a
software firewall which is enabled by default.
A software firewall can be configured to allow or deny network
traffic to or from a service or application running on the operating
system. Therefore, one can install and be running an insecure service
such as Telnet or FTP and not have to be threatened by a security
breach because the firewall would deny all traffic trying to connect to
the service on that port.
Graphical User Interfaces
Today, most modern operating systems contain Graphical User
Interfaces (GUIs). A few of the older ones tightly integrated the GUI
to the kernel – one of the central components of the operating system.
More modern operating systems are modular separating the graphics
subsystem from the kernel.
A GUI is basically the pictures you see on the screen that help
you navigate your computer. They include the icons and the menus.
Many operating systems allow the user to install or create any user
interface they desire.
Graphical user interfaces tend to change and evolve over time.
For example, Windows has modified its user interface almost every
time a new version of Windows is released. The Mac OS GUI changed
dramatically with the introduction of Mac OS X in 2001.
Device Drivers
A device driver is a specific type of computer software developed
to allow interaction with hardware devices. Typically, this constitutes
an interface for communicating with the device through the specific
computer bus or communications subsystem that the hardware is
connected to.
Device drivers provide commands to and/or receiving data from
the device and on the other end, the requisite interfaces to the
operating system and software applications.
You cannot have a CD-ROM drive, for example, without a device
driver for that specific piece of equipment. You have drivers for a
printer, scanner, and even your mouse.
It is a specialized hardware-dependent program which is also
operating system specific that enables another program – typically an
operating system or applications software package or computer
program running under the operating system kernel.
This allows the system to interact transparently with the
hardware device and usually provides the requisite interrupt handling
necessary for any time-dependent hardware interfacing needs.
The key design goal of device drivers is abstraction. Every
model of hardware is different. Newer models also are released by
manufacturers that provide more reliable or better performance and
these newer models are often controlled differently.
Computers and their operating systems cannot be expected to
know how to control every device both now and in the future. To
solve this problem, operating systems essentially dictate how every
type of device should be controlled. The function of the device driver
is then to translate these OS mandated function calls into device
specific calls.
In theory, a new device which is controlled in a new manner
should function correctly is a suitable driver is available. This new
driver will insure that the device appears to operate as usual from the
operating system’s point of view for any person.
Some operating systems come with pre-installed drivers or a
variety of common drivers to choose from. When you buy a new piece
of hardware such as a joy stick, they will often come with a disk that
contains the device driver that you can install. Other drivers or
updated drivers are available online at the manufacturer’s website.
Application Interface
Just as drivers provide a way for applications to make use of
hardware subsystems without having to know every detail of the
hardware's operation, application program interfaces (APIs) let
application programmers use functions of the computer and operating
system without having to directly keep track of all the details in the
CPU's operation. Let's look at the example of creating a hard disk file
for holding data to see why this can be important.
A programmer writing an application to record data from a
scientific instrument might want to allow the scientist to specify the
name of the file created. The operating system might provide an API
function named MakeFile for creating files. When writing the program,
the programmer would insert a line that looks like this:
MakeFile [1, %Name, 2]
In this example, the instruction tells the operating system to
create a file that will allow random access to its data (signified by the
1 -- the other option might be 0 for a serial file), will have a name
typed in by the user (%Name) and will be a size that varies depending
on how much data is stored in the file (signified by the 2 -- other
options might be zero for a fixed size, and 1 for a file that grows as
data is added but does not shrink when data is removed). Now, let's
look at what the operating system does to turn the instruction into
action.
The operating system sends a query to the disk drive to get the
location of the first available free storage location.
With that information, the operating system creates an entry in
the file system showing the beginning and ending locations of the file,
the name of the file, the file type, whether the file has been archived,
which users have permission to look at or modify the file, and the date
and time of the file's creation.
The operating system writes information at the beginning of the
file that identifies the file, sets up the type of access possible and
includes other information that ties the file to the application. In all of
this information, the queries to the disk drive and addresses of the
beginning and ending point of the file are in formats heavily dependent
on the manufacturer and model of the disk drive.
Because the programmer has written the program to use the API
for disk storage, the programmer doesn't have to keep up with the
instruction codes, data types and response codes for every possible
hard disk and tape drive. The operating system - connected to drivers
for the various hardware subsystems - deals with the changing details
of the hardware -- the programmer must simply write code for the API
and trust the operating system to do the rest.
APIs have become one of the most hotly contested areas of the
computer industry in recent years. Companies realize that
programmers using their API will ultimately translate this into the
ability to control and profit from a particular part of the industry. This
is one of the reasons that so many companies have been willing to
provide applications like readers or viewers to the public at no charge.
They know consumers will request that programs take
advantage of the free readers, and application companies will be ready
to pay royalties to allow their software to provide the functions
requested by the consumers.
As we’ve stated before, there are operating systems in all sorts
of products – not just computers. Cell phones, DVD recorders, and
TiVo players also have operating systems, however, those OSs are not
readily noticeable to the consumer and they do not have any control
over them.
This might be a good time to review some of the computer
operating systems that are on the market today.
Read more
No comments:
Post a Comment