You are on page 1of 8

Software components of a computer system have no physical presence, they are stored in digital

form within computer memory. There are different categories of software, including system
software, utilities and applications software. Software can also be described as being
either generic or bespoke.
System software is the software used to manage and control the hardware components and
which allow interaction between the hardware and the other types of software. The most obvious
type of system software is the computer's operating system but device drivers are also included
within this category.
Utility software is software such as anti-virus software, firewalls, disk defragmenters and so on
which helps to maintain and protect the computer system but does not directly interface with the
hardware.
Applications software (also known as 'apps') are designed to allow the user of the system
complete a specific task or set of tasks. They include programs such as web browsers, office
software, games and so on. They are usually the reason you bought the computer system in the
first place and aren't concerned with the management or maintenance of the system itself.
Any individual software package, whichever of the above types it falls into, can be
either generic (or 'off-the-shelf') or it can be bespoke (custom-built). Generic software is mass
produced with the intention that it will be used by a wide variety of different users in a range of
different situations. Bespoke software is created for a specific purpose which will be used in a
known environment.
Often generic software is used when there is a package available that meets the needs of the
user. Because it is used by many more people the cost of creating it is spread over a greater
number of people or organisations and so the cost to the individual is much lower. It also has the
advantage that it is available immediately there's no waiting time involved while the software
package is designed, created and tested. Bespoke software has the advantage that it can be
tailor made to exact specifications but it significantly more expensive and will take time to create.




What are the Different Types of Computer
Languages?

The different types of computer languages can be broadly classified into two types;
assembly level language and high level language. While some people may
contradict this and say that there is one more type of programming language, the
coarse level programming language. But the uncouth level programming language
can more precisely be defined as the machine level language and designing a
program using it will definitely become a boring task. You cannot name any variable
and you have to catch out the machine code, for each and every instruction that you
write and utilize. Besides, when you perceive abet at the code, you will not be in a
situation to get out which instruction is performing which operation.
Machine Level Language
Computer works in bits and bytes. It understands the language of the binary digits, 0
and 1. You may write a program in whichever language you want, but it is finally
converted into the language of 0s and 1s before it gets executed. Writing a program
in machine language is definitely very difficult. It is not possible to memorize a long
string of 0s and 1s for every instruction that you want to derive executed. It is proper
that before the higher levels of programming languages were designed, machine
languages were old-fashioned for writing programming codes, but they are no longer
traditional for designing computer programs.
Assembly Level Language
An assembly level language is unprejudiced one level above the shameful level
machine languages. No doubt, designing a program in assembly language is also
not a very simple task, but smooth the programming code is quite understandable. A
person with a apt hand in assembly level language can very easily understand the
statements. Till date, many of the programs for embedded technology are designed
in assembly language. A computer program like the assembler is broken-down for
converting the assembly level programs into their corresponding machine level
programs.

High Level Language
High level languages are far more simpler to understand for the humans, than the
assembly level language or machine level language. There are determined
statements for writing, each and every instruction. However, whatever language you
learn, you need to have a fine conception of the basics of that computer language.
Without luminous the basics of a particular language, you cannot write a program in
that language. The languages in these categories have different purposes. Some are
meant for web programming, some are meant to produce simple desktop
applications, while some can do both. But, one thing that you need to understand is
that, high level language is not at all understandable for the computer. For the
purpose of notion a computer program written in a high level language, it uses a
compiler or interpreter to convert the programming code into its equivalent machine
language build.
The high level languages can also be broadly classified into two types; intention
oriented languages and object oriented languages. Let me try to elaborate to you,
these two types of programming languages in brief.
In the contrivance oriented languages, the instructions are executed one by one and
the process is given more importance. There is one main function or process that
includes all the other functions. Every time a current location of data is created, the
functions need to be redesigned. The BASIC programming language and C
language are the two most popular examples of high level language.
In the object oriented programming language, the main emphasis is given to the
data. The process of programming becomes simpler as the code remains re-usable,
under all cases. Even if the data changes, there is no impact on the remaining code.
Java and C++ are the most commonly worn object oriented programming languages.
Besides, these three basic types of languages, there is a next generation of
programming language being developed, which is referred to as the fourth
generation language. Fourth generation language are being designed with the
perspective, that a person with limited or no programming experience can also
exercise these languages to prepare his maintain code. No doubt, even the high
level languages like Java, have incorporated such systems, so that the person
writing the programming code does not have to memorize each and every function.




