Software categories introduction
Software categories is an approach to show where and why different software is used. Software is the non physical part of a computer. Software is all the information (aka programs and data) processed by a computer. A program is a sequence of instructions executed by a computer to do a specific task.
The first program that was held in an electronic memory was written by Tom Kilburn. The program calculated the highest factor of the integer 2^18 = 262,144 and was successfully executed on June 21st 1948 at the University of Manchester.
Hardware near software
The microcode is a program which is stored permanently in a processor. The microcode is a layer between hardware instructions (down) and machine code (up). It separates the machine code from the underlying electronic circuits. Microcode only runs on the exact electronic circuitry for which it is designed, it constitutes an inherent part of the particular processor design itself.
With the microcode technique, you can have different processors offering the same machine code instruction set. This allows you to run the same software on different processors, without making changes on the software.
Firmware is hardware near software stored in a ROM/EPROM of a computer device. Such a device can be the hard disk drive, video controller, DVD controller, etc. The firmware simplifies the programming of a device driver, it is the first abstraction layer for the underlying hardware.
BIOS / UEFI
The firmware in personal computer motherboards is called BIOS or UEFI.
BIOS is an acronym for Basic Input/Output System. It is also known as system BIOS, ROM BIOS, or PC BIOS. The name itself originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS is executed during the booting process after power-on on IBM compatible PCs.
The BIOS does the following tasks : power-on self test (POST) – initializes the video controller – initializes other devices (hard disk controller, etc.) – displays the start up screen – memory test and other tests – detects all other devices – detects the boot device – reads the boot sector – the code in the boot sector overtakes the BIOS and starts the operating system.
UEFI (Unified Extensible Firmware Interface) is a standard firmware interface for IBM compatible PCs, designed to replace the BIOS (Basic Input/Output System).
Embedded software operates devices like a camera, mobile phone, GPS, smart watch, satellite, etc. Embedded software is usually the only code running on a piece of hardware, while firmware hands over control to an operating system (more precisely to the device driver).
System software helps other software to run on a computer. System software basically relies the hardware with the application software.
Operating systems manages basic tasks such as recognizing input from the keyboard, sending output to the screen, keeping track of files and directories on the disk and controlling peripheral devices. The operating system relies the hardware with the application software.
Types of operating systems :
– real time
– time sharing
– single- and multi tasking
– single- and multi user
The kernel of an operating system includes the following subsystems :
– Task/process manager
– Scheduler (timing)
– Dispatcher (priority)
– CPU manager
– Memory manager
– I/O manager (spooler…)
– Interrupt handler
– File system (storage)
– Network system
The device driver simplifies the communication between the operating system and the device. The operating system can access the device functions without needing to know precise details of the hardware. The device driver sits in between the operating system and the device. The device driver is the second abstraction layer for the underlying hardware (device). The firmware is the first abstraction layer.
A utility is a small specialized program that provides an addition to the capabilities provided by the operating system. Utilities are usually used by system administrators to help analyze, configure, optimize or maintain a computer. Utilities are usually bundled with the operating system. Examples : system monitors, cleaning tools, network tools, disk tools, etc.
Application software is designed to perform specific tasks for end users.
A spreadsheet has a structure of rows and columns that help sort data, arrange data and calculate data. A spreadsheet also has the ability to calculate values using mathematical formulas applied on the data in the cells. Spreadsheets usually provide the ability to display data relationships graphically.
A word processor performs the task of creating, editing, formatting and printing documents.
A database system (DBS) consists of the database (data) and the database management system (DBMS).
A database is an organized collection of data. Technically, the term database refers to the file or group of files that holds the actual data as records.
The data is accessed by using a database management system (DBMS). Almost all DBMSs these days are relational database management systems, in which data is organized and stored in a set of related tables.
The database management system (DBMS) is designed to allow the :
of a database
Software development tools
Software development tools are programs used by a software developer to create, modify, test and debug applications.
A text editor is the little brother of a word processor. The text editor is used to edit plain text files, it can be used to write source code for applications.
The Compiler is a program which translates the source code into the object code.
The Linker is a program which translates the object code into the executable code. The linker can link multiple object code files into one file and then translate this file into the executable code.
A debugger is a tool that helps programmers identify and resolve bugs within a application’s source code.
The interpreter is a program that translates the source code and runs the program at the same time. It converts one program statement into machine code, executes it and then proceeds to the next statement.
An IDE (Integrated Development Environment) combines the text editor, debugger, compiler or interpreter.
Proprietary software is primarily commercial software that can be bought, leased or licensed from its vendor. In general, proprietary software doesn’t provide end users to have access to its source code. Proprietary software has restrictions of the software on the usage, modifications, copying and distributing. Proprietary software is also called “closed source software”.
Freeware is copyrighted (proprietary) software that may be used by end users. Generally, freeware is a concise and limited version of a larger and paid software program.
Definition from Wikipedia : Shareware is a type of proprietary software which is initially provided free of charge to users, who are allowed and encouraged to make and share copies of the program.
Free software is a social movement, while open source (see title below) is a development methodology. Free software is always open source software, but open source software is not always free software.
Free software is not necessary free of charge!
The Free Software Foundation’s free software definition focuses on the user’s unrestricted rights to use a program, to study and modify it, to copy it and redistribute it for any purpose. These are considered by the FSF the four essential freedoms. The Free Software Foundation maintains a list of what it considers free software licenses.
The four freedoms are :
1. The freedom to run the program, for any purpose.
2. The freedom to study how the program works and modify it as you wish. Access to the source code is a precondition for this.
3. The freedom to redistribute copies so you can help your neighbor.
4. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Open source software
Open source is a development methodology, while free software is a social movement. Open source software is NOT alway free software, it depends on the license.
Open source software is not necessary free of charge!
The Open Source Initiative (OSI) open-source criteria focus on the availability of the source code and the advantages of an unrestricted and community driven development model. The Open Source Initiative is an organization keeping a list of open-source licenses.
Custom software is made just for one individual or business that performs tasks specific to their needs.
Malware is sometimes also called virus, but it is more than just a virus ! MALWARE means MALicious SoftWARE. Malware is any software created with the purpose of causing damage to computers and/or networks. Malware attacks mainly the security and privacy.
– get post updates by connecting to our RSS feed
– get post updates by subscribing to our e-mail list
– share on social media :