Your SlideShare is downloading. ×
Linux internal
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Linux internal

2,181

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,181
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
95
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Linux Internal By:- BOSS Team Member CDAC-chennai
  • 2. Linux Internal
    • Introduction
    • 3. Kernel
    • 4. Process Management
    • 5. Memory Management
    • 6. File System
    • 7. Device Driver
    • 8. Network Stack
    • 9. Architecture-dependent code
  • 10. 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.
    • 11. Linux is a free operating system based on UNIX standards.
    • 12. LINUX® is a registered trademark of Linus Torvalds.
    • 13. Features of Linux.
  • 17. Components of Linux System
    • Architecture of the GNU/Linux operating system
  • 18. 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.
    • 19. 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.
  • 20. The Linux Kernel
    • Kernel is a resource manager whether resource being managed is a process,memory,hardware device.
    • 21. Short history of Linux kernel development.
  • 22. Linux Kernel
    • Types of Kernel
    • Monolithic Kernel. (e.g. Linux kernel)‏
    • 23. Micro kernel (e.g. Windows NT kernel,Mach kernel etc.)‏
  • 24. Structure of monolithic and micro-kernel-based operating systems
    • Monolithic kernel Micro Kernel
  • 25. Linux Kernel 2.6.x
    • Characteristics that differ between the Linux kernel and other Unix variants:
    • Dynamic loading of kernel module
    • 26. Preemptive
    • 27. Symmetric multiprocessor (SMP) support.
    • 28. Linux does not differentiate between threads and normal processes.
    • 29. Linux provides an object-oriented device model with device classes,hotpluggable events and user-space device file system(sysfs).
  • 30. Linux Kernel
    • Kernel version naming convention: Linux kernel currently consists of four numbers A.B.C[.D]
    • 31. 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.
    • 32. The B number denotes the major revision of the kernel. If B is even then kernel is stable else it is unstable.
    • 33. The C number indicates the minor revision of the kernel is only changed when new drivers or features are introduced.
    • 34. minor fixes are handled by the D number.
  • 35. Linux kernel
    • Block diagram of Linux Kernel.
  • 36. Linux Kernel- System Call Interface
    • System call is the mechanism used by an application program to request service from the operating system.
    • 37. 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)‏
    • 38. Invoking a system call by user mode process.
  • 39. Linux Kernel-Process Management
    • Process is a program in execution.
    • 40. Process is represented in OS by Process Control Block.
  • 41. Linux Kernel-Process Management
    • Linux kernel stores the list of process in a circular doubly linked list called task_list.
    • 42. Each element in task list is a process descriptor of the type task_struct .
    • 43. task_struct structure is allocated via slab/slub allocator.
  • 44. Linux Kernel-Process Management
    • Thread is a unit of execution or objects of activity within process.
    • 45. Thread is simply a new process that happens to share the same address space as its parent
    • 46. 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.
    • 47. Process Termination: when process calls system call exit(). Process can also terminate involuntarily by signals or exceptions it can not handle or ignore.
  • 48. Linux Kernel-Process Management
    • Process state is defined in part of current activity of that process
    • 49. 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.
  • 50. Linux Kernel-Memory Management
    • Computer memory layout:
  • 51. 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.
  • 52. Splitting of Memory in a Buddy Heap
  • 53. 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.
      • 54. Whenever two allocated partner regions are both freed up they are combined to form a larger region.
      • 55. 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).
  • 56. 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.
    • 57. 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.
      • 58. mkswap /dev/sdax
      • 59. swapon /dev/sdax
      • 60. swapoff /dev/sdax
  • 61. 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.
    • 62. A file is an ordered string of bytes
    • 63. Files are organized in directory.
    • 64. File information like size,owner,access permission etc. are stored in a separate data structure called inode.
    • 65. Superblock is a data structure containing information about file system
  • 66. 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.
    • 67. ex. copy a file from MS-dos filesystem to Linux
  • 68. 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.
  • 69. Filesystem maintenance
    • Filesystems checked at boot up
    • 70. Maintaining consistency with fsck , e2fsck
    • 71. lost+found
    • 72. command line utility for Filesystem maintenance
    • 73. tune2fs
    • 74. dump2fs
    • 75. debugfs
  • 76. 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.
    • 77. Linux Device Driver are categorised in three types such as
    • 78. Character Device Driver
    • 79. Block Device Driver
    • 80. Network Device Driver.
  • 81. 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.
    • 82. 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.
  • 83. 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.
  • 84. Thank You

×