Software is basically a set of instructions and information which tell the computer how to perform. This is opposed to physical hardware where the machine actually performs the operation and is assembled. The computer hardware has more to do with making the machine to run, then the software does.
Software has many forms. One of the most common forms is for applications or programs. Examples include word processors, spreadsheets and word processing applications. Other examples include operating systems, email systems and music systems. In computer systems the software is often distributed to end users through a program like Microsoft Windows, or a related open source or proprietary system software.
The application software generates the visible output on the computer hardware. The system software, however, is less visible to end users. It only consists of the programming code, hardware drivers and device drivers that are embedded in the CPU (at the microprocessor) or the hard drive (in the storage device). The hardware is what the user sees and the operating system is what they control.
The computer hardware is composed of several different components. They are microprocessor, memory controller, input and output devices, computer buses and execution units. Each of these parts play different roles, but they are all necessary to provide the application software with the appropriate functionality. For example the microprocessor controls the way instructions are processed and decides when a particular command is completed by the input and output hardware.
There are several different types of hardware that go into creating a typical computer system. These different types of hardware can be desktop, laptop and netbooks. Desktop computers have their main drive and memory installed in the desktop and other devices which can be attached to the desktop. Laptop machines on the other hand use different types of hardware and are normally smaller than desktop computers.
There are many different types of system software that allow people to develop applications which go beyond the basic capabilities of a computer. Examples include language, object-oriented language (OOP), component, framework and user services. The programming software is used to create applications that interact with the physical computer hardware such as operating systems, security software and memory management software. All these things together allow users to develop robust and interactive applications that perform intensive tasks and make life easier.
Many companies sell systems software which allow a company to develop its own applications. Oftentimes this is combined with computer hardware, which already has been pre-programmed for specific purposes. Companies using this type of software will often write machine language or use an interpreter for the machine language. Machine language is short for the source code which machine-code is the machine-written version of the application program.
Programming languages can either be written as source code or as machine code. It is common for programmers to write machine code since it can be manipulated directly by the application software which will load the programs and run the desired steps. In the case of source code, the end users can read and change the code and use it as they wish. Machine code however cannot be changed by the end users.