0% found this document useful (0 votes)
64 views24 pages

Keshav Mid Term Report

The document provides information about a training program on Linux System and Network Software Development conducted at Guru Nanak Dev University, Regional Campus Jalandhar. The training aims to prepare engineers with expertise in system software and network software design. It covers 6 modules - Linux System Administration, Data Structures using C with Linux, Linux System Programming, Networking and Network Programming using Sockets, Shell Scripting using Bash, and Linux Network Administration. The current project being worked on under Module 1 (Data Structures using C with Linux) is creating a linked list data structure and implementing its operations like create, insert, delete and traverse nodes.

Uploaded by

Muzammil Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views24 pages

Keshav Mid Term Report

The document provides information about a training program on Linux System and Network Software Development conducted at Guru Nanak Dev University, Regional Campus Jalandhar. The training aims to prepare engineers with expertise in system software and network software design. It covers 6 modules - Linux System Administration, Data Structures using C with Linux, Linux System Programming, Networking and Network Programming using Sockets, Shell Scripting using Bash, and Linux Network Administration. The current project being worked on under Module 1 (Data Structures using C with Linux) is creating a linked list data structure and implementing its operations like create, insert, delete and traverse nodes.

Uploaded by

Muzammil Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 24

GURU NANAK DEV UNIVERSITY

REGIONAL CAMPUS JALANDHAR

MID TERM REPORT FILE ON

LINUX SYSTEM WITH NETWORK SOFTWARE

DEVELOPMENT AND ARM

SUBMITTED BY:

Muzammil ali

2015ECA1401
INTRODUCTION TO LINUX SYSTEM AND NETWORK SOFTWARE
DEVELOPMENT

Linux System and Network Software Development is a projects based career oriented training
program. It aims to prepare an engineer, that should be expert in System software and Network
software design.

System software is a collection of computer programs that are designed to run a computer’s or
any electro-mechanical device's hardware and application programs. If we think of the computer
system as a layered model, the system software is the interface between the hardware and user
applications.

Network software, is software that facilitates, enhances or interacts with a computer network.
One type of networking software allows computers, provide mechanism to communicate with
one another, while another type of networking software provides users access to shared
programs. Networking software is a key component of today's computer networks, including the
Internet. Understanding the types of networking software and associated network protocols is the
first step in understanding how the computer network really works.
COURSE CONTENT OF TRAINING:

❖ Module.00 Linux System Administration


❖ Module.01Data Structures with C using Linux, vim, gcc, gdb, SCCT
❖ Module.02Linux System Programming using Processes, IPC, Sync & Threads
❖ Module.03 Networking and Network Programming using Sockets, TCP/IP, IPv4, IPv6
❖ Module.04 Shell Scripting using Bash
❖ Module.05 Linux Network Administration
❖ Module.06 Linux Network Administration
Module 00: Linux System Administration

Abstract:

Linux System Administration is all about installation, administration, configuration and upgrade
of a Linux based system running Linux distribution families like Fedora, Debian and Ubuntu.
Heavily focused on enterprise environments, this training provides trainees/Linux system
administrators with all the tools and concepts needed to efficiently build and manage a
production Linux infrastructure. This Program is aimed at preparing the Linux Based systems for
developing any kind of applications, Linux based Embedded Device Drivers and Embedded
Linux OS. During the setting up of this system, Fedora, Debian and Ubuntu installation should
be done. Linux partitions scheme has to be understood and implemented.

Linux system administration is successfully completed and have learnt all linux system
administration task using linux families.
Introduction to Linux

❖ Understand Linux Filesystem and Partitioning


❖ Installing Linux Fedora
❖ Installing Linux Ubuntu
❖ Installing Linux Debian
❖ Upgrading Linux Kernel
❖ Linux System Administration
❖ Maintenance, Upgrade
❖ User Administration
❖ Monitor System Performance
❖ Create, Maintain and Configure Filesystem
❖ Software maintenance

● Introduction to Linux

○ Introduction to Linux, Kernel flavours, versions, pros and cons, Linux Filesystem
Tree Layout.
● System Installation using Fedora

○ Introduction to Fedora, Installing Linux (Fedora) using media, partitioning


schemes, implementing partitioning during installation, selecting and configuring
packages
● System Installation using Ubuntu

○ Introduction to Ubuntu, Installing Linux (Ubuntu) using media, partitioning


schemes, implementing partitioning during installation, selecting and configuring
packages
● System Installation using Debian

