0
Linux Architecture <ul><ul><li>By:- </li></ul></ul><ul><ul><li>BOSS Team Member </li></ul></ul><ul><ul><li>CDAC-chennai </...
Linux Internal <ul><li>Introduction  </li></ul><ul><li>Kernel  </li></ul><ul><li>Process Management </li></ul><ul><li>Memo...
Introduction <ul><li>Operating System is a software designed to control the hardware of a system in order to allow users a...
Components of Linux System <ul><li>Architecture of the GNU/Linux operating system </li></ul>
Components of a Linux System (Cont.)‏ <ul><li>When Linux is running in main memory,the it is divided in to two parts  1) U...
The Linux Kernel <ul><li>Kernel is a resource manager whether resource being managed is a  process,memory,hardware device....
Linux Kernel <ul><li>Types of Kernel </li></ul><ul><li>Monolithic Kernel.  (e.g. Linux kernel)‏ </li></ul><ul><li>Micro ke...
Structure of monolithic and micro-kernel-based operating systems <ul><li>Monolithic kernel  Micro Kernel </li></ul>
Linux Kernel 2.6.x <ul><li>Characteristics that differ between the Linux kernel and other Unix variants: </li></ul><ul><li...
Linux Kernel <ul><li>Kernel version naming convention:  Linux kernel currently consists of four numbers  A.B.C[.D] </li></...
Linux kernel <ul><li>Block diagram of Linux Kernel. </li></ul>
Linux Kernel- System Call Interface <ul><li>System call is the mechanism used by an application program to request service...
Linux Kernel-Process Management <ul><li>Process is a program in execution. </li></ul><ul><li>Process is represented in OS ...
Linux Kernel-Process Management <ul><li>Linux kernel stores the list of process in a circular doubly linked list called ta...
Linux Kernel-Process Management <ul><li>Thread is a unit of execution or objects of activity within process. </li></ul><ul...
Linux Kernel-Process Management <ul><li>Process state is defined in part of current activity of that process  </li></ul><u...
Linux Kernel-Memory Management <ul><li>Computer memory layout: </li></ul>
Linux Kernel-Memory Management <ul><li>Linux’s physical memory-management system deals with allocating and freeing pages, ...
Splitting of Memory in a Buddy Heap
Managing Physical Memory <ul><li>The page allocator allocates and frees all physical pages; it can allocate ranges of phys...
Virtual Memory <ul><li>The VM system maintains the address space visible to each process:  It creates pages of virtual mem...
File System <ul><li>A file system is the methods and data structures that an  operating system uses to keep track of files...
Filesystem <ul><li>The Virtual Filesystem (also known as Virtual Filesystem Switch or VFS) is a kernel software layer that...
Filesystem <ul><li>file object stores information about the interaction between an open file and a process. This informati...
Filesystem maintenance <ul><li>Filesystems checked at boot up </li></ul><ul><li>Maintaining consistency with  fsck , e2fsc...
Device Driver <ul><li>Device drivers take on a special role in the Linux kernel. They are distinct “black boxes” that make...
Network stack <ul><li>The network stack, by design, follows a layered architecture modeled after the protocols themselves....
Architecture-dependent code <ul><li>While much of Linux is independent of the architecture on which it runs, there are ele...
<ul><ul><li>  Thank You </li></ul></ul>
Upcoming SlideShare
Loading in...5
×

Linux architecture

2,389

