Candidates should be able to:
- explain the need for the following functions of an operating system:
- user interface
- memory management
- peripheral management
- describe the purpose and use of common utility programs for:
- computer security (antivirus, spyware protection and firewalls)
- disk organisation (formatting, file transfer, and defragmentation)
- system maintenance (system information and diagnosis, system cleanup tools, automatic updating)
- discuss the relative merits of custom written, off the shelf, open source and proprietary software.
What is an operating system?
The Operating System (OS) of a computer is a set of software programs that control the way the user controls the computer and access application software. The OS also controls the way application software accesses computer hardware such as input and output peripherals, storage devices and memory space.
Microsoft Windows XP, Microsoft Windows 7, Mac OS X, LINUX and UNIX are all examples of operating systems used on computers. Android and iOS are examples of operating systems used on SmartPhones.
What are the main functions of an operating system?
Providing the user interface
A user interface is the part of the OS that allows the user to interact with the hardware and software in the computer system. It determines the look and feel of the computer interface.
Examples of user interfaces:
- Command line interface (CLI) – commands are typed directly into the computer and the enter button is pressed to run them. The commands must be entered correctly and are often abbreviated. They can be difficult to remember. For example, the command:
c:>copy c:examplefile.doc a:would copy a file called ‘examplefile.doc’ from the hard drive (drive C) to a floppy disk (drive A).
- Graphical User Interface (GUI) – This type of interface is sometimes called a WIMP interface (Windows, Icons, Menus, Pointer).
The contents of folders (directories) and the interface of programs that are running are displayed in rectangular ‘windows’ which can be moved and resized.
Icons (small pictures) are used to represent files or software and the mouse can be used to control a pointer that is used to move icons, run programs and select options from pull-down menus.
Comparing a Command Line Interface with a Graphical User Interface
|No pointing device is used, the commands are typed and then run by pressing the ENTER key||A pointing device is used to select items and
make choices. Commands are typically run by double-clicking on icons
|The user has to know the commands or look them up||The commands are much more intuitive|
|The commands usually have to be entered in full||Command shortcuts are possible such as <Ctrl> C to copy|
|The user has to learn the commands and more training is needed||Less learning and training by the user is required|
|The interface can be daunting, more difficult to use and the user is more likely to make mistakes||The GUI is more user-friendly|
|There are no graphics||Graphics are used to represent tasks, files etc.|
|There are no menus||Menus are used for making choices and selections|
|The user has complete control||The user choices are restricted to those on the menus|
|Commands have to be entered accurately with the correct spellings and syntax (rules)||Spelling and typing errors are avoided|
The OS manages memory by allocating portions of RAM to programs when they need it and then freeing it up when it is no longer needed. The OS can also use secondary storage to increase the effectiveness of memory management using virtual memory.
A peripheral is a computer hardware device that is not an essential part of the computer such as the memory and the microprocessor.
Peripheral devices can be external (such as a mouse, keyboard, printer or monitor) or internal (such as a CD-ROM drive or network card).
When a new peripheral is added, a software driver is needed to allow the OS to manage the device.
Providing a software platform
The OS is the platform that other software runs in. It allows the user to install, execute and delete software.
Multi-tasking is the ability for an OS to simultaneously execute multiple programs by:
- Allocating a processor ‘time slot’ for each programming task that is running
- Managing the priorities for each programming task that is running
The OS provides different levels of user access and password protection to keep unauthorized users out of the computer system. It may also provide backup and recovery routines for recovering the system in the event of a system failure.
What are utility programs used for?
Utility programs help manage, maintain, protect and control computer resources.
- Antivirus – software that:
- Prevents the installation of viruses that may harm the computer
- Protects the computer by preventing installed viruses from altering important files such as the boot sector or the operating system
- Periodically scans the computer for installed viruses that may harm the computer
- It then deletes or quarantines any that it finds.
- To be effective, the virus definitions file that the software uses to check for viruses must be kept up-to-date.
- Spyware protection – software that regularly checks the computer for programs designed to gather personal and financial information which could result in financial loss and identity theft etc.
- Firewall – software or hardware that permits or denies network transmissions between networks based upon a set of rules. It is frequently used to protect networks from external hacking attempts while allowing legitimate communications to pass.
- Formatting – software that prepares a hard disk, floppy disk or flash memory for data storage. The formatting process may create the file system (high level formatting) or just delete any existing data and check and fix any errors in the storage media (low-level formatting).
- File transfer – software that manages the copying or moving of files over a network.
Disk defragmenter – software that reorganises files or parts of files so that the data is physically stored together, thus speeding up file access and ensuring that free disk space is maximised by collecting it together.
(Disk fragmentation occurs when the operating system splits up large files when saving them, to try and fill the gaps created when other files are deleted or their size changes).
- System information and diagnosis – software that provides information on the hardware and software of a computer system and offers a diagnosis of any problems that are found.
- System cleanup tools – software that searches the computer system for settings that are wrong and files which are no longer needed. Setting errors are corrected or deleted. Files and registry entries that are no longer needed are deleted to free up disk space and improve performance.
- Automatic updating – software that searches the Internet for updated versions of the software on the computer and downloads and installs the updates so that the computer system always has the latest software version, including any fixes for known problems/security issues.
- Backup software – software that assists in backing up selected files, file types or an entire hard drive.
What are the merits of different sources of software?
Custom written (bespoke) software
Custom written software is software that has been created especially for a particular ‘user’ (not a specific purpose).
- Appropriate ‘off the shelf’ software might not exist or not match the needs of the user exactly. Using custom written software therefore means there is more chance of gaining an advantage over competitors.
- Although development costs can be significant, it might still be cheaper than paying for features that are not used in an ‘off the shelf’ software.
- It can be customised to interface with hardware that the user already has.
- It is likely to be simpler to use as it should not contain unnecessary features contained in ‘off the shelf’ software.
- It can be developed to match the need of the user, rather than the user adapting to ‘off the shelf’ software.
- It can be more easily modified and changed over time as the user requirements change.
- It tends to offer better support from the developers than with ‘off the shelf’ software.
- The user may not have access to the source code, or understand it, in which case the user is dependent upon the developer staying in business.
- The cost will usually be much more than with packaged software as programmers have to be paid to write and test the code.
- It can take a long time to develop and test the code as only a small team of programmers or even an individual may be writing and testing it.
- It is unlikely that here will be online help or support forums.
- Training on the new software will have to be developed, rather than using third-party agencies.
Open source software
Open source software does have a licence but there is no fee for using the software. The main restriction of the licence is that any source code developed must be distributed with the software in an editable form. The source code is therefore available for anyone else to use and modify.
A programmer can therefore still charge a customer for developing any bespoke programs or utilities using the software and a customer could sell any programs or utilities that were developed.
These restrictions continue to apply to any further developments of the code.
- Ethical implications: Using open source software encourages sharing and collaboration, something that maybe in conflict with a business trying to develop software to gain an advantage over a competitor. If open source software is developed and sold then the source code should continue to be freely available, something that many companies would object to.
- Financial implications: Although there will be no licensing fee for the software itself there might be development costs if it is customised in any way. The licensing allows for these costs to be regained by selling the developed software but the code must continue to be made freely available, possibly allowing competitors to take advantage of the time and money invested.
- Quality implications: although software has to conform to certain standards to be released under a public licence, there are no guarantees on the quality. There may be a large community of developers to support the software and contribute ideas but no one to get compensation from if things go wrong. The widely available code for open source software makes it easier for someone to identify security vulnerabilities, although many argue this availability results in increased scrutiny of the source code, making open source software actually more secure.
Off the shelf (packaged) software
Most software that is in use today is packaged, ‘off the shelf’ software that is designed to cover a wide range of possible uses and users. The same applications will typically be run by many thousands of users.
- It tends to be relatively cheap as the cost of development can be spread over a large number of users.
- It can be very sophisticated (e.g. MS Office applications) as the sales to such a large numbers of users means that a lot of resources can be applied to it’s development.
- It will have been thoroughly tested for the same reasons as above.
- There will be a lot of support for it because it will be widely used. This will include support forums, online help and user guides.
- It is often highly complex because it is designed for a wide range of users. This means that large sections may never be used by an organisation or a particular user.
- Users may end up having to change the way they work to fit in with the way that the software has been designed because it it is not tailored to their specific needs.
- It is possible that some operations required by a user cannot be carried out because the software is not designed to do so.
- Individual requests to the software developers for changes are unlikely to be met.
- The same system can be bought by competitors making it is difficult to gain any competitive advantage from using it.
Example: Microsoft PowerPoint is proprietary software which can be used to make presentations.
Proprietary software is computer software licensed by the copyright holder for use by someone else. This licence gives the user the right to use the software under certain conditions, but usually restricts them from inspection or modification of the source code and further distribution of all or part of the source code. Most ‘off the shelf’ software is proprietary software.