A translator is a computer program that translates a program written in a given programming
language into a functionally equivalent program in a different language. Depending on the
translator, this may involve changing or simplifying the program flow, without losing the essence
of the program, thereby producing a functionally equivalent program.
If the translator translates a high level language into another high level language, it's called a
translator or source-to-source compiler. Examples include Haxe,FORTRAN-to-
Ada translators, CHILL-to-C++ translators, PASCAL-to-C translators, COBOL(DialectA)-to-
COBOL(DialectB) translators.
If the translator translates a high level language into a lower level language it is called a compiler.
Notice that every language can be either translated into a (Turing-complete) high level or
assembly language.
If the translator translates a high level language into an intermediate code which will be
immediately executed it is called an interpreter.
If the translator translates target/machine code to source language it is called a decompiler.
Example: DCC, Boomerang Decompilers and Reverse Engineering Compiler(REC).
If the translator translates assembly language to machine code it is called an assembler.
Examples include MASM, TASMand NASM.
If the translator translates machine code into assembly language it is called a disassembler.
Examples include gdb, IDA Pro and OllyDbg.




CUI vs GUI
CUI and GUI are acronyms that stand for different kinds of user interface systems. These are terms
used in reference to computers. CUI stands for Character User Interface while GUI refers to Graphical
User Interface. Though both are interfaces and serve the purpose of running the programs, they differ
in their features and the control they provide to the user. Here is a brief explanation of the two types of
user interface for the help of those who do not know about them.

What is CUI?
CUI means you have to take help of a keyboard to type commands to interact with the computer. You
can only type text to give commands to the computer as in MS DOS or command prompt. There are
no images or graphics on the screen and it is a primitive type of interface. In the beginning, computers
had to be operated through this interface and users who have seen it say that they had to contend
with a black screen with white text only. In those days, there was no need of a mouse as CUI did not
support the use of pointer devices. CUIs have gradually become outdated with the more advanced
GUI taking their place. However, even the most modern computers have a modified version of CUI
called CLI (Command Line Interface).

What is GUI?
GUI is what most modern computers make use of. This is an interface that makes use of graphics,
images and other visual clues such as icons. This interface made it possible for a mouse to be used
with a computer and interaction really became very easy as the user could interact with just a click of
the mouse rather than having to type every time to give commands to the computer.

Difference between CUI and GUI
CUI and GUI are user interface used in connection with computers
CUI is the precursor of GUI and stands for character user interface where user has to type on
keyboard to proceed. On the other hand GUI stands for Graphical User Interface which makes it
possible to use a mouse instead of keyboard
GUI is much easier to navigate than CUI
There is only text in case of CUI whereas there are graphics and other visual clues in case of
GUI
Most modern computers use GUI and not CUI
DOS is an example of CUI whereas Windows is an example of GUI.






Basic functions of an operating system
Definition
An operating system is a group of computer programs that coordinates all the activities
among computer hardware devices. It is the first program loaded into the computer by a boot
program and remains in memory at all times.

There are different types of operating systems. These are as follows:
1. Real-time Operating System: It is a multitasking operating system that aims at
executing real-time applications.
2. Multi-user and Single-user Operating Systems: The operating systems of this type
allow a multiple users to access a computer system concurrently.
3. Multi-tasking and Single-tasking Operating Systems:When a single program is
allowed to run at a time, the system is grouped under a single-tasking system, while in
case the operating system allows the execution of multiple tasks at one time, it is
classified as a multi-tasking operating system.
4. Distributed Operating System: An operating system that manages a group of
independent computers and makes them appear to be a single computer is known as a
distributed operating system.
5. Embedded System: The operating systems designed for being used in embedded
computer systems are known as embedded operating systems.


