Computer hardware would be useless without software, the lists of instructions which tell the hardware what to do. Computers require various types of software to make them useful. These can be classified as follows: 1. Operating System 2. Utility software 3. Applications software CS Topic 5 - Computer Software v2 1 1. Operating system 2. Utility software 3. Applications software The operating system(OS) is the piece of software required by the computer to make sure that it works correctly and efficiently. It manages the computer and allows the user to communicate with the hardware. Modern operating systems are typically stored on Hard disk and loaded into RAM when the computer is switched on. Storing the OS on disk means that it can be easily updated. Windows Vista and XP are updated on a daily basis. CS Topic 5 - Computer Software v2 2 The bootstrap loader 1. Operating system 2. Utility software The bootstrap loader is a small but very important part of the OS which is permanently stored in ROM. 3. Applications software When the computer is first switched on the bootstrap loader starts to run. It checks the RAM and input/output devices to make sure that they are working and then locates the OS on backing storage, usually on Hard disk but could be on CD or even a memory stick. It then loads the OS into RAM and the OS takes over control. CS Topic 5 - Computer Software v2 3 The main part of the operating system in RAM manages the computer and allows the user to communicate with the hardware 1. Operating system 2. Utility software 3. Applications software It has 6 main functions: • Interpreting User Commands • File Management • Memory Management • Input/Output Management • Managing Processes • Resource Allocation CS Topic 5 - Computer Software v2 4 • Interpreting User Commands This part of the operating system accepts commands (from a keyboard, mouse, etc) and passes them to the appropriate parts of the operating system. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation If the syntax of the command is not correct then an error message should be displayed for the user or the command should be ignored. e.g. clicking the left mouse button on a blank area of the desktop. CS Topic 5 - Computer Software v2 5 • File Management 1 This part of the OS manages file operations and backing storage allocation. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation It allocates blocks of data to particular areas on the backing storage medium. It maintains an index of where all the user's applications and data are stored so that they can be found when requested. If you give a command to load a file from disk, the Command Interpreter will pass this instruction to File Management. CS Topic 5 - Computer Software v2 6 • File Management 2 File Management uses its index to work out exactly where on the disk the file is stored. e.g. Track 10, Sector 4. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Resource Allocation Managing Processes File Management also maintains the security of the files. Included with the file information are the access rights for users. e.g. read only. When a file is to be loaded, File Management will pass the information about the physical location (e.g. Track 10, Sector 4) to Input/Output Management. CS Topic 5 - Computer Software v2 7 • Memory Management 1 Memory Management decides where programs and data are to be placed in RAM. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Resource Allocation Managing Processes It checks to make sure that there is enough free space to store the new program and data. It allocates an area of RAM to store the program. It allocates an area of RAM to store the data which the program is processing. e.g. when you work with Word then you will have a Word document which also requires RAM space CS Topic 5 - Computer Software v2 8 • Memory Management 2 It makes sure that programs do not access RAM space allocated to other programs • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Resource Allocation Managing Processes It frees RAM space when programs are exited. It works with Input/Output Management to organise a Hard Disk for virtual memory use. CS Topic 5 - Computer Software v2 9 • Input/Output Management 1 It is the task of Input/Output Management to do all the actual data transfers and issue the appropriate control signals to the peripheral devices. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation When a file is to be loaded, File Management will pass the information about the physical location (e.g. Track 10, Sector 4) to Input/Output Management. Input/Output Management has to send the correct signals to the Hard Disk to tell it to access Track 10, sector 4, read the data and send it to RAM. CS Topic 5 - Computer Software v2 10 • Input/Output Management 2 Different types of peripheral devices work in different ways. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation Hard Disk Drives, CD Drives, DVD drives, solid state storage devices, inkjet printers, laser printers, CRT monitors, LCD monitors are all very different. Input/Output Management has to know how to communicate with each device to allow data transfer to take place. Device manufacturers provide drivers(small programs) which are installed and become part of Input/Output Management. These allow communication to take place. CS Topic 5 - Computer Software v2 11 • Managing Processes 1 A process is defined as being “ an instance of a sequence of code in execution” • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation A modern OS will typically have several processes on the go at the same time. e.g. Operating system, Microsoft Word, printing, virus checker. Processes have to share processor time. The OS has to manage the processes so that they can be carried out efficiently and effectively. CS Topic 5 - Computer Software v2 12 • Managing Processes 2 At any give time, the OS has to decide: • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation • which process is to be allowed to use the processor. • how long it should be allowed to use the processor for. The OS keeps a note of the state of each process and makes sure that each processor is getting its fair share of processor time. CS Topic 5 - Computer Software v2 13 • Resource Allocation The competing processes require access to resources. • • • • • • Interpreting User Commands File Management Memory Management Input/Output Management Managing Processes Resource Allocation Resources include the processor, RAM and Input/Output devices. If one process is in the middle of sending data to the hard disk then another process cannot be allowed to start sending its data there too until the first process has completed its task. The OS has to manage the resources by controlling how and when the processes are to be allowed to use them. CS Topic 5 - Computer Software v2 14 1. Operating system 2. Utility software 3. Applications software Utility software consists of programs which are designed to help with the maintenance of the computer and to ensure sure that it works correctly and efficiently. The distinction between utility software and functions of the operating system is rather blurred as modern operating systems are often bundled with utility software. e.g. disk defragmenter, anti-spyware tools, firewall. CS Topic 5 - Computer Software v2 15 1. Operating system 2. Utility software 3. Applications software There are many types of utility software with three examples to be looked at in the Higher course. • Disk editor • Defragmenter • Virus checker CS Topic 5 - Computer Software v2 16 • Disk Editor A disk editor is a utility program that lets the user read, edit, and write the low-level raw data on a disk. • Disk editor • Defragmenter • Virus checker It can be used to repair/reconstruct damaged files and directories. This type of utility gives a user complete power over the contents of every block on the disk and so it requires considerable knowledge and care to use it effectively. It would be very easy for an inexperienced user to cause serious damage to the contents of a disk by altering bytes of data on the disk. CS Topic 5 - Computer Software v2 17 • Defragmenter 1 Magnetic disks are organised so that they store data in blocks of a fixed size. Depending on its size, a file will typically occupy several blocks. • Disk editor • Defragmenter • Virus checker Normally data is stored in consecutive blocks on the disk. This makes sense as the Read/Write head moves to the required track and starts to read the consecutive blocks. After a time, the disk starts to fill up and files are edited and deleted. The remaining free blocks are not necessarily next to each other. CS Topic 5 - Computer Software v2 18 • Defragmenter 2 When new files are saved the blocks may be on different parts of the disk. It then takes longer to access these files. • Disk editor • Defragmenter • Virus checker This is called file fragmentation. A defragmenter program is a utility which reorganises the data on the disk so that all blocks for a file are stored together to improve access times. This should be done regularly to maintain hard disk performance. CS Topic 5 - Computer Software v2 19 • Virus Checker A virus is a program or programming code that replicates by being copied or initiating its copying to another program, computer boot sector or document. • Disk editor • Defragmenter • Virus checker A virus checker examines a computer system to find virus software. It can be set to examine any type of backing storage media, check email attachments and files downloaded from the internet. A good virus checker will constantly work in the background checking for signs of virus activity. CS Topic 5 - Computer Software v2 20 • file virus • boot sector virus • macro virus Viruses can be classified by the type of file which they infect. • file virus A file virus attaches itself to an executable file (program which you can run). e.g. Word, Photoshop, FIFA09. • boot sector virus A boot sector virus infects the system files that your computer uses when the bootstrap loader begins to load in the operating system from disk. CS Topic 5 - Computer Software v2 21 • file virus • boot sector virus • macro virus What is a macro ? A macro is a saved sequence of commands or keyboard strokes that can be stored and then recalled. It makes use of the programming language which is contained in some applications. e.g. Visual Basic for Applications (VBA) These applications allow you to embed a macro in a document and have the macro execute each time the document is opened. CS Topic 5 - Computer Software v2 22 • file virus • boot sector virus • macro virus • macro virus A macro virus contains instructions which may damage a document or other software. It causes a sequence of actions to be performed automatically when the application is started or something else triggers it. Once a macro virus gets onto your machine, it can embed itself in all future documents you create with the application. This is how a macro virus spreads. CS Topic 5 - Computer Software v2 23 • replication • camouflage • watching • delivery • replication A virus makes copies of itself into other program files. • camouflage Virus program writers can have fake code within the program to prevent virus checkers from spotting the patterns of instructions which are commonly used in virus programs. CS Topic 5 - Computer Software v2 24 • replication • camouflage • watching • delivery • watching Some virus programs remain dormant in a computer until a particular event triggers them into action. This can be a certain date, time or the running of a specific application. • delivery This is the term used for when the virus executes and carries out its intended actions. CS Topic 5 - Computer Software v2 25 Are viruses, worms and trojan horses all the same? NO A virus is a program or programming code that replicates itself into another program or document. A virus cannot be spread without a human action, (such as running an infected program) to keep it going. CS Topic 5 - Computer Software v2 26 Are viruses, worms and trojan horses all the same? NO Worms spread from computer to computer and, unlike a virus, have the ability to travel without any help from a person A worm does not alter files but resides in active memory and replicates. Worms use parts of an operating system that are automatic and usually invisible to the user. CS Topic 5 - Computer Software v2 27 Are viruses, worms and trojan horses all the same? NO Due to the copying nature of a worm and its ability to travel across networks the end result in most cases is that the worm consumes too much system memory (or network bandwidth). This causes Web servers, network servers, and individual computers to stop responding and networks grind to a halt. CS Topic 5 - Computer Software v2 28 Are viruses, worms and trojan horses all the same? NO Trojan horses do not reproduce by infecting other files nor do they self-replicate. At first glance they will appear to be useful software but will actually do damage once installed or run on your computer. The user is tricked into opening them because they appear to be receiving legitimate software or files from a legitimate source. CS Topic 5 - Computer Software v2 29 Are viruses, worms and trojan horses all the same? NO Some Trojans are designed to be more annoying than malicious (like changing your desktop, adding silly active desktop icons) or they can cause serious damage by deleting files and destroying information on your system. Trojans can also create a backdoor on your computer that gives malicious users access to your system, allowing confidential or personal information to be compromised. CS Topic 5 - Computer Software v2 30 Anti-virus software use various techniques to detect viruses. Four techniques are covered in the Higher course: • Use of checksum • Searching for Virus signature • Heuristic detection • Memory resident monitoring CS Topic 5 - Computer Software v2 31 • Use of checksum The anti-virus software scans an uninfected file and calculates a checksum by adding up all the binary codes in the file. • Use of checksum • Searching for virus signature • Heuristic detection • Memory resident monitoring Whenever the file is to be used, the anti-virus software adds up all the binary codes again and the checksum should match the earlier checksum. If the checksums don’t match then it may be that the file now contains some virus code. CS Topic 5 - Computer Software v2 32 • Searching for virus signature • Use of checksum • Searching for virus signature • Heuristic detection A known virus will contain a • Memory resident monitoring sequence of particular lines of code. This sequence is known as its virus signature. Anti-virus software keeps a database of known virus signatures and refers to this when looking for viruses. When it finds a macro, program or boot sector file with code matching one of the known virus signatures then it has found a virus. The virus signature database has to be updated regularly to make this effective. CS Topic 5 - Computer Software v2 33 • Heuristic detection The term heuristics comes from a Greek word meaning ”to find”. • Use of checksum • Searching for virus signature • Heuristic detection • Memory resident monitoring This technique involves using knowledge gained from what existing viruses are like and how they act and using this past knowledge when looking for new viruses. It will look for certain “behaviour” in code e.g. Code triggered by date or time events, code that searches for .exe files(programs), code that tries to write to disk in an unusual way. Heuristic detection makes intelligent guesses about what files contain viruses. CS Topic 5 - Computer Software v2 34 • Memory resident monitoring This type of anti-virus software is loaded into RAM on start up and remains in operation constantly for as long as the computer is left on. • Use of checksum • Searching for virus signature • Heuristic detection • Memory resident monitoring It monitors all computer activity and checks programs for infection when they are about to run. It checks all programs and files being loaded, modified, copied or decompressed to look for suspicious signs or activity. This slows down system performance but can be very effective at preventing the spread of viruses. CS Topic 5 - Computer Software v2 35 There are many standard file formats for graphic files. Each has its own advantages and disadvantages and users should choose formats carefully depending on the purpose for the graphic file. Compression Graphics files, particularly bit-mapped graphics, can generate very large file sizes. It is possible to analyse the data in the file and cut down on the data which needs to be stored. This is known as compression. CS Topic 5 - Computer Software v2 36 Compression saves disk space but affects system performance as saving and loading takes longer due to the extra processing involved. Lossless Compression This technique manages to cut down on the amount of data which needs to be stored but does not actually lose any of the data. This means that the quality of the image is not affected. Lossy Compression This technique cuts down on the amount of data which needs to be stored by discarding some of the data. This means that the quality of the image is affected. CS Topic 5 - Computer Software v2 37 jpeg • jpeg • gif • TIFF (Joint Picture Experts Group) JPEG is designed for compressing either full-colour or greyscale images of natural, real-world scenes. It works well on photographs, naturalistic artwork, and similar material; not so well on lettering, simple cartoons, or line drawings It allows you to save graphics using 24 bit depth allowing 16 million colours. It uses lossy compression and the user can decide between quality and file size depending on the intended use. CS Topic 5 - Computer Software v2 38 • jpeg • gif • TIFF Advantages of using JPEG • JPEG is a common standard and so it is understood by many applications • JPEG images can be compressed by varying amounts to make the file size smaller • JPEG allows 24 bit colour(True Colour) and so it is good for photographs Disadvantage of using JPEG • JPEG uses lossy compression so the quality of the original image suffers. CS Topic 5 - Computer Software v2 39 gif • jpeg • gif • TIFF (graphics interchange format) GIF is normally used for diagrams, buttons, etc. which have a small number of colours. It can also be used for simple animations. It only allows you to save graphics using 8 bit depth allowing 256 colours. It uses lossless compression and so retains quality but it cannot achieve as big a reduction in file size as jpeg can. CS Topic 5 - Computer Software v2 40 TIFF • jpeg • gif • TIFF (Tagged Image File Format) TIFF is is an industry standard file format developed for the purpose of storing high-resolution bit-mapped, grey-scale, and colour images. It allows you to save graphics using up to 32 bit depth allowing 4 thousand million colours. It can use either lossy or lossless or no compression and is often used with lossless or no compression when file quality is to be maintained. This, of course, leads to large file sizes. CS Topic 5 - Computer Software v2 41 When choosing software it is important to examine the system requirements to make sure that the software will run on the hardware. System requirements will typically include details on: Memory i.e. how much RAM is required for the software. Storage Requirements i.e. how much Hard Disk space is required for the software. OS compatibility i.e. which operating system it requires. CS Topic 5 - Computer Software v2 42