1 of 16

What is Kernel?�

In computer science, Kernel is a computer program that is a core or heart of an operating system.

  • As discussed above, Kernel is the core part of an OS(Operating system); hence it has full control over everything in the system.
  • Each operation of hardware and software is managed and administrated by the kernel.
  • It acts as a bridge between applications and data processing done at the hardware level.
  • It is the central component of an OS.
  • It is the part of the OS that always resides in computer memory and enables the communication between software and hardware components.

2 of 16

Programming Language

A programming language defines a set of instructions that are compiled together to perform a specific task by the CPU (Central Processing Unit). The programming language mainly refers to high-level languages such as C, C++, Pascal, Ada, COBOL, etc.

There are two types of computer languages:

  • Low-Level Languages: These languages give instructions to a computer in a way that is easily understood by the hardware of the computer. These languages are easier for a computer to understand but difficult for a human understanding. This language is machine-dependent or specific to a given computer.
  • Two low-level languages are :
  • Machine Language
  • and Assembly Language.

High-Level Languages: These languages are written in English-like language. Thus, these are easier for a human to understand but difficult for a computer to understand. They can be executed on a machine using a translator. This language is machine-independent. There are many high-level languages eg, C. C++. Java, COBOL, PHP, etc.

3 of 16

4 of 16

�Types of language processors�

There are mainly three kinds of language processors, which are discussed below:

  • Compiler
  • Assembler
  • Interpreter
  • Compiler:
  • The language processor allows the computer to run and understand the program by reading the complete source program in one time, which is written in a high-level language.
  • The computer can then interpret this code because it is translated into machine language.
  • While working on the Harvard Mark I computer, Grace Hopper created the first compiler.
  • In modern times, to compile the program, most of the high-level languages have toolkits or a compiler.
  • Gcc(GNU Compiler Collection) command for C and C++ and Eclipse for Java are two popular compilers. It takes a few seconds or minutes while compiling the program based on how big the program is.

5 of 16

Compiler

  • The language processor that reads the complete source program written in high-level language as a whole in one go and translates it into an equivalent program in machine language is called a Compiler.
  •  Example: C, C++, C#, Java.   
  • In a compiler, the source code is translated to object code successfully if it is free of errors.
  • The compiler specifies the errors at the end of the compilation with line numbers when there are any errors in the source code.
  • The errors must be removed before the compiler can successfully recompile the source code again

6 of 16

Assembler

  • An assembler converts programs written in assembly language into machine code.
  • It is also referred to assembler as assembler language by some users.
  • The source program has assembly language instructions, which is an input of the assembler.
  • The assemble translates this source code into a code that is understandable by the computer, called object code or machine code.
  • The Assembler is used to translate the program written in Assembly language into machine code.
  • The source program is an input of an assembler that contains assembly language instructions.
  • The output generated by the assembler is the object code or machine code understandable by the computer.

7 of 16

Assembler

  • Assembler is basically the 1st interface that is able to communicate humans with the machine.
  • We need an Assembler to fill the gap between human and machine so that they can communicate with each other.
  • Code written in assembly language is some sort of mnemonics(instructions) like LDA, STA, ADD, MUL, MUX, SUB, DIV, MOV and so on. and the assembler is basically able to convert these mnemonics in Binary code.
  • Here, these mnemonics also depend upon the architecture of the machine. 
  • For example, the architecture of intel 8085 and intel 8086 are different.

8 of 16

Interpreter

  • An interpreter is a computer program that allows a computer to interpret or understand what tasks to perform.
  • The programs written with the help of using one of the many high-level programming languages are directly executed by an interpreter without previously converting them to an object code or machine code, which is done line by line or statement by statement.
  • When the interpreter is translating the source code, it displays an error message if there is an error in the statement and terminates this statement from translating process.
  • When the interpreter removed errors on the first line, then it moves on to the next line.

9 of 16

Interpreter

  • The translation of a single statement of the source program into machine code is done by a language processor and executes immediately before moving on to the next line is called an interpreter.
  • If there is an error in the statement, the interpreter terminates its translating process at that statement and displays an error message.
  • The interpreter moves on to the next line for execution only after the removal of the error.
  • An Interpreter directly executes instructions written in a programming or scripting language without previously converting them to an object code or machine code.            

Example: Perl, Python and Matlab.

10 of 16

Difference between Compiler and Interpreter

Compiler

Interpreter

A compiler is a program that converts the entire source code of a programming language into executable machine code for a CPU.  � 

