title
Please take a moment to fill out this form. We will get back to you as soon as possible.
All fields marked with an asterisk (*) are mandatory.
Developing Applications For Linux (LFD401)
Course Description
Overview
Learn how to develop applications for the Linux environment. In this course, you'll get hands-on experience with the necessary tools and methods for Linux application development and learn about the features and techniques that are unique to Linux.Objectives
Audience
Prerequisites
-
This course is for experienced developers. Students should be proficient in C programming, and be familiar with basic Linux utilities and text editors.
Topics
- Objectives
- Who You Are
- The Linux Foundation
- Linux Foundation Training
- Linux Distributions
- Platforms
- Preparing Your System
- Using and Downloading a Virtual Machine
- Things change in Linux
- Course Registration
- Procedures
- Standards and the LSB
- Overview on How to Contribute Properly
- Stay Close to Mainline for Security and Quality
- Study and Understand the Project DNA
- Figure Out What Itch You Want to Scratch
- Identify Maintainers and Their Work Flows and Methods
- Get Early Input and Work in the Open
- Contribute Incremental Bits, Not Large Code Dumps
- Leave Your Ego at the Door: Don’t Be Thin-Skinned
- Be Patient, Develop Long Term Relationships, Be Helpful
- GCC
- Other Compilers
- Major gcc Options
- Preprocessor
- Integrated Development Environments (IDE)
- Labs
- Static Libraries
- Shared Libraries
- Linking To Libraries
- Dynamic Linking Loader
- Labs
- Using make and Makefiles
- Building large projects
- More complicated rules
- Built-in rules
- Labs
- Source Control
- RCS and CVS
- Subversion
- git
- Labs
- gdb
- What are Core Dump Files?
- Producing Core Dumps
- Examining Core Dumps
- Labs
- Electric Fence
- Getting the Time
- Profiling and Performance
- valgrind
- Labs
- System Calls vs. Library Functions
- How System Calls are Made
- Return Values and Error Numbers
- Labs
- Memory Management
- Dynamical Allocation
- Tuning malloc()
- Locking Pages
- Labs
- Files, Directories and Devices
- The Virtual File System
- The ext2/ext3 Filesystem
- Journaling Filesystems
- The ext4/ Filesystem
- Labs
- UNIX File I/O
- Opening and Closing
- Reading, Writing and Seeking
- Positional and Vector I/O
- Standard I/O Library
- Large File Support (LFS)
- Labs
- Stat Functions
- Directory Functions
- inotify
- Memory Mapping
- flock() and fcntl()
- Making Temporary Files
- Other System Calls
- Labs
- What is a Process?
- Process Limits
- Process Groups
- The proc Filesystem
- Inter-Process Communication Methods
- Labs
- Using system() to Create a Process
- Using fork() to Create a Process
- Using exec() to Create a Process
- Using clone()
- Exiting
- Constructors and Destructors
- Waiting
- Daemon Processes
- Labs
- Pipes and Inter-Process Communication
- popen() and pclose()
- pipe()
- Named Pipes (FIFOs)
- splice(), vmsplice() and tee()
- Labs
- What is Asynchronous I/O?
- The POSIX Asynchronous I/O API
- Linux Implementation
- Labs
- What are Signals?
- Signals Available
- Dispatching Signals
- Alarms, Pausing and Sleeping
- Setting up a Signal Handler
- Signal Sets
- sigaction()
- Labs
- Reentrancy and Signal Handlers
- Jumping and Non-Local Returns
- siginfo and sigqueue()
- Real Time Signals
- Labs
- Multi-threading under Linux
- Basic Program Structure
- Creating and Destroying Threads
- Signals and Threads
- Forking vs. Threading
- Labs
- Deadlocks and Race Conditions
- Mutex Operations
- Semaphores
- Futexes
- Conditional Operations
- Labs
- Networking Layers
- What are Sockets?
- Stream Sockets
- Datagram Sockets
- Raw Sockets
- Byte Ordering
- Labs
- Socket Address Structures
- Converting IP Addresses
- Host Information
- Labs
- Service Port Information
- Protocol Information
- Labs
- Basic Client Sequence
- socket()
- connect()
- close() and shutdown()
- UNIX Client
- Internet Client
- Labs
- Basic Server Sequence
- bind()
- listen()
- accept()
- UNIX Server
- Internet Server
- Labs
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
- Getting and Setting Socket Options
- fcntl()
- ioctl()
- getsockopt() and setsockopt()
- Lab
- What are netlink Sockets?
- Opening a netlink Socket
- netlink Messages
- Labs
- Multiplexed and Asynchronous Socket I/O
- select()
- poll()
- pselect() and ppoll()
- epoll
- Signal Driven and Asynchronous I/O
- Concurrent Servers
- Labs
- Methods of IPC
- POSIX IPC
- System V IPC**
- Labs
- What is Shared Memory?
- POSIX Shared Memory
- System V Shared Memory**
- Labs
- What is a Semaphore?
- POSIX Semaphores
- System V Semaphores**
- Labs
- What are Message Queues?
- POSIX Message Queues
- System V Message Queues**
- Labs
Related Courses
-
Cloud Foundry Certified Developer (CFCD)
LQEX-LNX-CFCD- Duration: 0.5 Day
- Delivery Format: Exam Vouchers
- Price: 395.00 USD
-
Certified Kubernetes Application Developer
LQEX-LNX-CKAD- Duration: 0.25 Day
- Delivery Format: Exam Vouchers
- Price: 395.00 USD
Self-Paced Training Info
Learn at your own pace with anytime, anywhere training
- Same in-demand topics as instructor-led public and private classes.
- Standalone learning or supplemental reinforcement.
- e-Learning content varies by course and technology.
- View the Self-Paced version of this outline and what is included in the SPVC course.
- Learn more about e-Learning
Course Added To Shopping Cart
bla
bla
bla
bla
bla
bla
Self-Paced Training Terms & Conditions
Exam Terms & Conditions
Sorry, there are no classes that meet your criteria.
Please contact us to schedule a class.
STOP! Before You Leave
Save 0% on this course!
Take advantage of our online-only offer & save 0% on any course !
Promo Code skip0 will be applied to your registration
Purchase Information
title
Please take a moment to fill out this form. We will get back to you as soon as possible.
All fields marked with an asterisk (*) are mandatory.