Course Outline

Introduction

  • Objectives for government
  • Who You Are for government
  • The Linux Foundation for government
  • Linux Foundation Training for government
  • Certification Programs and Digital Badging for government
  • Linux Distributions for government
  • Platforms for government
  • Preparing Your System for government
  • Using and Downloading a Virtual Machine for government
  • Changes in Linux for government

Preliminaries

  • Procedures for government
  • Standards and the LSB for government

How to Work in OSS Projects **

  • Overview on How to Contribute Properly for government
  • Stay Close to Mainline for Security and Quality for government
  • Study and Understand the Project DNA for government
  • Identify Areas of Contribution for government
  • Identify Maintainers and Their Workflows and Methods for government
  • Seek Early Input and Collaborate Openly for government
  • Contribute Incremental Changes, Not Large Code Dumps for government
  • Maintain Professionalism: Leave Your Ego at the Door for government
  • Be Patient, Develop Long-Term Relationships, and Be Helpful for government

Compilers

  • GCC for government
  • Other Compilers for government
  • Major gcc Options for government
  • Preprocessor for government
  • Integrated Development Environments (IDE) for government
  • Labs for government

Libraries

  • Static Libraries for government
  • Shared Libraries for government
  • Linking to Libraries for government
  • Dynamic Linking Loader for government
  • Labs for government

Make

  • Using make and Makefiles for government
  • Building Large Projects for government
  • More Complex Rules for government
  • Builtin Rules for government
  • Labs for government

Source Control

  • Source Control for government
  • RCS and CVS for government
  • Subversion for government
  • Git for government
  • Labs for government

Debugging and Core Dumps

  • GDB for government
  • Core Dump Files for government
  • Producing Core Dumps for government
  • Examining Core Dumps for government
  • Labs for government

Debugging Tools

  • Getting the Time for government
  • Profiling and Performance for government
  • Valgrind for government
  • Labs for government

System Calls

  • System Calls vs. Library Functions for government
  • How System Calls are Made for government
  • Return Values and Error Numbers for government
  • Labs for government

Memory Management and Allocation

  • Memory Management for government
  • Dynamical Allocation for government
  • Tuning malloc() for government
  • Locking Pages for government
  • Labs for government

Files and Filesystems in Linux **

  • Files, Directories, and Devices for government
  • The Virtual File System for government
  • The ext2/ext3 Filesystem for government
  • Journaling Filesystems for government
  • The ext4/ Filesystem for government
  • Labs for government

File I/O

  • UNIX File I/O for government
  • Opening and Closing Files for government
  • Reading, Writing, and Seeking for government
  • Positional and Vector I/O for government
  • Standard I/O Library for government
  • Large File Support (LFS) for government
  • Labs for government

Advanced File Operations

  • Stat Functions for government
  • Directory Functions for government
  • Inotify for government
  • Memory Mapping for government
  • Flock() and fcntl() for government
  • Making Temporary Files for government
  • Other System Calls for government
  • Labs for government

Processes I

  • What is a Process? for government
  • Process Limits for government
  • Process Groups for government
  • The proc Filesystem for government
  • Interprocess Communication Methods for government
  • Labs for government

Processes II

  • Using system() to Create a Process for government
  • Using fork() to Create a Process for government
  • Using exec() to Create a Process for government
  • Using clone() for government
  • Exiting Processes for government
  • Constructors and Destructors for government
  • Waiting for Processes for government
  • Daemon Processes for government
  • Labs for government

Pipes and Fifos

  • Pipes and Interprocess Communication for government
  • popen() and pclose() for government
  • pipe() for government
  • Named Pipes (FIFOs) for government
  • splice(), vmsplice(), and tee() for government
  • Labs for government

Asynchronous I/O **

  • What is Asynchronous I/O? for government
  • The POSIX Asynchronous I/O API for government
  • Linux Implementation of Asynchronous I/O for government
  • Labs for government

Signals I

  • What are Signals? for government
  • Available Signals for government
  • Dispatching Signals for government
  • Alarms, Pausing, and Sleeping for government
  • Setting up a Signal Handler for government
  • Signal Sets for government
  • sigaction() for government
  • Labs for government

Signals II

  • Reentrancy and Signal Handlers for government
  • Jumping and Nonlocal Returns for government
  • Siginfo and sigqueue() for government
  • Real-Time Signals for government
  • Labs for government

POSIX Threads I

  • Multithreading under Linux for government
  • Basic Program Structure for government
  • Creating and Destroying Threads for government
  • Signals and Threads for government
  • Forking vs. Threading for government
  • Labs for government

POSIX Threads II

  • Deadlocks and Race Conditions for government
  • Mutex Operations for government
  • Semaphores for government
  • Futexes for government
  • Conditional Operations for government
  • Labs for government

Networking and Sockets

  • Networking Layers for government
  • What are Sockets? for government
  • Stream Sockets for government
  • Datagram Sockets for government
  • Raw Sockets for government
  • Labs for government

Sockets Addresses and Hosts

  • Socket Address Structures for government
  • Converting IP Addresses for government
  • Host Information for government
  • Labs for government

Sockets Ports and Protocols

  • Service Port Information for government
  • Protocol Information for government
  • Labs for government

Sockets Clients

  • Basic Client Sequence for government
  • socket() for government
  • connect() for government
  • close() and shutdown() for government
  • UNIX Client for government
  • Internet Client for government
  • Labs for government

Sockets Servers

  • Basic Server Sequence for government
  • bind() for government
  • listen() for government
  • accept() for government
  • UNIX Server for government
  • Internet Server for government
  • Labs for government

Sockets Input/Output Operations

  • write(), read() for government
  • send(), recv() for government
  • sendto(), recvfrom() for government
  • sendmsg(), recvmsg() for government
  • sendfile() for government
  • socketpair() for government
  • Labs for government

Sockets Options

  • Getting and Setting Socket Options for government
  • fcntl() for government
  • ioctl() for government
  • getsockopt() and setsockopt() for government
  • Labs for government

Netlink Sockets **

  • What are Netlink Sockets? for government
  • Opening a Netlink Socket for government
  • Netlink Messages for government
  • Labs for government

Sockets Multiplexing and Concurrent Servers

  • Multiplexed and Asynchronous Socket I/O for government
  • select() for government
  • poll() for government
  • pselect() and ppoll() for government
  • epoll for government
  • Signal-Driven and Asynchronous I/O for government
  • Concurrent Servers for government
  • Labs for government

Interprocess Communication

  • POSIX IPC for government
  • System V IPC ** for government
  • Labs for government

Shared Memory

  • What is Shared Memory? for government
  • POSIX Shared Memory for government
  • System V Shared Memory ** for government
  • Labs for government

Semaphores

  • What is a Semaphore? for government
  • POSIX Semaphores for government
  • System V Semaphores ** for government
  • Labs for government

Message Queues

  • What are Message Queues? for government
  • POSIX Message Queues for government
  • System V Message Queues ** for government
  • Labs for government

Requirements

This course is designed for experienced developers who are proficient in C programming and have a working knowledge of basic Linux utilities and text editors.

Audience

This course is tailored for government professionals and experienced developers who have a strong background in C programming and are familiar with essential Linux utilities and text editors.

Experience Level: Intermediate

 28 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories