Sunteți pe pagina 1din 35

LINUX

Linux is a Unix-like, open source and community-developed


operating system for computers, services, mainframes,
mobile devices and embedded devices. It is supported on
almost every major computer platform including x86, ARM
and SPARC, making it one of the most widely supported
operating systems.
Features
Live CD/USB: almost all linux distributions have Live CD/USB
feature by which user can run/try the OS even without
installing it on the system
Graphical User Interface (X Window System): People think that
Linux is a command line OS, somewhere its true also but not
necessarily, Linux have packages which can be installed to make
the whole OS graphics based as Windows.
Support's most national or customized keyboards: Linux is used
worldwide and hence available in multiple languages,and
supports most of their custom national keyboards.
Application Support: Linux has its own software repository
ftom where users can download and install thousands of
application just by issuing a command in Linux Terminal Or
Shell. Linux can also run Windows application if needed.
Portable: Portability means soft. wares can works on diffrerent
types of hardwares in same way.Linux kernel and application
programs supports their installation on any kind of hardware
platform.
Open Source: Linux source code is freely available and it is
community based development project. Multiple teams works
in collaboration to enhance the capability of Linux OS and it is
continuosly evolving.
Multi-User: Linux is a multiuser system means multiple users
can access system resources like memory/ ram/ application
programs at same time.
Multiprogramming: Linux is a multiprogramming system means
multiple applications can run at same time.
Hierarchical File System: Linux provides a standard file
structure in which system files/ user files are arranged.
HISTORY
•Linus Torvalds

•Linux began in 1991


The history of Linux began in 1991 with the commencement
of a personal project by Finnish student Linus Torvalds to
create a new free operating system kernel. Since then, the
resultingLinux kernel has been marked by constant growth
throughout its history. Since the initial release of its source
code in 1991, it has grown from a small number of C files
under a license prohibiting commercial distribution to the
4.2.3 version in 2015 with more than 18 million lines of
source code under the GNU General Public License v2.
In 1991, in Helsinki, Linus Torvalds began a project that later
became the Linux kernel. He wrote the program specifically
for the hardware he was using and independent of an
operating system because he wanted to use the functions of
his new PC with an 80386 processor. Development was done
on MINIX using the GNU C compiler. The GNU C Compiler is
still the main choice for compiling Linux today. The code
however, can be built with other compilers, such as the Intel
C Compiler.
design principles

Linux is a multi-user, multitasking system with a full set of


UNIX-compatible tools.
Its file system to traditional UNIX semantics, and it fully
implements the standard UNIX networking model.
Main design goals are speed, efficiency, and standardization.
Linux is designed to be compliant with the relevant POSIX
documents; at least two Linux distributions have achieved
official POSIX certification.
The Linux programming interface adheres to the SVR4 UNIX
semantics, rather than to BSD behavior.
process management

The process is one of the fundamental abstractions in Unix


operating systems1. A process is a program (object code
stored on some media) in execution. Processes are, however,
more than just the executing program code (often called the
text section in Unix). They also include a set of resources
such as open files and pending signals, internal kernel data,
processor state, an address space, one or more threads of
execution, and a data section containing global variables.
Processes, in effect, are the living result of running program
code.
Process Descriptor and
the Task Structure

The kernel stores the list of


processes in a circular doubly
linked list called the task list3.
Each element in the task list
is a process descriptor of the
type struct task_struct, which
is defined in <linux/sched.h>.
The process descriptor
contains all the information
about a specific process.
process state

The state field of the process


descriptor describes the current
condition of the process. Each
process on the system is in exactly
one of five different states. This
value is represented by one of five
flags.

TASK_RUNNING
TASK_INTERRUPTIBLE
TASK_UNINTERRUPTIBLE
TASK_ZOMBIE
TASK_STOPPED
memory management

Memory management is one of the most complex activity


done by Linux kernel. It has various concepts/issues
associated with it.
Virtual Memory

The concept of virtual memory is one of the very powerful


aspects of memory management. Since the initial era of
computers the need of memory more than the existing
physical memory has been felt. Over the years, many
solutions were used to overcome this issue and the most
successful of them has been the concept of virtual memory.
Virtual memory makes your system appear as if it has more
memory than it actually has. This may sound interesting and
may prompt one to as how is this possible. So, lets understand
the concept.

• To start, we must first understand that virtual memory is a layer


of memory addresses that map to physical addresses.
• In virtual memory model, when a processor executes a
program instruction, it reads the instruction from virtual
memory and executes it.
• But before executing the instruction, it first converts the virtual
memory address into physical address.
• This conversion is done based on the mapping of virtual to
physical addresses that is done based on the mapping
information contained in the page tables (that are maintained
by OS).
File storage management

• Our storage stack is world class in many ways


• LVM snapshots, RAID, remote replication, encryption
• Used in embedded devices & enterprise servers
• Frequently used to make storage appliances
• Supported across a wide variety of device types
• SSD's, storage arrays, commodity disks
• Scales well in both performance and size
• Multiple GB/sec of IO bandwidth for high end devices
• Pushing the IOP rate for PCI-e devices
• Supports 100's of TB of storage
Wide Variety of Choice

