17 February 2022

Linux Questions

 

1. 


Define shell

A shell is a program that acts as the interface between you and the UNIX system, allowing you

to enter commands for the operating system to execute



2.  Describe different types of shell

There are many different shells in use. They are

1.       Bourne shell (sh)

The Bourne shell, or sh, was the default Unix shell of Unix Version 7. It was developed by Stephen Bourne, of AT&T BellLaboratories.

2.       C shell (csh)

This is a Unix shell and a command processor that is run in a text window. The character % is the default prompt for the C shell. File commands can also be read easily by the C shell, which is known as a script

 

3.       Korn shell (ksh)

The Korn shell is the UNIX shell (command execution program, often called a command interpreter ) that was developed by David Korn of Bell Labs as a comprehensive combined version of other major UNIX shells.

 

3.      Write down the responsibility of the shell ?

Shell responsibilities

1. Program Execution

2. Variable and Filename Substitution

3. I/O Redirection

4. Pipeline Hookup

5. Environment Control

6. Interpreted Programming Language

 

1.Program Execution:

• The shell is responsible for the execution of all programs that you request fromyour terminal.

• Each time you type in a line to the shell, the shell analyzes the line and thendetermines what to do. The line that is typed to the shell is known more formallyas the command line. The shell scans this command line and determines the name of the program to be executed and what arguments to pass to the program.

 

2.Variable and Filename Substitution:

• Like any other programming language, the shell lets you assign values to variables. Whenever you specify one of these variables on the command line, preceded by adollar sign, the shell substitutes the value assigned to the variable at that point.

 

 

3. I/O Redirection:

• It is the shell's responsibility to take care of input and output redirection on the command

line. It scans the command line for the occurrence of the special redirection characters <,>, or >>.

 

4.Pipeline Hookup:

• Just as the shell scans the command line looking for redirection characters, it also looks for the pipe character For each such character that it finds, it connects the standard output from the command preceding the | to the standard input of the one following the.  It then initiates execution of both programs.

 

5.Environment Control:

• The shell provides certain commands that let you customize your environment. Your environment includes home directory, the characters that the shell displays toprompt you to type in a command, and a list of the directories to be searched whenever you request that a program be executed.

 

6.Interpreted Programming Language:

• The shell has its own built-in programming language. This language is interpreted, meaning that the shell analyzes each statement in the language one line at a time and then executes it. This differs from programming languages such as C and FORTRAN, in which the programming statements are typically compiled into a machine-executable

form before they are executed.

• Programs developed in interpreted programming languages are typically easier to debug and modify than compiled ones. However, they usually take much longer to execute than their compiled equivalents.

 

4.    What is shell scripting ?

A shell script is a list of commands in a computer program that is run by the Unix shell which is a command line interpreter. A shell script usually has comments that describe the steps.

 

5.     Write down different use of commands in user mode and kernel mode

The User mode is normal mode where the process has limited access. While the Kernel mode is the privileged mode where the process has unrestricted access to system resources like hardware, memory, etc.

User mode

-c = We can add comment field for the useraccount.

-d = To modify the directory for any existing user account.

-e = Using this option we can make the account expiry in specific period.

-g = Change the primary group for a User.

-G = To add a supplementary groups

 

Kernel Mode The kernel’s command-line parameters — The Linux Kernel documentation

agp = [AGP]

acpi= [HW,ACPI,X86,ARM64]

apic= [APIC,X86-32]

autoconf=[IPV6]

ataflop= [HW,M68k]

 

6.     Define system calls and describe its working.

System calls are provided by UNIX to access and control files and devices.


7.     Define process in Linux describe different types of state of a process

A process is an active program. It can also be said as a program that is under execution. It is more than the program code as it includes the program counter, process stack, registers, program code etc. Compared to this, the program code is only the text section.

 

In Unix/Linux operating systems, processes can be in one of the following states:

 

1. RUNNING & RUNNABLE

2. INTERRRUPTABLE_SLEEP

3. UNINTERRUPTABLE_SLEEP

4. STOPPED

5. ZOMBIE

 

1.       RUNNING & RUNNABLE

When the CPU executes a process, it will be in a RUNNING state. When the process is not waiting for any resource and ready to be executed by the CPU, it will be in the RUNNABLE state.

 

2.       INTERRUPTABLE_SLEEP:

When a process is in INTERRUPTABLE_SLEEP, it will wake up from the middle of sleep and process new signals sent to it.

 

3.       UNINTERRUPTABLE_SLEEP:

When a process is in UNINTERRUPTABLE_SLEEP, it will not wake up from the middle of sleep even though new signals are sent to it.

4.       STOPPED

            STOPPED state indicates that the process has been suspended from proceeding further. In Linux             when you issue the ‘Ctrl + Z’ command it will issue a SIGSTOP signal to the process.

 

5.       ZOMBIE

            A process will terminate when it calls ‘system exit’ API or when someone else kills the process.             When a process terminates, it will release all the data structures and the resources it holds.

8.       Define define Demos

 

A daemon (also known as background processes) is a Linux or UNIX program that runs in the background.

 

9.   Define threads &  differance between threads and process

Thread-

Thread is the segment of a process means a process can have multiple threads and these multiple threads are contained within a process. A thread has three states: Running, Ready, and Blocked.

Thread takes less time to terminate as compared to process but unlike process threads do not isolate.


Comparison Basis

Process

Thread

Definition

A process is a program under execution i.e an active program.

A thread is a lightweight process that can be managed independently by a scheduler.

Context switching time

Processes require more time for context switching as they are more heavy.

Threads require less time for context switching as they are lighter than processes.

Memory Sharing

Processes are totally independent and don’t share memory.

A thread may share some memory with its peer threads.

Communication

Communication between processes requires more time than between threads.

Communication between threads requires less time than between processes .

Blocked

If a process gets blocked, remaining processes can continue execution.

If a user level thread gets blocked, all of its peer threads also get blocked.

Resource Consumption

Processes require more resources than threads.

Threads generally need less resources than processes.

Dependency

Individual processes are independent of each other.

Threads are parts of a process and so are dependent.

Data and Code sharing

Processes have independent data and code segments.

A thread shares the data segment, code segment, files etc. with its peer threads.

Treatment by OS

All the different processes are treated separately by the operating system.

All user level peer threads are treated as a single task by the operating system.

Time for creation

Processes require more time for creation.

Threads require less time for creation.

Time for termination

Processes require more time for termination.

Threads require less time for termination.

 

 

 10.   Describe the concept of virtual memory in Linux

Linux supports virtual memory, that is, using a disk as an extension of RAM so that the effective size of usable memory grows correspondingly. The kernel will write the contents of a currently unused block of memory to the hard disk so that the memory can be used for another purpose.

 

When the original contents are needed again, they are read back into memory. This is all made completely transparent to the user; programs running under Linux only see the larger amount of memory available and don't notice that parts of them reside on the disk from time to time.

 

11  Describe a executable file format in Linux

The standard Linux executable format is named Executable and Linking Format ( ELF). It was developed by Unix System Laboratories and is now the most widely used format in the Unix world. Several well-known Unix operating systems, such as System V Release 4 and Sun’s Solaris 2, have adopted ELF as their main executable format.

 

Older Linux versions supported another format named Assembler OUTput Format (a.out); actually, there were several versions of that format floating around the Unix world. It is seldom used now, since ELF is much more practical.

 

Linux supports many other different formats for executable files; in this way, it can run programs compiled for other operating systems, such as MS-DOS EXE programs or BSD Unix’s COFF executables. A few executable formats, like Java or bash scripts, are platform-independent. Example are : load_binary ,load_shlib ,core_dump

 

12  Define linking and loading in Linux

Loading:

Bringing the program from secondary memory to main memory is called Loading.

 

Linking:

Establishing the linking between all the modules or all the functions of the program in order to continue the program execution is called linking.

 

13   Describe concept of semaphores & mutex

Mutex:

A mutex provides mutual exclusion, either producer or consumer can have the key (mutex) and proceed with their work. As long as the buffer is filled by the producer, the consumer needs to wait, and vice versa.

At any point of time, only one thread can work with the entire buffer. The concept can be generalized using semaphore.

 

Semaphore:

A semaphore is a generalized mutex. In lieu of a single buffer, we can split the 4 KB buffer into four 1 KB buffers (identical resources). A semaphore can be associated with these four buffers. The consumer and producer can work on different buffers at the same time.