SlideShare une entreprise Scribd logo
1  sur  333
INTRODUCTION TO LINUX WORLD PART 1 Mukul Bhardwaj
TOPICS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TOPICS (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
INTRODUCTION TO LINUX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LINUX VERSION NUMBERING ,[object Object],[object Object],[object Object]
LINUX VERSION NUMBERING(CONT) ,[object Object],[object Object],[object Object],[object Object]
LINUX VERSION NUMBERING(CONT) ,[object Object],[object Object],[object Object],[object Object]
LINUX DIRECTORY STRUCTURE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LINUX DIRECTORY STRUCTURE(CONT) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LINUX DIRECTORY STRUCTURE(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LINUX SOURCE CODE ,[object Object],[object Object],[object Object]
SOURCE CODE LAYOUT ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SOURCE CODE LAYOUT(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Domains ,[object Object],[object Object],[object Object],[object Object],[object Object]
 
Kernel Components ,[object Object],[object Object],[object Object],[object Object],[object Object]
Open source community
COMMUNITIES ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cross-Development ,[object Object],[object Object],[object Object],[object Object]
Cross-Development(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],Host Target Network kernel rootfs NFS tftp 192.168.100.2 BOOTP/DHCP 192.168.100.1
Booting up Target ,[object Object],[object Object],[object Object],[object Object],[object Object]
Booting up Target (Services) ,[object Object],[object Object],[object Object],[object Object]
Booting up Target(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Booting up Target(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BUSYBOX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LINUX CONFIGURATION
LINUX CONFIGURATION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Config Methods ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CONFIG Initial steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuration(cont) ,[object Object]
Configuration(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configuration(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Introduction to Device Driver framework
DEVICE DRIVER ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Device Driver Interface System Call interface User Program Open Read close write Virtual File System Switch DevX_Open DevX_Read DevX_write DevX_close Hardware
Memory/IO mapped ,[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel/User Space ,[object Object],[object Object],[object Object],[object Object]
Kernel/User Space(cont) ,[object Object],[object Object],[object Object],[object Object]
Kernel Space Activities ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
User Space Activities ,[object Object],[object Object],[object Object],[object Object]
Kernel modules ,[object Object],[object Object],[object Object],[object Object],[object Object]
Module Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Module Example (cont) ,[object Object],[object Object],[object Object],[object Object]
Compilation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
To know more ,[object Object],[object Object]
Dynamic loading/Unloading ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inserting the Module ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Insertion problem ,[object Object],[object Object],[object Object]
Insertion problem(cont) ,[object Object],[object Object],[object Object],[object Object]
Insertion problem(cont) ,[object Object],[object Object],[object Object],[object Object]
Insertion problem (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Module Dependency ,[object Object],[object Object],[object Object]
Module Info ,[object Object],[object Object],[object Object],[object Object]
Dynamic Module dependency loading:MODPROBE ,[object Object],[object Object],[object Object]
Removing the module:Rmmod ,[object Object],[object Object]
Insmod Call ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MODULE MACROS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Important Points ,[object Object],[object Object],[object Object],[object Object],[object Object]
Module Paramters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TYPES OF DEVICE DRIVER ,[object Object],[object Object],[object Object]
CHAR DRIVER ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BLOCK DRIVER ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Module working ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NETWORK DRIVER ,[object Object],[object Object],[object Object],[object Object]
Network Driver (cont) ,[object Object],[object Object],[object Object]
Driver-Hardware Communication ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Character Driver
Registering   Drivers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Registering   Drivers (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Registering   Drivers (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Character Device Registration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Private Data ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Major and Minor Number ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Major and Minor Number ,[object Object],[object Object],[object Object],[object Object]
File Operations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
User Space Access ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver with ioctl  ,[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver with ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver with ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver with ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
User Program for ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
User Program for ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Skeleton of Character Driver with ioctl (Cont..) ,[object Object],[object Object],[object Object],[object Object]
[object Object]
Kernel features used for driver development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LSP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Choosing the kernel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Development Enviornment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Where to start ,[object Object],[object Object],[object Object],[object Object]
First Step-Machine type ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
include/asm-arm/mach-types.h ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Firmware Requirements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ATAG Parameter List ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ATAG Parameter List Command line to pass to kernel  2(length_of_cmdline + 3) / 4) 0x54410009 ATAG_CMDLINE Initial values for vesafb-type framebuffers 8 0x54410008 ATAG_VIDEOLFB 32 bit board revision number 3 0x54410007 ATAG_REVISION 64 bit board serial number 4 0x54410006 ATAG_SERIAL Describes where the compressed ramdisk image is placed in memory 4 0x54420005 ATAG_INITRD2 Describes how the ramdisk will be used in kernel  5 0x54410004 ATAG_RAMDISK Describes a VGA text display 5 0x54410003 ATAG_VIDEOTEXT Describes a physical area of memory 4 0x54410002 ATAG_MEM First tag used to start list 5 (2 if empty) 0x54410001 ATAG_CORE Empty tag used to end list 2 0x00000000 ATAG_NONE Description Size Value Tag name
Directory/File Structure ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Early init ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CPU Detection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Low Level CPU APIs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Architecture Specific Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Machine Detection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MACHINE_START ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
machine_desc ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Machine Descriptor Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
“ .arch.info” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Static I/O Mapping ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Memory Layout on ARM Linux ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Decompressor Symbols ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Symbols ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Symbols(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Memory Layout on ARM Linux-1
Kernel Memory Layout on ARM Linux-2 FFFFFFFF FFFF7FFF FFFF0FFF FFFE FFFF FFBF FFFF FEFF FFFF VMALLOC_END-1 VMALLOC_START high_memory-1 PAGE_OFFSET-1 TASK_SIZE-1 0000 0FFF 0000 0000 Free for platform use, recommended.  vmalloc() / ioremap() space. Memory returned by vmalloc/ioremap will be dynamically placed in this region. VMALLOC_START may be based upon the value of the high_memory variable. CPU vector page / null pointer trap CPUs which do not support vector remapping place their vector page here.  NULL pointer dereferences by both the kernel and user space are also caught via this mapping. User space mappings Per-thread mappings are placed here via the mmap() system call. Kernel module space Kernel modules inserted via insmod are placed here using dynamic mappings. Kernel direct-mapped RAM region. This maps the platforms RAM, and typically maps all platform RAM in a 1:1 relationship.  0xC000 0000 Reserved for future expansion of DMA mapping region. DMA memory mapping region.  Memory returned by the dma_alloc_xxx functions will be dynamically mapped here CPU vector page.  The CPU vectors are mapped here if the CPU supports vector relocation (control register V bit.) Reserved. Platforms must not use this address range. copy_user_page / clear_user_page use.
IRQ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IRQ(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
irqaction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
System Timer Tick ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
System Timer Tick(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
System Timer Tick(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Board Level Device Initialization ,[object Object],[object Object],[object Object],[object Object]
Platform bus ,[object Object],[object Object],[object Object],[object Object]
Platform devices ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Platform Device (Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Platform drivers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Platform data ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux Flow ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux Flow(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux Flow (Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux Flow (Contd.) ,[object Object],[object Object],[object Object],[object Object]
Kernel command line Parameters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
General Non-Device Specific Boot Args ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
General Boot Args(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RAM Disk Management ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Related to Memory Handling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Misc. Kernel Boot Arguments ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Debugging Linux Kernel With KGDB ,[object Object],[object Object],[object Object],[object Object]
Procedure for KGDB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Procedure for KGDB(Contd.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Advantages of KGDB ,[object Object],[object Object],[object Object],[object Object],[object Object]
Disadvantages of KGDB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Debugging With JTAG ,[object Object],[object Object],[object Object],[object Object],[object Object]
Creating Downloadable Image ,[object Object],[object Object],[object Object],[object Object],[object Object]
Different types of Linux kernel Images ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel
User Processes ,[object Object],[object Object],[object Object],[object Object],task_struct Memory_map
User Threads ,[object Object],[object Object],[object Object]
Threads Library ,[object Object],[object Object],[object Object],[object Object],[object Object]
Linux “Tasks” ,[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Daemons ,[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel threads ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process States Ready Suspended Running Stopped Zombie Creation Scheduling Termination Signal Signal Signal
 
Scheduler ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process priority ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SCHEDULING POLICY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Preemptive-Priority Based ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process Queues ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Process Creation ,[object Object],[object Object],[object Object],[object Object]
System Calls related to Scheduling ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
System Calls ,[object Object],[object Object],[object Object],[object Object],[object Object]
System call Implementation ,[object Object],[object Object],[object Object],[object Object]
SYSTEM CALL (Cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SYSTEM CALL (Cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
Memory manager ,[object Object],[object Object]
Virtual memory ,[object Object],[object Object],[object Object]
Virtual vs. Physical Addresses DRAM Size 0 0xFFFFFFFF 0xC0000000 0x10000000 Kernel Application Code Data Heap Thread 1 Stk Thread 2 Stk 2MBs 2MBs Invalid page (256 MB) (3 GB) (4 GB) Main Stk 2MBs 0x80000000 (2 GB) FFF00000h 3.75GB -  DRAM Size 224 MB 15 MB 1 MB 1 MB 1 MB 1 MB 6 MB 7 MB 1 MB FF800000h FF300000h  FF200000h  FF100000h  FEF00000h  FE000000h  F0000000h  FFFFFFFFh 0h  Boot FLASH Optional Flash Reserved Optional I/O MPIC Registers Reserved On-Board Peripherals PCI/ISA I/O  Space Optional Flash PCI Memory  Space Local DRAM System Memory PPC
Virtual - Physical
Memory Mapping(virtual to Physical) ,[object Object],CPU Page Table Value Key MAPPER Page Frames Logical page Physical Frame Access Code
Main Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Concepts used in VM Domain ,[object Object],[object Object],[object Object]
Demand Paging ,[object Object],[object Object],[object Object],[object Object],[object Object]
Memory Protection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Page table
Page Table (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object]
TLB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ARM-Memory Managment Access control hardware ARM Cache and write buffer Cache line fetch hardware TLB Translation table walk hardware Main memory Abort VA PA C,B bits Access bits,domain
Points to remember for memory management ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
KERNEL ADDRESS SPACE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
USER ADDRESS SPACE ,[object Object],[object Object],[object Object],[object Object]
Code Executing in Kernel Space ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Code Executing in User Space ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Address Space
Process Address space ,[object Object],[object Object],[object Object],[object Object],[object Object]
MM Structure ,[object Object],[object Object],[object Object],[object Object],[object Object]
Example
Process address space(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel Address Space
Kernel address space ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Page Fault ,[object Object],[object Object],[object Object],[object Object]
Page Fault ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Page fault (cont) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Page Fault (COW)
 
 
Memory manager components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kernel dynamic memory allocation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Non-Contiguous memory allocation ,[object Object],[object Object],[object Object],[object Object]
Physical page allocator ,[object Object]
Physical Page allocator(cont) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Physical Page allocator(cont) ,[object Object],[object Object],[object Object],[object Object]
GFP Flags ,[object Object],[object Object],[object Object],[object Object],[object Object]
Slab Allocator ,[object Object],[object Object],[object Object],[object Object]
VFS
USER PROCESSES SYSTEM CALL INTERFACE VFS Ext2 Ext3 DOS FS Buffer Cache Device Driver IO REQUEST HARDWARE Kernel
What is VFS ,[object Object],[object Object],[object Object],[object Object],[object Object]
4 Basic FS abstractions ,[object Object],[object Object],[object Object],[object Object]
Main features for FS to work with VFS ,[object Object],[object Object],[object Object],[object Object]
4 Primary objects of VFS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Root File-system ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Root File-system (cont) ,[object Object],[object Object],[object Object],[object Object]
Initrd ,[object Object],[object Object],[object Object]
File-System on system ,[object Object],[object Object],[object Object],[object Object],[object Object]
Flash-system ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manually building custom init tam-disk ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Points to think about: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Different file-system  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comparison Paramters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Special FileSystems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PROC FILE SYSTEM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IPC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
signal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Signal (cont) ,[object Object],[object Object]
Signal (cont) ,[object Object],[object Object],[object Object]
Signal transmission ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Signal Handling ,[object Object],[object Object],[object Object],[object Object]
pipes ,[object Object],[object Object],[object Object]
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals
Basic Linux Internals

Contenu connexe

Tendances

Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and PropertiesSaadi Rahman
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Basics of boot-loader
Basics of boot-loaderBasics of boot-loader
Basics of boot-loaderiamumr
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernelguest547d74
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)shimosawa
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal BootloaderSatpal Parmar
 
Linux Ethernet device driver
Linux Ethernet device driverLinux Ethernet device driver
Linux Ethernet device driver艾鍗科技
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemHungWei Chiu
 

Tendances (20)

Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
Embedded linux network device driver development
Embedded linux network device driver developmentEmbedded linux network device driver development
Embedded linux network device driver development
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Basics of boot-loader
Basics of boot-loaderBasics of boot-loader
Basics of boot-loader
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
Linux Initialization Process (1)
Linux Initialization Process (1)Linux Initialization Process (1)
Linux Initialization Process (1)
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
Linux Ethernet device driver
Linux Ethernet device driverLinux Ethernet device driver
Linux Ethernet device driver
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystem
 

Similaire à Basic Linux Internals

brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device driversAlexandre Moreno
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]mcganesh
 
Introduction to Operating Systems.pptx
Introduction to Operating Systems.pptxIntroduction to Operating Systems.pptx
Introduction to Operating Systems.pptxMohamedSaied877003
 
Kernel compilation
Kernel compilationKernel compilation
Kernel compilationmcganesh
 
Linux Device Driver,LDD,
Linux Device Driver,LDD,Linux Device Driver,LDD,
Linux Device Driver,LDD,Rahul Batra
 
Unix fundamentals
Unix fundamentalsUnix fundamentals
Unix fundamentalsBimal Jain
 
Linux device driver
Linux device driverLinux device driver
Linux device driverchatsiri
 
Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel DevelopmentPriyank Kapadia
 
Visual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & VirtualisationVisual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & Virtualisationwangyuanyi
 
Linux conf-admin
Linux conf-adminLinux conf-admin
Linux conf-adminbadamisri
 
Linux conf-admin
Linux conf-adminLinux conf-admin
Linux conf-adminbadamisri
 

Similaire à Basic Linux Internals (20)

Linux filesystemhierarchy
Linux filesystemhierarchyLinux filesystemhierarchy
Linux filesystemhierarchy
 
Linux basics
Linux basics Linux basics
Linux basics
 
Linux basics
Linux basics Linux basics
Linux basics
 
brief intro to Linux device drivers
brief intro to Linux device driversbrief intro to Linux device drivers
brief intro to Linux device drivers
 
Lecture1 Introduction
Lecture1  IntroductionLecture1  Introduction
Lecture1 Introduction
 
Device drivers tsp
Device drivers tspDevice drivers tsp
Device drivers tsp
 
Linuxdd[1]
Linuxdd[1]Linuxdd[1]
Linuxdd[1]
 
Introduction to Operating Systems.pptx
Introduction to Operating Systems.pptxIntroduction to Operating Systems.pptx
Introduction to Operating Systems.pptx
 
Ch1 linux basics
Ch1 linux basicsCh1 linux basics
Ch1 linux basics
 
Kernel compilation
Kernel compilationKernel compilation
Kernel compilation
 
linux installation.pdf
linux installation.pdflinux installation.pdf
linux installation.pdf
 
Unix Administration 2
Unix Administration 2Unix Administration 2
Unix Administration 2
 
Linux Device Driver,LDD,
Linux Device Driver,LDD,Linux Device Driver,LDD,
Linux Device Driver,LDD,
 
Unix fundamentals
Unix fundamentalsUnix fundamentals
Unix fundamentals
 
Linux device driver
Linux device driverLinux device driver
Linux device driver
 
Linux Kernel Development
Linux Kernel DevelopmentLinux Kernel Development
Linux Kernel Development
 
LINUX Device Drivers
LINUX Device DriversLINUX Device Drivers
LINUX Device Drivers
 
Visual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & VirtualisationVisual comparison of Unix-like systems & Virtualisation
Visual comparison of Unix-like systems & Virtualisation
 
Linux conf-admin
Linux conf-adminLinux conf-admin
Linux conf-admin
 
Linux conf-admin
Linux conf-adminLinux conf-admin
Linux conf-admin
 

Dernier

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Basic Linux Internals

  • 1. INTRODUCTION TO LINUX WORLD PART 1 Mukul Bhardwaj
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.  
  • 16.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Introduction to Device Driver framework
  • 34.
  • 35. Device Driver Interface System Call interface User Program Open Read close write Virtual File System Switch DevX_Open DevX_Read DevX_write DevX_close Hardware
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98. ATAG Parameter List Command line to pass to kernel 2(length_of_cmdline + 3) / 4) 0x54410009 ATAG_CMDLINE Initial values for vesafb-type framebuffers 8 0x54410008 ATAG_VIDEOLFB 32 bit board revision number 3 0x54410007 ATAG_REVISION 64 bit board serial number 4 0x54410006 ATAG_SERIAL Describes where the compressed ramdisk image is placed in memory 4 0x54420005 ATAG_INITRD2 Describes how the ramdisk will be used in kernel 5 0x54410004 ATAG_RAMDISK Describes a VGA text display 5 0x54410003 ATAG_VIDEOTEXT Describes a physical area of memory 4 0x54410002 ATAG_MEM First tag used to start list 5 (2 if empty) 0x54410001 ATAG_CORE Empty tag used to end list 2 0x00000000 ATAG_NONE Description Size Value Tag name
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114. Kernel Memory Layout on ARM Linux-1
  • 115. Kernel Memory Layout on ARM Linux-2 FFFFFFFF FFFF7FFF FFFF0FFF FFFE FFFF FFBF FFFF FEFF FFFF VMALLOC_END-1 VMALLOC_START high_memory-1 PAGE_OFFSET-1 TASK_SIZE-1 0000 0FFF 0000 0000 Free for platform use, recommended. vmalloc() / ioremap() space. Memory returned by vmalloc/ioremap will be dynamically placed in this region. VMALLOC_START may be based upon the value of the high_memory variable. CPU vector page / null pointer trap CPUs which do not support vector remapping place their vector page here. NULL pointer dereferences by both the kernel and user space are also caught via this mapping. User space mappings Per-thread mappings are placed here via the mmap() system call. Kernel module space Kernel modules inserted via insmod are placed here using dynamic mappings. Kernel direct-mapped RAM region. This maps the platforms RAM, and typically maps all platform RAM in a 1:1 relationship. 0xC000 0000 Reserved for future expansion of DMA mapping region. DMA memory mapping region. Memory returned by the dma_alloc_xxx functions will be dynamically mapped here CPU vector page. The CPU vectors are mapped here if the CPU supports vector relocation (control register V bit.) Reserved. Platforms must not use this address range. copy_user_page / clear_user_page use.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146. Kernel
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153. Process States Ready Suspended Running Stopped Zombie Creation Scheduling Termination Signal Signal Signal
  • 154.  
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169. Virtual vs. Physical Addresses DRAM Size 0 0xFFFFFFFF 0xC0000000 0x10000000 Kernel Application Code Data Heap Thread 1 Stk Thread 2 Stk 2MBs 2MBs Invalid page (256 MB) (3 GB) (4 GB) Main Stk 2MBs 0x80000000 (2 GB) FFF00000h 3.75GB - DRAM Size 224 MB 15 MB 1 MB 1 MB 1 MB 1 MB 6 MB 7 MB 1 MB FF800000h FF300000h FF200000h FF100000h FEF00000h FE000000h F0000000h FFFFFFFFh 0h Boot FLASH Optional Flash Reserved Optional I/O MPIC Registers Reserved On-Board Peripherals PCI/ISA I/O Space Optional Flash PCI Memory Space Local DRAM System Memory PPC
  • 171.
  • 172.
  • 173.
  • 174.
  • 175.
  • 177.
  • 178.
  • 179. ARM-Memory Managment Access control hardware ARM Cache and write buffer Cache line fetch hardware TLB Translation table walk hardware Main memory Abort VA PA C,B bits Access bits,domain
  • 180.
  • 181.
  • 182.
  • 183.
  • 184.
  • 186.
  • 187.
  • 189.
  • 191.
  • 192.
  • 193.
  • 194.
  • 196.  
  • 197.  
  • 198.
  • 199.
  • 200.
  • 201.
  • 202.
  • 203.
  • 204.
  • 205.
  • 206. VFS
  • 207. USER PROCESSES SYSTEM CALL INTERFACE VFS Ext2 Ext3 DOS FS Buffer Cache Device Driver IO REQUEST HARDWARE Kernel
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216.
  • 217.
  • 218.
  • 219.
  • 220.
  • 221.
  • 222.
  • 223.
  • 224.
  • 225.
  • 226.
  • 227.
  • 228.
  • 229.
  • 230.
  • 231.

Notes de l'éditeur

  1. Asmlinkage Paramters copied from user mode stack to registers before issuing system call Kernel copies paramters from CPU registers to kernel stack before calling routine
  2. ess