• Linux has a variety of choices at every level


• Local file systems like ext*, XFS, btrfs
• Networked file systems like NFS and CIFS
• User space file systems (gluster, Ceph)
• ISCSI, FC, FCOE, ... for block storage
• DRDB (and NBD still!) for Linux specific block
• Support for high end array features
• All of this choice translates into complexity
• Linux based storage has grown beyond our traditional
expert level user base
• It is the most common base for cloud storage today
• Linux based Android is used in a huge number of
phones and mobile devices
• New users and administrators are much less likely to
be versed in our CLI based tools
• Need to do a few basic things
• Probably will never touch the “power tools”
Device driver

The Software that handles or manages a hardware controller


is known as a device driver. The Linux kernel device drivers
are, essentially, a shared library of privileged, memory
resident, low level hardware handling routines. It is Linux's
device drivers that can handle the peculiarities of the
devices they are managing.
interprocess communications

The types of inter process communication are:

1.Signals - Sent by other processes or the kernel to a specific process to


indicate various conditions.
2.Pipes - Unnamed pipes set up by the shell normally with the "|"
character to route output from one program to the input of another.
3.FIFOS - Named pipes operating on the basis of first data in, first data out.
4.Message queues - Message queues are a mechanism set up to allow one
or more processes to write messages that can be read by one or more
other processes.
5.Semaphores - Counters that are used to control access to shared
resources. These counters are used as a locking mechanism to prevent
more than one process from using the resource at a time.
6.Shared memory - The mapping of a memory area to be shared by
multiple processes.
VERSIONS
OF LINUX
Arch Linux is a Linux distribution for computers based on i686 and
x86-64 architectures. It is composed predominantly of free and
open-source software, and supports community involvement.

The design approach of the development team follows the KISS


principle ("keep it simple, stupid") as the general guideline, and
focuses on elegance, code correctness, minimalism and
simplicity, and expects the user to be willing to make some effort
to understand the system's operation.A package manager written
specifically for Arch Linux, pacman, is used to install, remove and
update software packages.
ARCH LINUX
Debian is a Unix-like computer operating system that is composed
entirely of free software, most of which is under the GNU General
Public License and packaged by a group of individuals participating
in the Debian Project.

The Debian Project was first announced in 1993 by Ian Murdock,


Debian 0.01 was released on September 15, 1993,and the first
stable release was made in 1996.

The Debian stable release branch is one of the most popular for
personal computers and network servers, and has been used as a
base for several other distributions.
DEBIAN
Fedora (formerly Fedora Core) is an operating system based on the
Linux kernel, developed by the community-supported Fedora Project
and sponsored by Red Hat. Fedora contains software distributed under
a free and open-source license and aims to be on the leading edge of
such technologies.

As of February 2016, Fedora has an estimated 1.2 million users,


including Linus Torvalds, creator of the Linux kernel.
FEDORA
Xubuntu is a Canonical Ltd.–recognized,
community-maintained derivative of the Ubuntu
operating system. The name Xubuntu is a
portmanteau of Xfce and Ubuntu, as it uses the
Xfce desktop environment, instead of Ubuntu's
Unity.
XUBUNTU
Ubuntu is a Debian-based Linux operating system
for personal computers, tablets and
smartphones, where Ubuntu Touch edition is
used; and also runs network servers, usually with
the Ubuntu Server edition, either on physical or
virtual servers (such as on mainframes) and/or
with containers, that is with enterprise-class
features; runs on the most popular architectures,
including server-class ARM-based.
UBUNTU
Linux Mint is a community-driven Linux distribution based on
Debian and Ubuntu that strives to be a "modern, elegant and
comfortable operating system which is both powerful and easy to
use."Linux Mint provides full out-of-the-box multimedia support
by including some proprietary software and comes bundled with a
variety of free and open-source applications; however, with the
release of v18 "Sarah" some previously included proprietary
software such as multimedia codecs was no longer included by
default. Its motto is "from freedom came elegance."
The project was conceived by Clement Lefebvre and is being
actively developed by the Linux Mint Team and community.
LINUX MINT
Gentoo Linux is a Linux distribution built using the
Portage package management system. Unlike a binary
software distribution, the source code is compiled
locally according to the user's preferences and is often
optimized for the specific type of computer.
Precompiled binaries are available for some larger
packages or those with no available source code.
GENTOO LINUX
Red Hat Linux, assembled by the company Red Hat, was a widely
used Linux distribution until its discontinuation in 2004.
Early releases of Red Hat Linux were called Red Hat Commercial
Linux; randyl report a Red Hat first published the software on
November 3, 1994.It was the first Linux distribution to use the
RPM Package Manager as its packaging format, and over time has
served as the starting point for several other distributions, such as
Mandriva Linux and Yellow Dog Linux.
RED HAT

S-ar putea să vă placă și