○ Introduction to Debian, Installing Linux (Debian) using media, partitioning


schemes, implementing partitioning during installation, selecting and configuring
packages
Module 01: Data Structures using C with Linux

Abstract:

C is a general-purpose computer programming language developed in 1972 by Dennis at the Bell


Telephone Laboratories for use with the UNIX operating system. Although C was designed for
implementing system software as it works well close to hardware. It is supported for almost all
computer architectures. C has greatly influenced many other popular programming languages,
most notably C++, which originally began as an extension to C. In this training we practice
behavioral model of training and keep the trainees hands on to the C coding syntax and
standards. Data structures would be implemented in depth with descent variations. There would
be an assignment after every session. Finally a project would be implemented for optimizing
learning and adopting good debugging strategies.

I am currently working on this module and creating linklist using data structure and concepts of
C language.
PROJECT MADE ON C : MDC

MULTIPLE DATA COMPRESSION

Multiple Data Compression and Encryption using Iterative Technique

Abstract:

Encoding data to take up less storage space and less bandwidth for transmission. Digital data are
compressed by finding repeatable patterns of binary 0s and 1s. The more patterns can be found,
the more the data can be compressed. Text can typically be compressed to approximately 40% of
its original size, and graphics files from 20% to 90%. Some files compress very little. It depends
entirely on the type of file and compression algorithm used.

Data compression is particularly useful in communications because it enables devices to transmit


or store the same amount of data in fewer bits. There are a variety of data compression
techniques, but only a few have been standardized.

Encryption is the conversion of data into a form, called a ciphertext, that cannot be easily
understood by unauthorized people. Decryption is the process of converting encrypted data back
into its original form, so it can be understood.
DESCRIPTION OF PROJECT

Data compression, source coding,or bit-rate reduction involves encoding information using fewer
bits than the original representation. The Compression Technique used is Lossless compression
that reduces bits by identifying and eliminating. No information is lost in lossless compression.
The process of reducing the size of a data file is popularly referred to as data compression,
although its formal name is source coding i.e. coding done at the source of the data, before it is
stored or transmitted.

We identify the number of unique characters in the source file. Then depending on the number of
unique characters we assign the code of certain length (less then the Byte size) to each character.

These smaller codes are saved in the compressed file.

This process could be repeated a to achieve greater depth of compression.

languages and Tools used for this project would be: Linux Operating System, C programming,
gcc compiler, gdb debugger, make, makefile utilities for files management, RCS source code
management tool, CVS Server.

Objective:

Compress the textual data / text files and reduce the size of the files, Also Encrypt the
compressed file so that the unintended user can not understand it.
In this project I have done 4-bit compression using C concepts and in this project any file can be
compressed upto 50% .

Operations in MDC:

1. Compression
2. Decompression
4-bit Compression:

In this Project one file is opened in read only mode in which we have our different characters and
these characters and first filtered using unique character algorithm and are stored using master
array and unique characters are obtained.In file each character is read one by one using file
descriptor and then 4 bit compression algorithm is implemented.

4-bit Decompression:

Reverse of 4-bit compression is done and encrypted data obtained is decrypted in decompressed
file. In decompression original data is obtained which indicate successful 4-bit compression.

Pros and cons of compression:-


The main advantages of compression are a reduction in storage hardware, data transmission time
and communication bandwidth -- and the resulting cost savings. A compressed file requires less
storage capacity than an uncompressed file, and the use of compression can lead to a significant
decrease in expenses for disk and/or solid-state drives.A compressed file also requires less time
for transfer, and it consumes less network bandwidth than an uncompressed file.

The main disadvantage of data compression is the performance impact resulting from the use of
CPU and memory resources to compress the data and perform decompression. Many vendors
have designed their systems to try to minimize the impact of the processor-intensive calculations
associated with compression. If the compression runs inline,before the data is written to disk, the
system may offload compression to preserve system resources. For instance, IBM uses a separate
hardware accelerationcard to handle compression with some of its enterprise storage systems.

If data is compressed after it is written to disk, or post-process,the compression may run in the
background to reduce the performance impact. Although post-process compression can reduce
the response time for each input/output (I/O), it still consumes memory and processor cycles and
can affect the overall number of I/Os a storage system can handle. Also, because data initially
must be written to disk or flash drives in an uncompressed form, the physical storage savings are
not as great as they are with inline compression.
CURRENT PROJECT USING DATA STRUCTURE

