\
0:00 Introduction
9:58 Join Telegram Group
10:12 Setting up Linux Development Environment
15:54 Begin - Doubly Linked List as a Library
19:21 Quick Compilation Steps
25:31 Summary
Header Files\
28:21 What are Header Files and their Purpose _
32:43 Relationship between Source and Header Files
40:31 Text Substitution
44:08 Text Substitution Example
50:32 Text Substitution Demonstration
Directives\
53:45 Problem Of Duplicate Inclusion of Header Files
59:47 What are Pre-processing Directives _
1:06:06 Solution to Duplicate Inclusion of Hdr files using Preprocessing Directives
Way of Using Structures and Functions\
1:14:40 Structure Definitions and Use
1:19:00 Function Declaration and Use
1:27:53 Recursive Dependency
1:36:42 Solution to Recursive Dependency
1:41:15 Summary
Creation of Static and Dynamic Libraries\
1:42:52 Resuming with Doubly Linked List Library
1:48:47 Static and Dynamic Libraries - Quick Creation
1:57:38 Linking with Static Library
2:05:45 Linking with Dynamic Library
2:09:18 Summary
Stages of Compilation Process\
2:10:14 4 Stages of Compilation Process
2:16:29 Stage 1 of 4 - Preprocessing stage
2:21:22 Stage 2 of 4 - Compilation Stage
2:24:29 Stage 3 of 4 - Assembler Stage
2:29:01 Stage 4 of 4 - Linking Stage
Project using Makefiles\
2:35:18 Introducing Makefile
2:40:26 Makefile Analogy - Dependency Tree
2:46:02 Makefile Assignment - part1
2:51:44 Makefile Assignment - part2
3:02:59 Final Makefile
Libraries - Generics\
3:11:02 Introduction
3:15:56 Revisiting DLL
3:23:03 Problem Statement
3:25:53 Solution - Responsibility Delegation
3:36:52 Using Programmable DLL Library - Code Walk
3:40:21 Search Callback Summary
3:43:04 Comparison Callback
3:53:52 Comparison Callback Demo
3:56:54 Summary
Macros\
3:58:37 Getting Started
4:02:58 For loop Semantics
4:05:57 Iterative Macros For LinkedList
4:15:47 Iterative Macros for Binary Trees
4:20:46 Tree Iterators Prerequisites
4:24:28 Tree Iterators Implementation
4:29:37 Summary
Based Data structures\
4:31:08 Introduction
4:34:43 Glthreads Definition
4:39:02 Difference - Traditional Vs Glue Based DLL
4:43:56 Structure Field Offset
4:51:33 GLNode Insertion
4:55:15 GLThread Iteration
4:58:30 GLNode Removal
4:59:48 Code Walk - Demo
5:06:13 Traditional List Problems
5:11:52 GLThread Benefits
Pointers\
5:16:47 Introduction
5:19:21 Typical Library Design
5:22:28 Problem Statement
5:26:35 Solution Strategy
5:32:28 Conclusion
Programming\
5:35:06 Introduction to Bit Programming
5:46:55 XOR Operator
5:54:52 Using Bits as Flags
6:06:15 Using Enums as Bits
6:08:55 Bit Pattern Matching
6:12:56 Bit Pattern Matching Steps
6:16:03 BitMaps
6:23:48 BitMap APIs and Implementation
Based Communication\
6:29:24 TLVs Introduction
6:36:52 Why we need TLVs _
6:49:18 Why we need TLVs - Another scenario
6:55:36 Understanding TLVs
7:06:14 TLV Addressing the problem of Heterogeneity
7:25:00 TLV Addressing the problem of Software Upgrade
7:30:25 Data Structure - STREAMS
7:39:10 TLV De-Serialization using STREAMS
with Linux Posix Timers\
7:48:14 Agenda and Prerequisites
7:50:53 Timer Relevance
7:53:02 Timer Types
7:55:59 Posix APIs for Timers
7:58:10 Timer Design
8:05:10 Timer Creation Steps
8:14:55 Timer Implementation and Demo
Endianness\
8:29:11 Machine Endianness
8:35:30 Program to find Machine Endianness
Layout of Linux Process\
8:37:25 Agenda
8:40:42 Virtual Memory Memory Basics
8:47:42 Memory Layout of Linux Process
8:57:58 Example _ Memory Layout of Linux Process
9:06:52 Exercise on size command
Memory Management\
9:10:21 Stack Memory Basics
9:16:00 Stack Memory Contents
9:24:02 Stack-Overflow and Prevention
9:27:19 Stack Memory Corruption
9:32:12 Procedure Call and Return - Getting Started
9:36:54 Common Cpu Registers
9:39:59 Procedure Call Mechanism
9:50:05 Purpose of Base Pointer register (ebp)
9:54:20 Formalizing Procedure Call Algorithm
9:58:17 Procedure Return - Goals
10:02:10 Procedure Return Explained - Step by Step
10:08:14 Formalizing Procedure Return Algorithm
Memory Management\
10:12:37 Heap Memory Management - Goals and Introduction
10:16:36 Malloc() - Quick Revision
10:25:26 Break pointer
10:27:57 brk and sbrk system calls
10:33:45 Malloc Version 1.0
10:40:56 Problem Statement
10:44:36 Heap Memory Management Requirement
10:47:32 MetaBlock and DataBlock
10:53:51 Allocations and Deallocations
10:59:24 Block Splitting
11:05:31 Block Merging
11:09:17 Problem of Fragmentation
1 view
54
23
2 years ago 00:24:25 4
Here’s How They Built The Most Secure Phone On The Planet