Linux architecture
Upcoming SlideShare
Loading in...5

Linux architecture






Total Views
Views on SlideShare
Embed Views



2 Embeds 167 159 8



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Linux architecture Linux architecture Presentation Transcript

  • Linux Architecture
      • By:-
      • Verule Amol R.
      • BOSS Team Member
      • CDAC-chennai
      • [email_address]
  • Linux Internal
    • Introduction
    • Kernel
    • Process Management
    • Memory Management
    • File System
    • Device Driver
    • Network Stack
    • Architecture-dependent code
  • Introduction
    • Operating System is a software designed to control the hardware of a system in order to allow users and application programs to make use of it.
    • Linux is a free operating system based on UNIX standards.
    • LINUX® is a registered trademark of Linus Torvalds.
    • Features of Linux.
    • Multiprogramming
    • Multi-user
    • Secure
    • Fast
  • Components of Linux System
    • Architecture of the GNU/Linux operating system
  • Components of a Linux System (Cont.)‏
    • When Linux is running in main memory,the it is divided in to two parts 1) User space. 2) Kernel space.
    • User's applications are running in user space.
    • Kernel is running in kernel space.
    • The system libraries (e.g. glibc) define a standard set of functions through which applications interact with the kernel, and which implement much of the operating-system functionality that does not need the full privileges of kernel code.
  • The Linux Kernel
    • Kernel is a resource manager whether resource being managed is a process,memory,hardware device.
    • Short history of Linux kernel development.
  • Linux Kernel
    • Types of Kernel
    • Monolithic Kernel. (e.g. Linux kernel)‏
    • Micro kernel (e.g. Windows NT kernel,Mach kernel etc.)‏
  • Structure of monolithic and micro-kernel-based operating systems
    • Monolithic kernel Micro Kernel
  • Linux Kernel 2.6.x
    • Characteristics that differ between the Linux kernel and other Unix variants:
    • Dynamic loading of kernel module
    • Preemptive
    • Symmetric multiprocessor (SMP) support.
    • Linux does not differentiate between threads and normal processes.
    • Linux provides an object-oriented device model with device classes,hotpluggable events and user-space device file system(sysfs).
  • Linux Kernel
    • Kernel version naming convention: Linux kernel currently consists of four numbers A.B.C[.D]
    • The A number denotes the kernel version. It is changed least frequently, and only when major changes in the code and the concept of the kernel occur.
    • The B number denotes the major revision of the kernel. If B is even then kernel is stable else it is unstable.
    • The C number indicates the minor revision of the kernel is only changed when new drivers or features are introduced.
    • minor fixes are handled by the D number.
  • Linux kernel
    • Block diagram of Linux Kernel.
  • Linux Kernel- System Call Interface
    • System call is the mechanism used by an application program to request service from the operating system.
    • API is a function definition that specifies how to obtain a given service(ex.calloc,malloc ,free etc.), while System call is an explicit request to the kernel made via a software interrupt (ex.brk)‏
    • Invoking a system call by user mode process.
  • Linux Kernel-Process Management
    • Process is a program in execution.
    • Process is represented in OS by Process Control Block.
  • Linux Kernel-Process Management
    • Linux kernel stores the list of process in a circular doubly linked list called task_list.
    • Each element in task list is a process descriptor of the type task_struct .
    • task_struct structure is allocated via slab/slub allocator.
  • Linux Kernel-Process Management
    • Thread is a unit of execution or objects of activity within process.
    • Thread is simply a new process that happens to share the same address space as its parent
    • Process creation: fork () creates a child process that is a copy of current process. it differs in PID,PPID. exec() loads new executable in to address space. clone() creates a new process(LWP) with its own identity, but that is allowed to share the data structures of its parent.
    • Process Termination: when process calls system call exit(). Process can also terminate involuntarily by signals or exceptions it can not handle or ignore.
  • Linux Kernel-Process Management
    • Process state is defined in part of current activity of that process
    • The kernel implements a O(1) scheduler algorithm that operates in constant time, regardless of the number of threads vying for the CPU. It supports SMP.
  • Linux Kernel-Memory Management
    • Computer memory layout:
  • Linux Kernel-Memory Management
    • Linux’s physical memory-management system deals with allocating and freeing pages, groups of pages, and small blocks of memory.
    • It has additional mechanisms for handling virtual memory, memory mapped into the address space of running processes.
  • Splitting of Memory in a Buddy Heap
  • Managing Physical Memory
    • The page allocator allocates and frees all physical pages; it can allocate ranges of physically-contiguous pages on request.
    • The allocator uses a buddy-heap algorithm to keep track of available physical pages.
      • Each allocatable memory region is paired with an adjacent partner.
      • Whenever two allocated partner regions are both freed up they are combined to form a larger region.
      • If a small memory request cannot be satisfied by allocating an existing small free region, then a larger free region will be subdivided into two partners to satisfy the request.
    • Memory allocations in the Linux kernel occur either statically (drivers reserve a contiguous area of memory during system boot time) or dynamically (via the page allocator).
  • Virtual Memory
    • The VM system maintains the address space visible to each process: It creates pages of virtual memory on demand, and manages the loading of those pages from disk or their swapping back out to disk as required.
    • The VM manager maintains two separate views of a process’s address space:
      • A logical view describing instructions concerning the layout of the address space. The address space consists of a set of non overlapping regions, each representing a continuous, page-aligned subset of the address space.
      • A physical view of each address space which is stored in the hardware page tables for the process.
      • mkswap /dev/sdax
      • swapon /dev/sdax
      • swapoff /dev/sdax
  • File System
    • A file system is the methods and data structures that an operating system uses to keep track of files on a disk or partition; that is, the way the files are organized on the disk.
    • A file is an ordered string of bytes
    • Files are organized in directory.
    • File information like size,owner,access permission etc. are stored in a separate data structure called inode.
    • Superblock is a data structure containing information about file system
  • Filesystem
    • The Virtual Filesystem (also known as Virtual Filesystem Switch or VFS) is a kernel software layer that handles all system calls related to a standard Unix filesystem. Its main strength is providing a common interface to several kinds of filesystems.
    • ex. copy a file from MS-dos filesystem to Linux
  • Filesystem
    • file object stores information about the interaction between an open file and a process. This information exists only in kernel memory during the period when a process has the file open.
  • Filesystem maintenance
    • Filesystems checked at boot up
    • Maintaining consistency with fsck , e2fsck
    • lost+found
    • command line utility for Filesystem maintenance
    • tune2fs
    • dump2fs
    • debugfs
  • Device Driver
    • Device drivers take on a special role in the Linux kernel. They are distinct “black boxes” that make a particular piece of hardware respond to a well-defined internal programming interface; they hide completely the details of how the device works.
    • Linux Device Driver are categorised in three types such as
    • Character Device Driver
    • Block Device Driver
    • Network Device Driver.
  • Network stack
    • The network stack, by design, follows a layered architecture modeled after the protocols themselves. Recall that the Internet Protocol is the core network layer protocol that sits below the transport protocol . Above TCP is the sockets layer, which is invoked through the SCI.
    • The sockets layer is the standard API to the networking subsystem and provides a user interface to a variety of networking protocols. From raw frame access to IP protocol data units and up to TCP and the User Datagram Protocol (UDP), the sockets layer provides a standardized way to manage connections and move data between endpoints.
  • Architecture-dependent code
    • While much of Linux is independent of the architecture on which it runs, there are elements that must consider the architecture for normal operation and for efficiency. The ./linux/arch subdirectory defines the architecture-dependent portion of the kernel source contained in a number of subdirectories that are specific to the architecture . For a typical desktop, the i386 directory is used. Each architecture subdirectory contains a number of other subdirectories that focus on a particular aspect of the kernel, such as boot, kernel, memory management, and others.
      • Thank You