Published on

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
198
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Linux architecture"

  1. 1. Linux Architecture <ul><ul><li>By:- </li></ul></ul><ul><ul><li>BOSS Team Member </li></ul></ul><ul><ul><li>CDAC-chennai </li></ul></ul>
  2. 2. Linux Internal <ul><li>Introduction </li></ul><ul><li>Kernel </li></ul><ul><li>Process Management </li></ul><ul><li>Memory Management </li></ul><ul><li>File System </li></ul><ul><li>Device Driver </li></ul><ul><li>Network Stack </li></ul><ul><li>Architecture-dependent code </li></ul>
  3. 3. Introduction <ul><li>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. </li></ul><ul><li>Linux is a free operating system based on UNIX standards. </li></ul><ul><li>LINUX® is a registered trademark of Linus Torvalds. </li></ul><ul><li>Features of Linux. </li></ul><ul><li>Multiprogramming </li></ul><ul><li>Multi-user </li></ul><ul><li>Secure </li></ul><ul><li>Fast </li></ul>
  4. 4. Components of Linux System <ul><li>Architecture of the GNU/Linux operating system </li></ul>
  5. 5. Components of a Linux System (Cont.)‏ <ul><li>When Linux is running in main memory,the it is divided in to two parts 1) User space. 2) Kernel space. </li></ul><ul><li>User's applications are running in user space. </li></ul><ul><li>Kernel is running in kernel space. </li></ul><ul><li>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. </li></ul>
  6. 6. The Linux Kernel <ul><li>Kernel is a resource manager whether resource being managed is a process,memory,hardware device. </li></ul><ul><li>Short history of Linux kernel development. </li></ul>
  7. 7. Linux Kernel <ul><li>Types of Kernel </li></ul><ul><li>Monolithic Kernel. (e.g. Linux kernel)‏ </li></ul><ul><li>Micro kernel (e.g. Windows NT kernel,Mach kernel etc.)‏ </li></ul>
  8. 8. Structure of monolithic and micro-kernel-based operating systems <ul><li>Monolithic kernel Micro Kernel </li></ul>
  9. 9. Linux Kernel 2.6.x <ul><li>Characteristics that differ between the Linux kernel and other Unix variants: </li></ul><ul><li>Dynamic loading of kernel module </li></ul><ul><li>Preemptive </li></ul><ul><li>Symmetric multiprocessor (SMP) support. </li></ul><ul><li>Linux does not differentiate between threads and normal processes. </li></ul><ul><li>Linux provides an object-oriented device model with device classes,hotpluggable events and user-space device file system(sysfs). </li></ul>
  10. 10. Linux Kernel <ul><li>Kernel version naming convention: Linux kernel currently consists of four numbers A.B.C[.D] </li></ul><ul><li>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. </li></ul><ul><li>The B number denotes the major revision of the kernel. If B is even then kernel is stable else it is unstable. </li></ul><ul><li>The C number indicates the minor revision of the kernel is only changed when new drivers or features are introduced. </li></ul><ul><li>minor fixes are handled by the D number. </li></ul>
  11. 11. Linux kernel <ul><li>Block diagram of Linux Kernel. </li></ul>
  12. 12. Linux Kernel- System Call Interface <ul><li>System call is the mechanism used by an application program to request service from the operating system. </li></ul><ul><li>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)‏ </li></ul><ul><li>Invoking a system call by user mode process. </li></ul>
  13. 13. Linux Kernel-Process Management <ul><li>Process is a program in execution. </li></ul><ul><li>Process is represented in OS by Process Control Block. </li></ul>
  14. 14. Linux Kernel-Process Management <ul><li>Linux kernel stores the list of process in a circular doubly linked list called task_list. </li></ul><ul><li>Each element in task list is a process descriptor of the type task_struct . </li></ul><ul><li>task_struct structure is allocated via slab/slub allocator. </li></ul>
  15. 15. Linux Kernel-Process Management <ul><li>Thread is a unit of execution or objects of activity within process. </li></ul><ul><li>Thread is simply a new process that happens to share the same address space as its parent </li></ul><ul><li>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. </li></ul><ul><li>Process Termination: when process calls system call exit(). Process can also terminate involuntarily by signals or exceptions it can not handle or ignore. </li></ul>
  16. 16. Linux Kernel-Process Management <ul><li>Process state is defined in part of current activity of that process </li></ul><ul><li>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. </li></ul>
  17. 17. Linux Kernel-Memory Management <ul><li>Computer memory layout: </li></ul>
  18. 18. Linux Kernel-Memory Management <ul><li>Linux’s physical memory-management system deals with allocating and freeing pages, groups of pages, and small blocks of memory. </li></ul><ul><li>It has additional mechanisms for handling virtual memory, memory mapped into the address space of running processes. </li></ul>
  19. 19. Splitting of Memory in a Buddy Heap
  20. 20. Managing Physical Memory <ul><li>The page allocator allocates and frees all physical pages; it can allocate ranges of physically-contiguous pages on request. </li></ul><ul><li>The allocator uses a buddy-heap algorithm to keep track of available physical pages. </li></ul><ul><ul><li>Each allocatable memory region is paired with an adjacent partner. </li></ul></ul><ul><ul><li>Whenever two allocated partner regions are both freed up they are combined to form a larger region. </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><li>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). </li></ul>
  21. 21. Virtual Memory <ul><li>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. </li></ul><ul><li>The VM manager maintains two separate views of a process’s address space: </li></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>A physical view of each address space which is stored in the hardware page tables for the process. </li></ul></ul><ul><ul><li>mkswap /dev/sdax </li></ul></ul><ul><ul><li>swapon /dev/sdax </li></ul></ul><ul><ul><li>swapoff /dev/sdax </li></ul></ul>
  22. 22. File System <ul><li>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. </li></ul><ul><li>A file is an ordered string of bytes </li></ul><ul><li>Files are organized in directory. </li></ul><ul><li>File information like size,owner,access permission etc. are stored in a separate data structure called inode. </li></ul><ul><li>Superblock is a data structure containing information about file system </li></ul>
  23. 23. Filesystem <ul><li>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. </li></ul><ul><li>ex. copy a file from MS-dos filesystem to Linux </li></ul>
  24. 24. Filesystem <ul><li>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. </li></ul>
  25. 25. Filesystem maintenance <ul><li>Filesystems checked at boot up </li></ul><ul><li>Maintaining consistency with fsck , e2fsck </li></ul><ul><li>lost+found </li></ul><ul><li>command line utility for Filesystem maintenance </li></ul><ul><li>tune2fs </li></ul><ul><li>dump2fs </li></ul><ul><li>debugfs </li></ul>
  26. 26. Device Driver <ul><li>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. </li></ul><ul><li>Linux Device Driver are categorised in three types such as </li></ul><ul><li>Character Device Driver </li></ul><ul><li>Block Device Driver </li></ul><ul><li>Network Device Driver. </li></ul>
  27. 27. Network stack <ul><li>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. </li></ul><ul><li>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. </li></ul>
  28. 28. Architecture-dependent code <ul><li>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. </li></ul>
  29. 29. <ul><ul><li> Thank You </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×