Functions of an operating system
The basic functions of an operating system are:
i. Booting the computer
ii. Performs basic computer tasks eg managing the various peripheral devices eg mouse,
keyboard
iii. Provides a user interface, e.g. command line, graphical user interface (GUI)
iv. Handles system resources such as computer's memory and sharing of the central
processing unit (CPU) time by various applications or peripheral devices
v. Provides file management which refers to the way that the operating system
manipulates, stores, retrieves and saves data.
Booting the computer
The process of starting or restarting the computer is known as booting. A cold boot is when
you turn on a computer that has been turned off completely. A warm boot is the process of
using the operating system to restart the computer.
Performs basic computer tasks
The operating system performs basic computer tasks, such as managing the various
peripheral devices such as the mouse, keyboard and printers. For example, most operating
systems now are plug and play which means a device such as a printer will automatically be
detected and configured without any user intervention.
Provides a user interface
A user interacts with software through the user interface. The two main types of user
interfaces are: command line and a graphical user interface (GUI). With a command line
interface, the user interacts with the operating system by typing commands to perform
specific tasks. An example of a command line interface is DOS (disk operating system). With
a graphical user interface, the user interacts with the operating system by using a mouse to
access windows, icons, and menus. An example of a graphical user interface is Windows Vista
or Windows 7.
The operating system is responsible for providing a consistent application program interface
(API) which is important as it allows a software developer to write an application on one
computer and know that it will run on another computer of the same type even if the amount
of memory or amount of storage is different on the two machines.
Handles system resources
The operating system also handles system resources such as the computer's memory and
sharing of the central processing unit (CPU) time by various applications or peripheral
devices. Programs and input methods are constantly competing for the attention of the CPU
and demand memory, storage and input/output bandwidth. The operating system ensures
that each application gets the necessary resources it needs in order to maximise the
functionality of the overall system.
Provides file management
The operating system also handles the organisation and tracking of files and directories
(folders) saved or retrieved from a computer disk. The file management system allows the
user to perform such tasks as creating files and directories, renaming files, coping and
moving files, and deleting files. The operating system keeps track of where files are located
on the hard drive through the type of file system. The type two main types of file system are
File Allocation table (FAT) or New Technology File system (NTFS).
Types of file system
File Allocation table (FAT)
New Technology file system (NTFS)
File Allocation table (FAT) uses the file allocation table which records, which clusters are used
and unused and where files are located within the clusters.
NTFS is a file system introduced by Microsoft and it has a number of advantages over the
previous file system, named FAT32 (File Allocation Table).
One major advantage of NTFS is that it includes features to improve reliablity. For example,
the new technology file system includes fault tolerance, which automatically repairs hard
drive errors without displaying error messages. It also keeps detailed transaction logs, which
tracks hard drive errors. This can help prevent hard disk failures and makes it possible to
recover files if the hard drive does fail.
NTFS also allows permissions (such as read, write, and execute) to be set for individual
directories and files.
Examples of operating systems:BS2000,BS3000,DOS,PC-DOS,MS-DOS,LINUX,SOLARIS,MAC
OS,UNIX,WINDOWS




Database

A database is an organized collection of data. The data are typically organized to model relevant
aspects of reality in a way that supports processes requiring this information. For example,
modelling the availability of rooms in hotels in a way that supports finding a hotel with vacancies.
Database management systems (DBMSs) are specially designed software applications that
interact with the user, other applications, and the database itself to capture and analyze data. A
general-purpose DBMS is a software system designed to allow the definition, creation, querying,
update, and administration of databases. Well-known DBMSs
include MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL Server, Oracle, SAP
HANA, dBASE, FoxPro, IBM DB2, LibreOffice Base, FileMaker Pro and InterSystems Cach.

A "database management system" (DBMS) is a suite of computer software providing the
interface between users and a database or databases. Because they are so closely related, the
term "database" when used casually often refers to both a DBMS and the data it manipulates.
Outside the world of professional information technology, the term database is sometimes used
casually to refer to any collection of data (perhaps a spreadsheet, maybe even a card index).
This article is concerned only with databases where the size and usage requirements necessitate
use of a database management system.
[1]

The interactions catered for by most existing DBMSs fall into four main groups:
Data definition Defining new data structures for a database, removing data structures
from the database, modifying the structure of existing data.
Update Inserting, modifying, and deleting data.
Retrieval Obtaining information either for end-user queries and reports or for processing
by applications.
Administration Registering and monitoring users, enforcing data security, monitoring
performance, maintaining data integrity, dealing with concurrency control, and recovering
information if the system fails.
A DBMS is responsible for maintaining the integrity and security of stored data, and for
recovering information if the system fails.
Both a database and its DBMS conform to the principles of a particular database
model.
[2]
"Database system" refers collectively to the database model, database management
system, and database.
[3]

Physically, database servers are dedicated computers that hold the actual databases and run
only the DBMS and related software. Database servers are usuallymultiprocessor computers

You might also like