Monday 24 March 2014

Software


Categories of Software
System Software
  •  Operating System
  •   Device Drivers
  •   Firmware
  •   Servers
  •   Utilities
  •   Interfaces

Operating Systems:

A collection of programs that control the hardware in a computer system. The heart of the OS is the kernel which controls most low-level hardware operations.
  • Windows - Multitasking OS from Microsoft. Provides a graphical user interface that enables all applications to look similar.
  • UNIX - Robust/stable OS to use on servers and workstations. Traditionally command line interface but there are many user interfaces developed to run on top of UNIX.
  • MacOS - A highly user friendly OS based on UNIX developed by apple using proprietary standards. Also iOS used on iPhones and iPads. 
  • Linux - designed to behave like UNIX but developed separately and is the basis for many other OS'. The kernel has been adapted to run on many devices from supercomputers to smartphones. These Linux based systems include Android, Debian and Ubuntu.
Device Drivers:

When a outside peripheral is needed to interact with the computer a signal (interrupt) is generated to tell the OS it needs to deal with something. These drivers are programs that operate or control a particular peripheral and enables them to access hardware functions without knowing the precise details of the system hardware.

Development Software

Editors
Used to write programs and are cut down word processors. Often have features to help organise the code

Compilers:
Translate high level code written by the programmer into machine code to be run by the computer.
(http://simple.wikipedia.org/wiki/Compiler#Compiling_the_language - for information on how it works)

Interpreters: In computer science, an interpreter is a computer program that performs commands written in a computer programming language. Interpreters are one of the two most important ways a program can be run, the other being compilation. The interpreter is a language processor which converts a high-level language program into machine language by converting and executing it line-by-line.

Linkers:
Used to connect sub programs to create larger programs. Often programs made up from many small programs using different languages etc. These programs link all these sub modules together.

Assemblers:
Translate assembly language programs into machine instructions. Uses mnemonics instead of binary bit code so the programmer an read it easier.

Applications

Programs that do real world jobs. Huge range of apps to do many jobs for a wide range of devices.