An interpreter takes a source program and runs it line by line, translating each line as it comes to it

The compiler takes a large amount of time to analyze the entire source code but the overall execution time of the program is comparatively faster. � 

An interpreter takes less amount of time to analyze the source code but the overall execution time of the program is slower.

The compiler generates the error message only after scanning the whole program, so debugging is comparatively hard as the error can be present anywhere in the program.  

Its Debugging is easier as it continues translating the program until the error is met.

The compiler requires a lot of memory for generating object codes.

It requires less memory than a compiler because no object code is generated.

Generates intermediate object code. 

No intermediate object code is generated.

For Security purpose compiler is more useful.

The interpreter is a little vulnerable in case of security.

Examples: C, C++, Java  

Examples: Python, Perl, JavaScript, Ruby

11 of 16

Some other examples of system software include:

BIOS: It stands for basic input output system.

  • It is a type of system software, which is stored in Read Only Memory (ROM) located on the motherboard.
  • However, in advanced computer systems, it is stored in flash memory.
  • BIOS is the first software that gets activated when you turn on your computer system.
  • It loads the drivers of the hard disk into memory as well as assists the operating system to load itself into the memory

Boot Program: Boot refers to starting up a computer.

  • When you switch on the computer, the commands in the ROM are executed automatically to load the boot program into memory and execute its instructions.
  • The BIOS program has a basic set of commands that enables the computer to perform the basic input/output instructions to start the computer.

12 of 16

Application Software �

  • Software that performs special functions or provides functions that are much more than the basic operation of the computer is known as application software.
  • Or in other words, application software is designed to perform a specific task for end-users.
  • It is a product or a program that is designed only to fulfill end-users’.
  • It includes word processors, spreadsheets, database management, inventory, payroll programs, etc. requirements

  • Application software is a set of programs designed to perform a specific task.
  • It does not control the working of a computer as it is designed for end-users.
  • A computer can run without application software.
  • Application software can be easily installed or uninstalled as required.
  • It can be a single program or a collection of small programs.
  • Microsoft Office Suite, Adobe Photoshop, and any other software like payroll software or income tax software are application software.

13 of 16

Features of application software:

Let us discuss some of the features of Application Software:

  • An important feature of application software is it performs more specialized tasks like word processing, spreadsheets, email, etc.
  • Mostly, the size of the software is big, so it requires more storage space.
  • Application software is more interactive for the users, so it is easy to use and design.
  • The application software is easy to design and understand.
  • Application software is written in a high-level language in general.

14 of 16

Types of application software

There are different types of application software and those are:

  • General Purpose Software: This type of application software is used for a variety of tasks and it is not limited to performing a specific task only. For example, MS-Word, MS-Excel, PowerPoint, etc.

  • Customized Software: This type of application software is used or designed to perform specific tasks or functions or designed for specific organizations. For example, railway reservation system, airline reservation system, invoice management system, etc.

  • Utility Software:
  • This type of application software is used to support the computer infrastructure.
  • It is designed to analyze, configure, optimize and maintains the system, and take care of its requirements as well.
  • For example, antivirus, Disk management tool, Compression tools, Disk cleanup tools, Backup utility, disk fragmenter, memory tester, disk repair, disk cleaners, registry cleaners, disk space analyzer, etc.

15 of 16

Utility software

Utility software works as an interface between system software and application software. Utility software is a third-party tool designed to reduce maintenance issues and detect errors in the computer system. It comes with the operating system in your computer system.

Here are some specific features of utility software:

  • It helps users to protect against threats and viruses.
  • It helps to reduce disk size such as WinRAR, WinZip.
  • It works as a Windows Disk Management service and helps in a disk partition.
  • It facilitates users to back up the old data and enhance the security of the system.
  • It works as a de-fragmentation of a disk to organize the scattered files on the drive.
  • It helps to recover the lost data.

  • It helps to perform the antivirus and security software to maintain the security of the data in a computer.

16 of 16

Difference between system software and application software

Now, let us discuss some difference between system software and application software:

System Software 

Application Software

It is designed to manage the resources of the computer system, like memory and process management, etc.

It is designed to fulfill the requirements of the user for performing specific tasks.

Written in a low-level language

 Written in a high-level language

Less interactive for the users

More interactive for the users

System software plays vital role for the effective functioning of a system.

Application software is not so important for the functioning of the system, as it is task specific.

It is independent of the application software to run.

It needs system software to run.