LINKLIST:

Like arrays, Linked List is a linear data structure. Unlike arrays, linked list elements are not

stored at contiguous location; the elements are linked using pointers.

Linklist is a linearly accessible dynamically stored user defined data structure.

Operations:

1. Create linklist

2. Insert Node

3. Delete Node

4. Traverse/Display linklist

5. Sort linklist

Currently I am on this project called linklist and have done operations upto delete Node.
Why Linked List?

Arrays can be used to store linear data of similar types, but arrays have following limitations.

1) The size of the arrays is fixed: So we must know the upper limit on the number of elements in

advance. Also, generally, the allocated memory is equal to the upper limit irrespective of the

usage.

2) Inserting a new element in an array of elements is expensive, because room has to be created

for the new elements and to create room existing elements have to shifted.

For example, in a system if we maintain a sorted list of IDs in an array id[].

id[] = [1000, 1010, 1050, 2000, 2040].

And if we want to insert a new ID 1005, then to maintain the sorted order, we have to move all the

elements after 1000 (excluding 1000).

Deletion is also expensive with arrays until unless some special techniques are used. For example, to

delete 1010 in id[], everything after 1010 has to be moved.

Advantages of linklist over arrays

1)Dynamic size

2)Ease of insertion/deletion
Drawbacks:

1) Random access is not allowed. We have to access elements sequentially starting from the first

node. So we cannot do binary search with linked lists.

2)Extra memory space for a pointer is required with each element of the list.

Representation in C:

A linked list is represented by a pointer to the first node of the linked list. The first node is called

head. If the linked list is empty, then value of head is NULL.

Each node in a list consists of at least two parts:

1) data

2) pointer to the next node

In C, we can represent a node using structures. Below is an example of a linked list node with an

integer data.
Module 02: Linux System Programming using Process, IPC, Sync and
Threads

Abstract:

Linux System programming is the activity of programming computer system software. It aims to
produce software and platforms which provide services to other applications, operating system
and hardware. The system software also manages running of the system. System programming
requires a great degree of hardware awareness and c programming skills. Its goal is to achieve
optimal use of available hardware and software resources. The training module covers various
aspects of learning with respect to developing efficient Linux based system software.

This will be mine future modules of training and I am going to have a project on this module.
Module 03: Linux Network Programming using Sockets & NW Protocols

Abstract:

A network administrator, sometimes is responsible for keeping an organization's computer


network up to date and running smoothly. Any company or organization that uses multiple
computers or software platforms needs a network admin to coordinate the different systems. This
training module considers various aspects of network designs and servers required for data and
nodes control. This project based training concentrates on various types of sockets programming
like raw, tcp sctp, IPv4, IPv6 and broadcasting sockets and associated protocols.
Introduction to IP

First, IP protocol. IP is an addressing and fragmentation protocol. It breaks all communications


into packets,chunks of data up to 65536 bytes long. Packets are individually routed from source
to destination. IP is allowed to drop packets; i.e., it is an unreliable protocol. There are no
acknowledgements and no retransmissions. There is no flow-control such as there is in a RS-232
serial interface.

One way to think of IP communication is by analogy to communications via a letter. You write
the letter (this is the data you are sending); put the letter inside an envelope (the IP packet);
address the envelope (using an IP address); put your return address on the envelope (your local
IP address); and then you send the letter. Like a real letter, you have no way of knowing whether
an IP packet was received. If you send a second letter one day after the first, the second one may
be received before the first. Or, the second one may never be received.
● Networking Basics
○ Networking Basics

○ What is Networking?

○ The Ins and Outs of Networking

○ Switches

○ Routers

○ Network Types

○ Network Topology

○ The Art of Computer Networking

○ Computer Networking Essentials

○ Types of Internet Connections

○ Computer Networking: The Server

○ Network Protocols

○ Networking Technologies
Introduction to Transmission Control Protocol. TCP

● Introduction To TCP

● TCP/IP and the OSI Model Comparison

● The TCP/IP Protocol Suit

● TCP/IP Networking

● IP Addressing Scheme

● Subnet Masks

● Sockets and Port Numbers

● TCP Services

● Creating segments, datagrams, TCP packets

● Running Internet Module

● Implementing TCP Stack


Module 04: Shell Scripting using Bash

Abstract:

