⇒ A Brief History of Linux
⇒ The GNU Project
⇒ The Linux Kernel
⇒ The Core Operating System: The Kernel
⇒ The Shell
⇒ Users and Groups
⇒ Single Directory Hierarchy, Directories, Links, and Files
⇒ File I/O Model
⇒ Programs
⇒ Processes
⇒ Memory Mappings
⇒ Static and Shared Libraries
⇒ Interprocess Communication and Synchronization
⇒ Signals
⇒ Threads
⇒ Process Groups and Shell Job Control
⇒ Sessions, Controlling Terminals, and Controlling Processes
⇒ Pseudoterminals
⇒ Date and Time
⇒ Client-Server Architecture
⇒ Realtime
⇒ The /procFile System
⇒ System Calls
⇒ Library Functions
⇒ The Standard C Library; The GNU C Library (glibc)
⇒ Handling Errors from System Calls and Library Functions
⇒ Notes on the Example Programs in This Book
⇒ Portability Issues
⇒ File I/O
⇒ Database Input (Connecting to database)
⇒ Universality of I/O
⇒ Opening a File
⇒ Reading from a File
⇒ Writing to a File
⇒ Closing a File
⇒ Changing the File Offset
⇒ Operations Outside the Universal I/O Model
⇒ Atomicity and Race Conditions
⇒ File Control Operations
⇒ Open File Status Flags
⇒ Relationship Between File Descriptors and Open Files
⇒ Duplicating File Descriptors
⇒ File I/O at a Specified Offset
⇒ Scatter-Gather I/O
⇒ Truncating a File
⇒ Nonblocking I/O
⇒ I/O on Large Files
⇒ The /dev/fd Directory
⇒ Creating Temporary Files
⇒ Processes and Programs
⇒ Process ID and Parent Process ID
⇒ Memory Layout of a Process
⇒ Virtual Memory Management
⇒ The Stack and Stack Frames
⇒ Command-Line Arguments (argc, argv)
⇒ Environment List
⇒ Performing a Nonlocal Goto
⇒ Allocating Memory on the Heap
⇒ Allocating Memory on the Stack
⇒ The Password File
⇒ The Shadow Password File
⇒ The Group File
⇒ Retrieving User and Group Information
⇒ Password Encryption and User Authentication
⇒ Real User ID and Real Group ID
⇒ Effective User ID and Effective Group ID
⇒ Set-User-ID and Set-Group-ID Programs
⇒ Saved Set-User-ID and Saved Set-Group-ID
⇒ File-System User ID and File-System Group ID
⇒ Supplementary Group IDs
⇒ System Limits
⇒Retrieving System Limits (and Options) at Run Time
⇒ Retrieving File-Related Limits (and Options) at Run Time
⇒ Indeterminate Limits
⇒ System Options
⇒ The /proc File System
⇒ System Identification
⇒ Kernel Buffering of File I/O: The Buffer Cache
⇒ Buffering in the stdio Library
⇒ Controlling Kernel Buffering of File I/O
⇒ Summary of I/O Buffering
⇒ Giving the Kernel Hints About I/O Patterns: posix_fadvise()
⇒ Bypassing the Buffer Cache: Direct I/O
⇒ Mixing Library Functions and System Calls for File I/O
⇒ Device Special Files (Devices)
⇒ Disks and Partitions
⇒ File Systems
⇒ I-nodes
⇒ The Virtual File System (VFS)
⇒ Journaling File Systems
⇒ Single Directory Hierarchy and Mount Points
⇒ Mounting and Unmounting File Systems
⇒ Advanced Mount Features
⇒ A Virtual Memory File System
⇒ Obtaining Information About a File System
⇒ Retrieving File Information
⇒ File Timestamps
⇒ File Ownership
⇒ File Permissions
⇒ I-node Flags
⇒ Directories and (Hard) Links
⇒ Symbolic (Soft) Links
⇒ Creating and Removing (Hard) Links
⇒ Changing the Name of a File
⇒ Working with Symbolic Links
⇒ Creating and Removing Directories
⇒ Removing a File or Directory
⇒ Reading Directories
⇒ File Tree Walking
⇒ The Current Working Directory of a Process
⇒ Operating Relative to a Directory File Descriptor
⇒ Changing the Root Directory of a Process
⇒ Resolving a Pathname
⇒ Parsing Pathname Strings
⇒ Concepts
⇒ Signal Types and Default Actions
⇒ Changing Signal Dispositions
⇒ Introduction to Signal Handlers
⇒ Sending Signals
⇒ Checking for the Existence of a Process
⇒ Other Ways of Sending Signals
⇒ Displaying Signal Descriptions
⇒ Signal Sets
⇒ The Signal Mask (Blocking Signal Delivery)
⇒ Pending Signals
⇒ Signals Are Not Queued
⇒ Changing Signal Dispositions
⇒ Waiting for a Signal
⇒ Fork(), exit(), wait(), and execve()
⇒ Creating a New Process
⇒ The vfork() System Call
⇒ Race Conditions After fork()
⇒ Avoiding Race Conditions by Synchronizing with Signals
⇒ Terminating a Process
⇒ Details of Process Termination
⇒ Exit Handlers
⇒ Interactions Between fork(), stdio Buffers, and _exit()
⇒ Executing a New Program
⇒ The exec() Library Functions
⇒ Interpreter Scripts
⇒ File Descriptors and exec()
⇒ Signals and exec()
⇒ Executing a Shell Command
⇒ Implementing
⇒ Gropus & Sessions
⇒ Process Groups
⇒ Sessions
⇒ Controlling Terminals and Controlling Processes
⇒ Foreground and Background Process Groups
⇒ The SIGHUP Signal
⇒ Job Control
⇒ Daemons
⇒ Creating a Daemon
⇒ Guidelines for Writing Daemons
⇒ Using SIGHUP to Reinitialize a Daemon
⇒ Logging Messages and Errors Using syslog
⇒ The utmp and wtmp Files
⇒ The utmpx API
⇒ The utmpx Structure
⇒ Retrieving Information from the utmp and wtmp Files
⇒ Retrieving the Login Name
⇒ Updating the utmp and wtmp Files for a Login Session
⇒ The lastlog File
⇒ Object Libraries
⇒ Static Libraries
⇒ Overview of Shared Libraries
⇒ Creating and Using Shared Libraries—A First Pass
⇒ Useful Tools for Working with Shared Libraries
⇒ Shared Library Versions and Naming Conventions
⇒ Installing Shared Libraries
⇒ Compatible Versus Incompatible Libraries
⇒ Upgrading Shared Libraries
⇒ Specifying Library Search Directories in an Object File
⇒ Finding Shared Libraries at Run Time
⇒ Run-Time Symbol Resolution
⇒ Using a Static Library Instead of a Shared Library
⇒ Pipelining
⇒ Creating and Using Pipes
⇒ Pipes As a Method of Process Synchronization
⇒ Using Pipes to Connect Filters
⇒ Talking to a Shell Command via a Pipe
⇒ Pipes and stdio Buffering
⇒ FIFOs
⇒ A Client-Server Application Using FIFOs
⇒ Nonblocking I/O
⇒ Semantics of read() and write() on Pipes and FIFOs
⇒ Mapping
⇒ Creating a Mapping
⇒ Unmapping a Mapped Region
⇒ File Mappings
⇒ Synchronizing a Mapped Region
⇒ Additional mmap() Flags
⇒ Anonymous Mappings
⇒ Remapping a Mapped Region
⇒ The MAP_NORESERVE Flag and Swap Space Overcommitting
⇒ The MAP_FIXED Flag
⇒ Nonlinear Mappings
⇒ Changing Memory Protection
⇒ Memory Locking
⇒ Determining Memory Residence
⇒ Advising Future Memory Usage Patterns
⇒ Locking
⇒ File Locking with flock()
⇒ Record Locking with fcntl()
⇒ Mandatory Locking
⇒ The /proc/locks File
⇒ Running Just One Instance of a Program
⇒ Older Locking Techniques
⇒ Socket
⇒ Creating a Socket
⇒ Binding a Socket to an Address
⇒ Generic Socket Address Structures
⇒ Stream Sockets
⇒ Datagram Sockets
⇒ Terminal attributes
⇒ Retrieving and Modifying Terminal Attributes
⇒ The stty Command
⇒ Terminal Special Characters
⇒ Terminal Flags
⇒ Terminal I/O Modes
⇒ Terminal Line Speed (Bit Rate)
⇒ Terminal Line Control
⇒ Terminal Window Size
⇒ Terminal Identification
⇒ I/O
⇒ I/O Multiplexing
⇒ Signal-Driven I/O
⇒ The epoll API
⇒ Waiting on Signals and File Descriptors
⇒ Other Terminals
⇒ UNIX 98 Pseudoterminals
⇒ Opening a Pseudoterminal Master
⇒ Connecting Two Processes with a Pseudoterminal
⇒ Pseudoterminal I/O
⇒ Implementing
⇒ Terminal Attributes and Window Size
Duration
2-3 MonthsAvailable Seats
15Online Training Schedule
8.00 pm to 10.00 pmIndustrial Training Schedule in Chandigarh
8.00 am to 7.00 pm