Linux System Programming Techniques & Concepts


Linux System Programming Techniques & Concepts
Linux System Programming Techniques & Concepts
Last updated 5/2022
MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz

For Developers – Build Linux Programmable Libraries, Makefiles, Memory Management, Compilation & Linking, C Programming

What you’ll learn
Learn Advance Programming Concepts in C/C++
Develop and Integrate C/C++ Libraries
Automate Build Process using Makefile
Use of Function Pointers as Callbacks
Static and Dynamic Libraries and Linking
Compilation Process of a GCC Compiler
Organize the code into Header and Source files
Understanding Memory allocations, Heap Memory Management, Memory Leaks
Stack Memory, Stack overflow, Stack Corruption, Stack Registers
Paging Concepts and Page Tables
Concept of TLVs
Requirements
Basic knowledge of Programming in C/C++ is required
Zeal and enthusiasm to learn and sharpen the skills
Good to have basic OS knowledge but not mandatory
Description
Overview

Section 1: Introduction

Lecture 1 Introduction

Lecture 2 Join Telegram Group

Lecture 3 Setting up Linux Development Environment

Lecture 4 Begin – Doubly Linked List as a Library

Lecture 5 Quick Compilation Steps

Lecture 6 Summary

Section 2: Understanding Header Files

Lecture 7 What are Header Files and their Purpose ?

Lecture 8 Relationship between Source and Header Files

Lecture 9 Text Substitution

Lecture 10 Text Substitution Example

Lecture 11 Text Substitution Demonstration

Section 3: Preprocessing Directives

Lecture 12 Problem Of Duplicate Inclusion of Header Files

Lecture 13 What are Pre-processing Directives ?

Lecture 14 Solution to Duplicate Inclusion of Hdr files using Preprocessing Directives

Section 4: Correct Way of Using Structures and Functions

Lecture 15 Structure Definitions and Use

Lecture 16 Function Declaration and Use

Lecture 17 Recursive Dependency

Lecture 18 Solution to Recursive Dependency

Lecture 19 Summary

Section 5: Quick Creation of Static and Dynamic Libraries

Lecture 20 Resuming with Doubly Linked List Library

Lecture 21 Static and Dynamic Libraries – Quick Creation

Lecture 22 Linking with Static Library

Lecture 23 Linking with Dynamic Library

Lecture 24 Summary

Section 6: Four Stages of Compilation Process

Lecture 25 4 Stages of Compilation Process

Lecture 26 Stage 1 of 4 – Preprocessing stage

Lecture 27 Stage 2 of 4 – Compilation Stage

Lecture 28 Stage 3 of 4 – Assembler Stage

Lecture 29 Stage 4 of 4 – Linking Stage

Section 7: Build Project using Makefiles

Lecture 30 Introducing Makefile

Lecture 31 Makefile Analogy – Dependency Tree

Lecture 34 Final Makefile

Section 8: Programmable Libraries – Generics

Lecture 35 Introduction

Lecture 36 Revisiting DLL

Lecture 37 Problem Statement

Lecture 38 Solution – Responsibility Delegation

Lecture 39 Using Programmable DLL Library – Code Walk

Lecture 40 Search Callback Summary

Lecture 41 Comparison Callback

Lecture 42 Comparison Callback Demo

Lecture 43 Summary

Section 9: Iterative Macros

Lecture 45 For loop Semantics

Lecture 46 Iterative Macros For LinkedList

Lecture 47 Iterative Macros for Binary Trees

Lecture 48 Tree Iterators Prerequisites

Lecture 49 Tree Iterators Implementation

Lecture 50 Summary

Section 10: Glue Based Data structures

Lecture 51 Introduction

Lecture 52 Glthreads Definition

Lecture 53 Difference – Traditional Vs Glue Based DLL

Lecture 54 Structure Field Offset

Lecture 55 GLNode Insertion

Lecture 56 GLThread Iteration

Lecture 57 GLNode Removal

Lecture 58 Code Walk – Demo

Lecture 59 Traditional List Problems

Lecture 60 GLThread Benefits

Section 11: Opaque Pointers

Lecture 61 Introduction

Lecture 62 Typical Library Design

Lecture 63 Problem Statement

Lecture 64 Solution Strategy
Lecture 65 Conclusion

Section 12: Bit Programming

Lecture 66 Introduction to Bit Programming

Lecture 67 XOR Operator

Lecture 68 Using Bits as Flags

Lecture 69 Using Enums as Bits

Lecture 70 Bit Pattern Matching

Lecture 71 Bit Pattern Matching Steps

Lecture 72 BitMaps

Lecture 73 BitMap APIs and Implementation

Section 13: Machine Endianness

Lecture 74 Machine Endianness

Lecture 75 Program to find Machine Endianness

Section 14: TLV Based Communication

Lecture 76 TLVs Introduction

Lecture 77 Why we need TLVs ?

Lecture 78 Why we need TLVs – Another scenario

Lecture 79 Understanding TLVs

Lecture 80 TLV Addressing the problem of Heterogeneity

Lecture 81 TLV Addressing the problem of Software Upgrade

Lecture 82 Data Structure – STREAMS

Lecture 83 TLV De-Serialization using STREAMS

Section 15: Working with Linux Posix Timers

Lecture 84 Agenda and Prerequisites

Lecture 85 Timer Relevance

Lecture 86 Timer Types

Lecture 87 Posix APIs for Timers

Lecture 88 Timer Design

Lecture 89 Timer Creation Steps

Lecture 90 Timer Implementation and Demo

Section 16: Memory Layout of Linux Process

Lecture 91 Agenda

Lecture 92 Virtual Memory Memory Basics

Lecture 93 Memory Layout of Linux Process

Lecture 94 Example : Memory Layout of Linux Process

Lecture 95 Exercise on size command

Section 17: Stack Memory Management

Lecture 96 Stack Memory Basics

Lecture 97 Stack Memory Contents

Lecture 98 Stack-Overflow and Prevention

Lecture 99 Stack Memory Corruption

Lecture 101 Common Cpu Registers

Lecture 102 Procedure Call Mechanism

Lecture 103 Purpose of Base Pointer register (ebp)

Lecture 104 Formalizing Procedure Call Algorithm

Lecture 105 Procedure Return – Goals

Lecture 106 Procedure Return Explained – Step by Step

Lecture 107 Formalizing Procedure Return Algorithm

Section 18: Heap Memory Management

Lecture 108 Heap Memory Management – Goals and Introduction

Lecture 109 Malloc() – Quick Revision

Lecture 110 Break pointer

Lecture 111 brk and sbrk system calls

Lecture 112 Malloc Version 1.0

Lecture 113 Problem Statement

Lecture 114 Heap Memory Management Requirement

Lecture 115 MetaBlock and DataBlock

Lecture 116 Allocations and Deallocations

Lecture 117 Block Splitting

Lecture 118 Block Merging

Lecture 119 Problem of Fragmentation

Section 19: Concepts of Paging

Lecture 120 Introduction

Lecture 121 Byte Addressable Memory

Lecture 122 What is 32 bit Or 64 bit system ?

Lecture 123 Bus System

Lecture 124 CPU Generates Virtual Addresses

Lecture 125 Data bus and Address Bus

Lecture 126 Mapping of Virtual Address to Physical Address

Lecture 127 Physical Pages and Frames

Lecture 128 Page Swapping

Lecture 129 Virtual Memory Pages

Lecture 130 1:1 Mapping between Physical and Virtual Page

Lecture 131 Virtual Address Composition

Lecture 132 Page Table

Lecture 133 Paging in Action
Lecture 134 Multiple Process Scenario

Lecture 135 Resolve External Fragmentation

Lecture 138 Shared Physical Pages

Lecture 139 Page tables Problems

Lecture 140 Page Table Problem 1 – Large Page Table Size Matters

Lecture 141 Page Table Problem 2 – Need for Contiguous Main Memory

Lecture 142 Page Table Problem 3 – Page Table Hollowness

Section 20: Multi Level Paging

Lecture 143 Introduction

Section 21: Paging on Demand

Lecture 146 Problem Statement

Lecture 147 Demand Paging Steps

Lecture 148 Effective Access Time

Section 22: Memory Management for Multi-threaded Processes

Lecture 149 Introduction

Lecture 150 Virtual Memory Management

Lecture 151 Page Table Management

Lecture 152 Thread Termination

Section 23: Bonus

Lecture 153 Bonus Lecture – Time to get some Candies !!

Students who have basic knowledge of C/C++ programming,Warning : Not for Absolute beginners in Programming,Who want to take their programming Skills from Beginner to Professional Level,Final year students looking to crack the Interview Questions on OS, C programming

Importantissimo!

Per NON SBAGLIARE link e finire su qualche possibile clone, approfittare di offerte esclusive personalizzate per il nostro sito, e se gradisce questo articolo ed il nostro lavoro, la preghiamo di supportarci rinnovando o sottoscrivendo un Account Premium su FILESTORE cliccando sul link qui sotto:

FileStore

Share This Post!

Torna in cima