System and Application software

Software is a set of programs, which is designed to perform a well-defined function. A program is a sequence of instructions written to solve a particular problem. So we can say that Software is a part of a computer system that consists of data or computer instructions, in contrast to the physical hardware from which the system is built. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. There are two types of software- 
  • System Software
  • Application Software
System software
which is software that directly operates the computer hardware, to provide basic functionality needed by users and other software, and to provide a platform for running application software.System software includes:
  • BIOS: Computer users the Basic Input/Output System (BIOS) to turn it on. This small program is permanently stored in a read-only memory (ROM) chip. It is a small program embedded in a chip, it occupies a place between the software and hardware, oftenly called firmware. BIOS performs a number of important functions. It interprets key strokes, displays characters on the screen, handles communication through the computer’s ports, and tests the system while turning it on. When a computer is turned on, the CPU hands over control to the BIOS, and the BIOS runs the power on self test or POST makes sure that all chips on the system board works well. Results of such tests are shown on the monitor at the time of turning on. Finally when the BIOS finds the operating system, in hard disk or floppy disk, it hands over control to the operating system.
  • Operating systems: which are essential collections of software that manage resources and provides common services for other software that runs "on top" of them. Supervisory programs, boot loaders, shells and window systems are core parts of operating systems. Some examples are Windows, Linux, MacOS, Android, iOS etc.
  • Device drivers: which operate or control a particular type of device that is attached to a computer. Each device needs at least one corresponding device driver; because a computer typically has at minimum at least one input device and at least one output device, a computer typically needs more than one device driver.
  • Utilities: which are computer programs designed to assist users in the maintenance and care of their computers.
  • Language Translators: Language Translator are used to convert one type of language into another for ex.  source code into machine code
    • Compiler: Compiler is a translator which is used to convert programs in high-level language to low-level language. It translates the entire program and also reports the errors in source program encountered during the translation.
    • Interpreter: Interpreter is a translator which is used to convert programs in high-level language to low-level language. Interpreter translates line by line and reports the error once it encountered during the translation process. It directly executes the operations specified in the source program when the input is given by the user.It gives better error diagnostics than a compiler.
    • Assembler: An assembler is a program that takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations. These instructions are refered as assembly language.
    • Linker:A linker combines one or more object files and possible some library code into either some executable, some library or a list of error messages.
    • Loader:A loader reads the executable code into memory, does some address translation and tries to run the program resulting in a running program or an error message (or both). 

  • Types of Code in software programming:
    • Machine code is code that is directly executable by the computer’s physical processor without further translation. Load into memory and go.
    • Byte code is code that can be executed by a virtual machine. The virtual machine implementation reads the bytecode and performs the operations it specifies within a virtual environment. Byte code is typically slower than machine code but is portable across platforms: the same byte code will run on any computer for which there is a compatible virtual machine implementation, without regard to the actual physical processor.
    • Object code is code generated by a compiler or other translator, consisting of machine code, byte code, or possibly both, combined with additional metadata that will enable a linker, loader, or linker-loader to assemble it with other object code modules into executable machine code or byte code. 
    • Source code is the input to a compiler or other code translator. Source code is normally generated by humans, and is the human-readable representation from which all the other forms of code are created. 
        Application software: which is software that uses the computer system to perform special functions or provide entertainment functions beyond the basic operation of the computer itself. There are many different types of application software, because the range of tasks that can be performed with a modern computer is so large for ex. Accounting software, Data management, Word processor, Personal computer games, Animation software, Media Player etc.

        Malicious software or malware: These software are developed to harm and disrupt computers. As such, malware is undesirable. Malware is closely associated with computer-related crimes.

        No comments:

        Post a Comment