- Computers & Software
Four Main Categories of Computer Software
Computer software, together with hardware and humanware components make a complete computer system. Whereas hardware and humanware are tangible and human, software is data/information, system programs, user applications, instructions, libraries, codes documents and media files, that can only be experienced.
Software files can be viewed as text and video; heard as sound; visually manipulated through input/output media, and executed with corresponding commands and gestures. Sample file extensions include, .exe or .dmg for executable and installation files, .doc or .odt for word processors, .jpg or .png for images, .zip for compressed files, .mp3 or .avi for audio/visual files etc.
Once installed on a client computer, software is retained in non-volatile memory commonly known as disk drive. When the computer is powered up, however, the operating system and all running applications, are temporarily loaded onto primary and volatile memory known as random access memory (RAM).
All running software kinds are retained in this memory for as long as they are used but will not be available once the computer is powered down.
In embedded systems, software is retained in volatile memory at all times, where it provides persistent low-level hardware control.
Copyright Licensing and Pricing
- Packaged/Canned/Proprietary software are developed and sold primarily through retail and online outlets. They are copyrighted not to be distributed illegally. Their source codes are not openly available e.g. Microsoft Windows, Adobe Premiere Pro and Nero Burning Rom.
- Freeware is software made available without cost by developers and is copyrighted. The developer may also turn the copyright status to shareware or paid software in future e.g. TeamViewer, Skype and Adobe Acrobat Reader.
- Free software is available with absolute freedom to install, copy, redistribute, change and improve. It is not categorized in terms of opportunity not to buy, but actually freedom to use totally for free. It may also be sold for a fee e.g. Process Explorer, Photoscape and Plus Office.
- Open Source is software that is available for free alongside its source code, but is copyrighted. It can be accessed freely or commercially and can be changed whatsoever by knowledgeable users to make improvements and to keep the open source spirit alive e.g. BitTorrent, Joomla and Ubuntu.
- Shareware/trialware is proprietary software that is available and can be shared for free for specified number of days, usually 30 to 60, after which the users are required to pay for full licenses e.g. Adobe Acrobat Professional, System mechanic and DVD Cloner.
- Vaporware is software that may not reach the market or appears much later than promised e.g. Sega VR, Taligent OS and and Doom.
- Public domain software are made available without cost, copyright and trademark by developers only that they are targeted towards public bodies and organizations e.g. Land View, ImageJ and Glitch.
- Pirate software are illegal distributions of canned software which contain crack programs for activation purposes. They are available online for free, or sold dubiously for much less than the retail price. Pirate software usually carry Trojan horse and other malware in them. The most pirated software include Windows OS, Adobe Photoshop and Microsoft Office.
- Premium and Freemium software are two words that have become synonymous with mobile apps but differ because of pricing models. Premium apps are more-less proprietary, though the user has to pay upfront even before downloading them. On the other hand, Freemium apps can be downloaded and used for free but require the user to pay for additional features. An example is Evernote app which is available for free with 60MB of cloud storage, but once this is used up, the user has to pay for additional storage on monthly or annual subscription. Freemium games also require the user to pay for more features and game levels beyond what is availed upon the first download. Clash of Clans, Candy Crash Saga and WPS Office are other examples of Freemium apps.
The Four Main Categories of Computer Software
1. System Software
This controls and coordinates the procedures and functions of computer hardware and applications. It allows harmonious computing coexistence by carrying out the man in the middle tasks which provide the platform onto which secondary software is installed and run.
System software can be categorized under the following:
- Operating system: to enable direct communication between hardware, system programs and other applications.
- Device driver: to enable device communication with the OS and other applications.
- Firmware: to enable low-level device control and identification.
- Translators: to translate high-level language code to low-level machine code.
- Utilities: to ensure optimum functionality of devices and applications.
2. Application Software
This is meant to accomplish productive and meaningful tasks for the user. Every single application is designed with the end user in mind as contrasted with system and programming languages software, which are concerned with computer management and development.
An application software is designed to run on computer desktops, mobile devices and web browsers.
There are two kinds of applications:
- General Purpose
While the overall intention of applications is to be productive, some, however, are laden with derivative motives. They are coded and spread within systems to produce undesired results.
Malware, short for malicious software, is a generic term used to refer to intrusive and cunning code and active content designed by criminals and black hat hackers to cripple functionality of a computer. The end result for the victim is usually data loss or hacker access to private information.
Client computers can also be converted into zombies when they are injected with active bots, for them to partake in wider mission of criminal activities. A remote criminal can use multiple zombie(s) to launch denial of service attack, send spam and download additional malware.
Out of the many, malware codes are intended to spy, fish for private information, hijack browsers, corrupt running applications and seek ransom for stolen data.
A malware script is delivered to a computer as a virus, trojan, rootkit, keylogger, worm, or through mail and websites as adware, spyware, ransomware and scareware. A computer can as well be compromised and used as a zombie to spread malicious codes to other victims around the world.
It will come as an executable .exe and .vbs code, or will attach itself to an executable file and will replicate from one computer to another through a network or Internet.
Users are vulnerable to attacks if they have not implemented good security utility, access targeted email and sites, or fail to update operating system and applications.
Installation of pirate, free and fake software can as well expose a client computer to malware.
An intelligent user also needs to stay alert and prepared when new attacks arrive.
WannaCry, CryptoLocker, ILOVEYOU, Stuxnet, Zeus, Thunderstrike and Petya, are just a few of famous malware examples in the past few years.
4. Programming Software
This is a set of tools used by developers to create software like Windows OS and Word processing. Also called a language, it is used to write source codes, debug errors, and maintain and create new software for computers. It is also used to write malicious scripts like viruses and trojans. Programming languages contain formal and comprehensive vocabulary and sets of rules that must be followed.
They are either high or low level, and this is explained by the difference in their complexities. Some languages are also loosely considered mid-level.
Writing software in a low-level language is tough business since the coding must communicate with hardware architecture directly.
It suffices to say that hardware only understands machine code, a language that makes perfect sense to the processor. It is largely made up of 0s and 1s and can present a complex scenario for a developer when the two figures have to be shoveled around endlessly to make meaning. This language requires extensive knowledge of hardware architecture and configuration.
Assemblers and to an extent C, which is sometimes considered mid-level language, form the foundation of low-level language; with the latter being the preferred choice when creating system software, drivers and embedded firmware.
On the other hand, a high-level language is programmer friendly and easier to write since it abstracts the bulk of hardware details in its syntax. In the end, however, a high-level language code must be translated into machine language using low-level languages. A compiler, assembler, and Interpreter form the core of translator languages.
Using an assembler, for example, GOTO 10 will be translated to machine code 10 1000 0001 0000.
What is your favorite language?
All high level languages have unique sets of keywords and syntax which they use to organize program instructions.
For example, REAL, BASIC and Visual Basic are the best languages for quick development, because they use point and click interface for faster development.
C++ and Java are object oriented programming languages, and best designed for more complex software assignments that need an entire team of developers.
BASIC provides entry level for software students since it is easy to learn.
Examples of languages and corresponding output of 'Hello World'
'Hello World' in Assembler:
mov $4, %eax /* write system call */
mov $1, %ebx /* stdout */
mov $msg, %ecx
mov $msgend-msg, %edx
mov $1, %eax /* _exit system call */
mov $0, %ebx /* EXIT_SUCCESS */
msg: .ascii "Hello, World\n"
'Hello World' in C:
'Hello World' in PHP:
echo "Hello World!";
Popular software and languages used to write them
- Windows: C, Assembler
- UNIX/Linux: C, Assembler
- Device drivers: C
- Android: Java, C++
- OSx and IOS: C, Objective C, Swift, C++
- Embedded firmware: C, C++, Assembler
- IOS apps: Swift, Objective-C
- Windows apps: C#, C++
- Browsers: C++, Rust
© 2017 Alfred Amuno