The shell is a command interpreter. More than just the insulating layer between the operating
system kernel and the user, it's also a fairly powerful programming language. A shell program,
called a script,is an easy -to- use tool for building applications by "gluing together" system calls,
tools, utilities, and compiled binaries. Virtually the entire repertoire of UNIX commands,
utilities, and tools is available for invocation by a shell script. Shell scripts are especially well
suited for administrative system tasks and other routine repetitive tasks not requiring the bells
and whistles of a full-blown tightly structured programming language. This training concentrates
on developing the understanding and programming skills for shell scripting using Bash shell.

Introduction to Bash Shell

❖ Basics For Shell Scripting on Linux


❖ Tools to Edit Shell Scripts
❖ Writing Scripts
❖ Referencing Variables
❖ Looping and Iteration
❖ Conditions with if and case
❖ Looping using While and Until
❖ Interacting with the Environment
❖ Examining Environment Variables
❖ Customizing Your Account
❖ Handling Command-Line Arguments
❖ Making Scripts Executable
❖ Scripting with Files
❖ Working with File Modes
❖ Testing Files with the test Command
❖ Here Files and Interactive Programs
❖ Creating Command Pipelines
MORE ABOUT SHELL SCRIPT

● Defining Functions
● Using Functions
● Using Arguments with Functions
● Using Return Codes with Functions
● Variable Scope: Think Globally, Act Locally
● Understanding Recursion
● Processing Text with sed
● Introducing sed
● sed Versions
● Installing sed
● Invoking sed
● Editing Commands
● Selecting Lines to Operate On
● Scripting for Administrators
● Why Write Scripts
● Scripting Complicated Commands
● Troubleshooting Your Systems
● Removing Minor Annoyances
● Cleaning Up Data
Module 05: Linux Network Administration

Abstract:

A network administrator, sometimes called a systems administrator, is responsible for keeping an


organization's computer network up to date and running smoothly. Any company or organization
that uses multiple computers or software platforms needs a network admin to coordinate the
different systems. This training module considers various aspects of network designs and servers
required for data and nodes control. During this training the trainee will learn the networking and
Servers concepts. Implement and the

Network Administration Tools and Course content

1. monitor Linux network communication,


2. configure remote login services,
3. implement the policies for the use of the computer system and network,
4. Have a strong grasp of computer security (e.g. firewalls and intrusion detection systems)

Servers Configuration:-

● FTP and TFTP


● TELNET and SSH
● DHCP Server
● CVS Server
● git Server
● NFS Server
Module 06:Embedded Linux on ARM.Porting Embedded Linux
on ARM Systems using Storage

Abstract:

Embedded Linux on ARM is an intensive professional training program. During this training the
trainees will learn about ARM embedded Processors Architecture and associated boards. Linux
internals will be covered intensively and the trainees will configure their own embedded Linux
operating system. The Embedded operating system will then be ported onto the ARM based
embedded board. The trainees will get additional support for preparing the required toolchain,
configuring arm-gcc cross compiler.
Training Objective:

● This course and Project is designed to ensure that students of Engineering College
with academic capabilities will have the skill set needed to deal with the challenges
involved in real-world embedded technologies to meet the needs of industries both
today and in the future
● The course considers configuration techniques which can help to ensure that
single-processor embedded systems are reliable
● Preparing a Linux based embedded operating system and porting onto the ARM
based board
● configuring the required toolchain and arm-gcc compiler

● The course is taught mainly using the Linux operating system and shell scripting
using bash, with a ARM Board and PC emulated as an embedded device.
An Embedded Linux on ARM Cortex A8 using Storage Based Project

Linux is gaining in popularity in embedded systems. Many commercial vendors specialize in


porting Linux to embedded systems. This project involved developing the tool-chain cross
platform development environment on host and porting Linux to a specific embedded
system(ARM cortex A- 8 based system ) using MMC storage.

Until now, most embedded operating systems have been proprietary. If a new processor was
designed and developed by a semiconductor company, they had to depend on an operating
system company to port their operating system to the new processor. The other issue was with
the development tools (compiler, debugger, simulator, and so on) for the given processor.
Usually the operating system company also provided these tools. In addition, the peripherals
around the processor required drivers that had to be developed for the specific operating system.
With the introduction of Linux into the embedded sphere, it has become possible for the
semiconductor company itself to port an operating system to a new processor, since the source
code for the Linux kernel is available as open source. The GNU project provides a wealth of
development tools that support Linux and are also open source. In addition, many device drivers
are available for Linux, which could be used directly or as a starting point for your target
devices.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy