assignment of os of Aps clg
assignment of os of Aps clg
assignment of os of Aps clg
10
11
12
13
AVERAGE MARKS
STAFF SIGNATURE
ACTIVITY NAMES
1. OVERVIEW,NEED,STRUCTURE AND TYPES OF
OPERATING SYSTEM
2. WORKING, TYPES AND CHALLENGES OF
VIRTUALIZATION TECHNOLOGY
3. INTRODUCTION TO FILE SYSTEM AND FILETYPES
4. SCHEDULING- LONG TERM,SHORT TERM AND MEDIUM
TERM
5. DEADLOCK- SYSTEM MODEL AND METHODS FOR
HANDLING DEADLOCKS-
PREVENTION,AVOIDANCE,RECOVERY FROM
DEADLOCKS
6. INTRODUCTION TO MEMORY MANAGEMENT AND
DIFFERENCE OF STATIC AND DYNAMIC LINKING AND
LOADING
7. BASICS OF SHELL PROGRAMMING AND TYPES OF SHELL
IN LINUX
8. ABOUT THE CRON COMMAND AND ADDTIONAL
RESOURCES
9. NETWORK COMPONENT- IP ADDRESS, SUBNET MASK
AND GATEWAY
10. USER AND GROUP ACCOUNT MANAGEMENT
11. INTRODUCTION TO SYSTEM MONITORING
12. ABOUT DNS AND FTP
13. INTRODUCTION TO STORAGE MANAGEMENT
WEEK-01
OVERVIEW OF OPERATING SYSTEMS
1. OVERVIEW:-
An Operating System (OS) is an interface between a computer
user and computer hardware. An operating system is a
software which performs all the basic tasks like file
management, memory management, process
management, handling input and output, and controlling
peripheral devices such as disk drives and printers.
An operating system is software that enables applications
to interact with a computer's hardware. The software that
contains the core components of the operating system is
called the kernel.
The primary purposes of an Operating System are to enable
applications (software) to interact with a computer's
hardware and to manage a system's hardware and software
resources.
Some popular Operating Systems include Linux Operating
System, Windows Operating System, VMS, OS/400, AIX, ,
etc. Today, Operating systems is found almost in every
device like mobile phones, personal computers, mainframe
computers, automobiles, TV, Toys etc.
2. Need of os:-
You know that an OS is like a mediator between the system
hardware and its user. Hence its requirement lies in
providing an interface between the users and systems like
computer systems, mobile phones, music players, tablets,
etc.
Resource Allocation -
Since more than one program runs
simultaneously on the system and uses the CPU and memory,
we need an operating system to manage the resource
distribution among the various processes.
Multitasking -
There is a need for system software to
facilitate the execution of more than one process/application
simultaneously.
Graphical user interface -
It eases the user’s understanding of the
system process and enables a smooth interaction between the
two.
File management -
It means there are many resources
required by a process for its execution, so which resource to
allocate and when is the task handled by an operating system.
Platform -
It’s a platform or a link without which the
communication between user
and system is next to
impossible.
3. STRUCTURE OF OS:-
It is the most straightforward operating system
structure, but it lacks definition and is only appropriate for usage with tiny
and restricted systems. Since the interfaces and degrees of functionality in
this structure are clearly defined, programs are able to access I/O routines,
which may result in unauthorized access to I/O procedures.
1. Hypervisor:
- The hypervisor is a software layer that sits between the
hardware and the operating systems or virtual machines (VMs).
- There are two types of hypervisors: Type 1 (bare-metal) and
Type 2 (hosted). Type 1 runs directly on the hardware, while Type
2 runs on top of an existing operating system.
5. Isolation:
- Virtualization provides strong isolation between virtual
machines. Even if one VM crashes or experiences issues, it doesn't
affect the others.
- Security features ensure that one VM cannot access the memory
or data of another VM.
7. Resource Pooling:
- Resources from the physical hardware are pooled together and
distributed among the virtual machines as needed. This efficient
utilization of resources is one of the key advantages of
virtualization.
2. Types:-
1. Server Virtualization:
- Description: In server virtualization, a single
physical server is partitioned into multiple virtual
servers, each running its own operating system and
applications.
- Use Cases: Server consolidation, resource
optimization, and efficient utilization of hardware
resources.
2. Desktop Virtualization:
- Description: Desktop virtualization involves
running desktop environments on a server, with end-
users accessing these virtual desktops remotely.
- Use Cases: Centralized management, security, and
flexibility in delivering desktop environments to end-
users.
3. Application Virtualization:
- Description: Application virtualization isolates
applications from the underlying operating system,
allowing them to run independently.
- Use Cases: Simplified application deployment,
compatibility across different OS versions, and
isolation of applications for security purposes.
4. Storage Virtualization:
- Description: Storage virtualization abstracts
physical storage resources and provides a logical layer
for managing and presenting storage to the systems.
- Use Cases: Simplified storage management,
improved utilization, and flexibility in storage
allocation.
5. Hardware Virtualization:
- Description: Hardware virtualization involves
creating virtual machines that run on a hypervisor,
allowing multiple operating systems to run on a single
physical machine.
- Use Cases: Efficient resource utilization, server
consolidation, and the ability to run multiple OS
instances on a single server.
6. Memory Virtualization:
- Description: Memory virtualization pools together
physical memory resources, allowing dynamic
allocation and reallocation based on the needs of
virtual machines.
- Use Cases: Improved memory utilization, efficient
handling of varying workloads, and prevention of
resource contention.
7. GPU Virtualization:
- Description: GPU virtualization involves sharing the
processing power of a Graphics Processing Unit (GPU)
among multiple virtual machines.
- Use Cases: Enhanced graphics performance for
virtual desktops, improved scalability for GPU-
intensive workloads.
8. Data Virtualization:
- Description: Data virtualization abstracts data from
its physical location and provides a unified view,
allowing users to access and query data seamlessly.
- Use Cases: Integration of diverse data sources,
simplified data access, and improved data agility.
2. CHALLENGES:-
1. Performance Overhead:
- Challenge: Virtualization introduces some level of
performance overhead due to the additional layer
(hypervisor) between the virtual machines and the physical
hardware.
- Mitigation: Advances in virtualization technology and
hardware support have significantly reduced performance
overhead. Hardware-assisted virtualization features can
help mitigate this challenge.
2. Security Concerns:
- Challenge: Security vulnerabilities within the hypervisor
or misconfigurations can pose risks to the entire
virtualization environment. Additionally, VMs on the same
physical host might be vulnerable to attacks.
- Mitigation: Regular security updates, proper
configuration, and adherence to security best practices can
help mitigate these concerns. Strong isolation between
virtual machines is crucial.
3. Resource Contention:
- Challenge: Multiple virtual machines sharing the same
physical resources may lead to resource contention,
affecting performance.
- Mitigation: Proper resource planning, monitoring, and
management can help prevent resource contention.
4. Complexity of Management:
- Challenge: Managing a virtualized environment can be
complex, especially as the number of virtual machines
increases.
- Mitigation: Implementing management tools,
automation, and orchestration systems can simplify the
administration of virtualized resources. Cloud management
platforms can also assist in managing virtual infrastructure.
1. Text Files:
- Extension: txt
- Description: Simple files containing plain text
without formatting. They can be opened with basic
text editors.
2. Document Files:
- Extensions: .doc, .docx (Microsoft Word), .pdf
(Portable Document Format), .odt (OpenDocument
Text), .rtf (Rich Text Format)
- Description: Files used for creating and storing
documents with formatted text, images, and other
elements.
3. Spreadsheet Files:
- Extensions: .xls, .lux (Microsoft Excel), .ods
(OpenDocument Spreadsheet), .csv (Comma-
Separated Values)
- Description: Files used for organizing data in rows
and columns, typically for numerical and tabular
data.
4. Presentation Files:
- Extensions: .pet, .pptx (Microsoft PowerPoint),
.odp (OpenDocument Presentation)
- Description: Files used for creating slideshows
and presentations, often including text, images, and
multimedia elements.
5. Image Files:
- Extensions: .jpg, .png, .gif, .bmp, .tiff
- Description: Files containing visual information,
such as photographs, illustrations, or graphics.
6. Audio Files:
- Extensions: .mp3, .wav, .aac, .ogg
- Description: Files containing audio data, often
used for music, sound effects, or voice recordings.
7. Video Files:
- Extensions: .mp4, .avi, .mkv, .mov
- Description: Files containing video data, used for
movies, clips, or presentations.
8. Executable Files:
- Extensions: .exe (Windows), .app (macOS), .deb,
.rpm.
- Description: Files containing compiled code that
can be executed by a computer, launching specific
software applications.
9. Archive Files:
- Extensions: .zip, .tar, .rar
- Description: Files that bundle and compress one
or more files and folders into a single file, making it
easier for distribution or storage.
2. Advantages:-
Enhanced Throughput:
- Effective scheduling strategies contribute to increased throughput,
allowing the system to handle more tasks in a given time period. This is
particularly important in environments with high workloads or time-
sensitive applications.
3. disAdvantages:-
Overhead:
- Schedulers introduce overhead in terms of computational resources and
time. The process of decision-making, context switching, and managing
various queues can consume system resources and affect overall
performance.
Complexity:
- The implementation and management of sophisticated scheduling
algorithms can add complexity to the operating system. This complexity may
lead to challenges in understanding, maintaining, and debugging the
scheduler.
Starvation:
- Starvation occurs when a process is unable to acquire the necessary
resources for an extended period due to continuously lower priority. Certain
scheduling algorithms may struggle to provide fairness, leading to some
processes being starved of resources.
Unpredictability:
- The dynamic nature of some scheduling algorithms can result in
unpredictable behavior. It may be challenging for users and administrators
to anticipate how the system will prioritize processes under certain
conditions.
Resource Contention:
- Deadlocks occur when processes contend for resources, such
as CPU time, memory, or devices. Each process holds a resource
while waiting for another resource held by a different process.
Mutual Exclusion:
- At least one resource involved in the deadlock must be non-
shareable, meaning that only one process can use it at any given
time.
Circular Wait:
- There must be a circular chain of two or more processes, each
waiting for a resource held by the next process in the chain.
2. System model:-
1. Methods of handling:-
PREVENTION:
- Resource Allocation Graph (RAG): Use a resource allocation
graph to analyse and prevent deadlocks. The graph models the
relationships between processes and resources, helping to
identify and avoid circular wait conditions.
- Lock Ordering: Establish a global order for resource acquisition
and require processes to acquire resources in this order. This
helps prevent circular waits.
- Timeouts and Resource Reclamation: Implement timeouts for
resource requests, ensuring that a process releases acquired
resources within a specified time. If a process does not release
resources in time, they are forcefully reclaimed.
AVOIDANCE:
- Banker's Algorithm: Use the Banker's algorithm to ensure that
resource allocations do not result in an unsafe state. It allows the
system to determine if a resource allocation will potentially lead
to a deadlock before granting the request.
- Dynamic Resource Allocation: Dynamically allocate resources
to processes based on their maximum resource needs. The system
checks for safety before allocating resources to prevent
deadlocks.
4. Sharing:
- Facilitate the sharing of memory among multiple
processes when required. Shared memory enables
efficient communication and collaboration between
processes.
3. Memory Partitioning:
- Fixed Partitioning: Divide memory into fixed-sized
partitions, assigning each partition to a single job or
process.
- Variable Partitioning: Memory is divided into variable-
sized partitions based on the size of the jobs or processes.
4. Fragmentation:
- Internal Fragmentation: Wastage of memory within a
partition due to the allocation of more space than
required.
- External Fragmentation: Unallocated memory exists in
the system, but it is not contiguous, making it challenging
to allocate to processes.
5. Memory Protection:
- Prevent unauthorized access to specific memory
regions. Access permissions are assigned to different
segments of memory to protect critical data.
6. Swapping:
- Transfer portions of a program between main memory
and secondary storage (like the hard disk) to free up space
for other processes. This is especially useful in scenarios
where the total memory requirements exceed the
available RAM.
STATIC LINKING:
1. Definition:
- Static linking is a process in which the linker combines
all the needed modules and libraries into a single
executable file during the compilation phase.
2. Timing:
- Linking Time: It occurs during the compilation process.
3. Linker's Role:
- Linker's Responsibility: The linker is responsible for
resolving addresses and generating a single executable file
that contains all the necessary code and data.
4. Flexibility:
- Flexibility: Once the program is linked statically, it is
fixed and cannot be changed without recompiling the
entire code.
5. Memory Usage:
- Memory Usage: The resulting executable file includes all
the necessary code and data, potentially leading to larger
file sizes and increased memory usage.
6. Efficiency:
- Efficiency: Executable generated through static linking
tend to be more efficient in terms of runtime performance
as the addresses are fixed.
7. Example:
- Example: Creating a standalone executable file for a C
or C++ program.
DYNAMIC LINKING:
1. Definition:
- Dynamic linking is a process in which the linking is
postponed until runtime. The executable file contains
references to functions or modules that are resolved
during program execution.
2. Timing:
- Linking Time: It occurs during runtime when the
program is loaded into memory.
3. Linker's Role:
- Linker's Responsibility: The linker includes references to
dynamic libraries in the executable, and the actual linking
is done by the operating system's loader when the
program is loaded into memory.
4. Flexibility:
- Flexibility: Dynamic linking allows for flexibility, as
changes to the dynamic libraries do not require
recompiling the entire program.
5. Memory Usage:
- Memory Usage: Dynamic linking reduces memory usage
since multiple programs can share the same copy of a
dynamically linked library.
6. Efficiency:
- Efficiency: There might be a slight runtime overhead
associated with dynamic linking, as the addresses need to
be resolved during program execution.
7. Example:
- Example: Using shared libraries or DLLs (Dynamic Link
Libraries) in Windows.
STATIC LOADING:
1. Definition:
- Static loading involves loading all necessary program
modules into memory at program startup.
2. Timing:
- Loading Time: It occurs at the beginning of the program
execution.
DYNAMIC LOADING:
1. Definition:
- Dynamic loading involves loading a module into
memory only when it is explicitly called by the program
during runtime.
2. Timing:
- Loading Time: It occurs during program execution, as
needed.
WEEK-07
Shell programming
1. Basics of shell programming:-
Shebang Line:
- Definition: The shebang line (`#!`) is used at the
beginning of a script to specify the interpreter that
should be used to execute the script. It helps identify
the scripting language and the version to be used.
Comments:
- Definition: Comments in shell scripts are lines
that begin with the `#` character. They are used for
adding explanatory notes and are ignored by the
shell during execution.
Variables:
- Definition: Variables in shell programming are
containers for storing data. They hold values that
can be referenced or manipulated within the
script.
Echo:
- Definition: The `echo` command is used to print
messages or display the values of variables in the
terminal. It outputs text to the standard output.
Read Input:
- Definition: The `read` command is used to take
user input during the execution of a script. It
assigns the entered value to a variable for further
use.
Conditional Statements:
- Definition: Conditional statements in shell
scripts, such as `if`, `else`, and `fi`, are used to
control the flow of execution based on specified
conditions.
Loops:
- Definition: Loops, such as `for` and `while`,
enable repetitive execution of code. They iterate
over a sequence of values or until a specific
condition is met.
Functions:
- Definition: Functions in shell scripts are blocks
of reusable code. They encapsulate a set of
instructions and can accept parameters.
Command Substitution:
- Definition: Command substitution involves
capturing the output of a command and using it as
part of another command or storing it in a variable.
File Operations:
- Definition: File operations in shell scripts
involve manipulating files and directories using
commands like `cp` (copy), `mv` (move), `arm`
(remove), etc.
Input/output Redirection:
- Definition: Input/output redirection allows
changing the flow of data between commands and
files. It uses symbols like `<`, `>`, `>>`, and pipes
(`|`).
2. Types of shell in linux:-
Zsh (Z Shell):
- Description: Zsh is an extended and interactive shell with
additional features compared to Bash. It includes advanced tab
completion, themes, and customization options. Zsh is popular
among power users for its flexibility and rich set of plugins.
Dash:
- Description: Dash is a lightweight and fast shell that aims to be
POSIX-compliant. It is often used as the default `/bin/sh` on some
systems due to its efficiency, especially in scenarios where quick
shell startup is essential.
Ash (Almquist Shell):
- Description: Ash is a minimalistic shell that adheres to the POSIX
standard. It is commonly used in embedded systems and
environments with resource constraints. BusyBox, a software suite
for embedded systems, often includes a variant of the Ash shell.
Sh (Bourne Shell):
- Description: The Bourne Shell, often referred to as `sh`, is one of
the earliest UNIX shells. It is relatively basic compared to modern
shells but remains important as it serves as the foundation for many
scripting conventions.
WEEK-08
Automation of system tasks
1. crone command:-
The cron can be defined as a software utility that is
provided by a Linux-like OS that operates the
scheduled operation on a predetermined period. It's
a daemon process and executes as a background
process. It performs the described tasks at a
predefined period when a condition or event is
encountered without user intervention.
Official Documentation:
- Linux man pages: The official manual pages provide in-
depth information on the `cron` command and its usage.
You can access them by typing `man cron` in the terminal.
Video Tutorial:
- YouTube Video: Introduction to Cron Jobs: A video
tutorial providing an introduction to cron jobs, explaining
the syntax and demonstrating common use cases.
TYPES OF IP ADDRESSES:
PURPOSE OF IP ADDRESSES:
Identification:
- IP addresses uniquely identify devices on a network,
allowing them to send and receive data. Every device,
including computers, servers, routers, and smartphones, is
assigned a unique IP address.
Routing:
- IP addresses are used for routing data between devices
and networks. Routers use IP addresses to determine the
most efficient path for data to travel from the source to the
destination.
2. Subnet mask:-
DEFINITION:
COMPONENTS:
PURPOSE:
1. Network Portion:
2. Host Portion:
3. Subnetting:
Subnetting Example:
KEY CHARACTERISTICS:
1. Protocol Translation:
2. Connectivity Hub:
4. Internet Gateway:
TYPES OF GATEWAYS:
1. Protocol Gateways:
3. Residential Gateways:
4. Cloud Gateways:
1. Creating a Group:
- Definition: Establishing a new group in a Unix-like
system, accomplished using the `groupadd` command.
5. Deleting a Group:
- Definition: Permanently removing a group from the
system with the `groupdel` command.
PASSWORD POLICIES:
1. Password Expiry:
- Definition: Configuring the expiration period for a user's
password, typically done using the `charge` command.
2. Account Locking:
- Definition: Temporarily preventing or allowing a user to
log in by locking or unlocking the account with the `passwd`
command.
3. Account Expiry:
- Definition: Setting or removing the expiration date for a
user account using the `usermod` command.
WEEK-11
System monitoring
1. Introduction:
DEFINITION:
System monitoring is the process of continuously observing
and evaluating the performance, health, and behavior of a
computer system. It involves the collection, analysis, and
presentation of data to ensure the efficient operation of
hardware, software, and network components. The primary
goal is to identify potential issues, prevent system failures,
and optimize overall system performance.
1. Performance Metrics:
- Monitoring involves tracking various performance
metrics, including CPU usage, memory utilization, disk I/O,
network activity, and system uptime.
2. Resource Utilization:
- Examining the allocation and consumption of system
resources such as CPU, memory, disk space, and network
bandwidth to identify bottlenecks or inefficiencies.
3. Event Logging:
- Recording system events, errors, warnings, and other
critical information in logs for later analysis. Event logs
provide insights into system behavior and potential issues.
5. Security Monitoring:
- Monitoring for security-related events, unauthorized
access attempts, and potential vulnerabilities to ensure the
integrity and confidentiality of the system.
1. Resource Monitors:
- Tools like `top` (Unix/Linux), Task Manager (Windows),
or third-party applications provide real-time information on
CPU, memory, and process utilization.
2. Log Analyzers:
- Utilities like `syslog` (Unix/Linux), Event Viewer
(Windows), or specialized log analyzers help review system
logs and detect issues.
3. Capacity Planning:
- Understanding resource trends over time facilitates
effective capacity planning, ensuring that the system can
handle anticipated workloads.
4. Security Enhancement:
- Monitoring security-related events helps detect and
respond to potential security threats, safeguarding the
integrity and confidentiality of the system.
5. Improved Decision-Making:
- Access to real-time and historical data allows
administrators to make informed decisions regarding
system upgrades, maintenance, or changes.
WEEK-12
Server setup
1. Dns[domain name system]:-
DEFINITION:
1. DNS Server:
- DNS servers are responsible for storing and providing
access to the database of domain names and their
corresponding IP addresses. They handle queries from
clients, translating domain names into IP addresses.
2. Domain Name:
- A domain name is a human-readable label assigned to a
specific IP address. It consists of two main parts: the top-
level domain (TLD) and the second-level domain (SLD).
3. Top-Level Domain (TLD):
- The TLD is the highest level in the DNS hierarchy and is
typically found at the end of a domain name. Examples
include .com, .org, .net, and country-code TLDs like .uk or
.jp.
5. DNS Resolver:
- DNS resolvers, also known as DNS clients, are
applications or components within networking devices that
send DNS queries to DNS servers, translating domain names
into IP addresses.
1. User Input:
- A user enters a domain name (e.g., www.example.com)
into a web browser.
6. IP Address Retrieval:
- The local resolver queries the authoritative DNS server,
which responds with the IP address associated with the
requested domain.
7. Result Returned:
- The IP address is returned to the user's device, allowing
the web browser to connect to the requested website.
DNS RECORDS:
1. A (Address) Record:
- Associates a domain with an IPv4 address.
1. FTP Client:
- An FTP client is a software application that initiates a
connection to an FTP server for the purpose of transferring
files. Common FTP clients include FileZilla, WinSCP, and
built-in command-line tools like `ftp` in Unix/Linux systems.
2. FTP Server:
- An FTP server is a software application that accepts and
manages incoming FTP connections. It stores and provides
access to files for FTP clients. Examples of FTP servers
include vsftpd (Very Secure FTP Daemon) and ProFTPD.
3. Control Connection:
- The control connection is established between the FTP
client and server to exchange commands, authentication
details, and control information. It typically operates on
port 21.
4. Data Connection:
- The data connection is used for the actual transfer of
files. Depending on the FTP mode (active or passive), data
connection can operate on separate ports. Passive mode is
often used to accommodate firewalls and NAT
configurations.
FTP Modes:
1. Active Mode:
- In active mode, the FTP client initiates a command
connection to the server (on port 21) and a data connection
for file transfers. The client specifies an IP address and port
for the server to connect to for the data transfer.
2. Passive Mode:
- In passive mode, the FTP server provides an IP address
and port for the client to connect to for the data transfer.
WEEK-13
Storage management
1. Introduction:-
DEFINITION:
Storage management refers to the systematic
administration, organization, and optimization of data
storage resources within a computing environment. It
involves the planning, provisioning, maintenance, and
monitoring of storage infrastructure to ensure efficient
data storage, retrieval, and protection.
1. Storage Devices:
- Storage management encompasses various storage
devices such as hard disk drives (HDDs), solid-state
drives (SSDs), network-attached storage (NAS), storage
area networks (SANs), and cloud storage.
2. File Systems:
- File systems manage the organization and retrieval of
data on storage devices. They define how data is stored,
named, accessed, and secured. Examples include NTFS
3. Data Organization:
- Efficient storage management involves organizing
data in a way that enables quick access, retrieval, and
modification. Hierarchical storage structures, directory
hierarchies, and indexing mechanisms contribute to
effective data organization.
4. Storage Virtualization:
- Storage virtualization abstracts physical storage
resources, allowing multiple storage devices to be
managed as a single logical unit. This enhances
flexibility, scalability, and ease of management.
6. Storage Tiering:
- Storage tiering involves categorizing data based on
usage patterns and moving it to different storage
classes. Frequently accessed data may reside on high-
performance storage, while less accessed data is stored
on more cost-effective, slower storage.
7. Capacity Planning:
- Predicting future storage needs and planning for
sufficient capacity to accommodate data growth.
Capacity planning involves monitoring current usage,
projecting future requirements, and adjusting storage
infrastructure accordingly.
8. Data DE duplication:
- Eliminating redundant copies of data to optimize
storage space. Data DE duplication reduces storage costs
and enhances efficiency by storing only unique data.