Linux
Development Essentials
Course Description
This course is designed to bring C developers up to speed
with a variety of tools and capabilities of Linux. This includes
development and debugging tools as well as system and library
functions.
The intent is to
provide background that will be of general interest to all
Linux based developers.
Students should be prepared for some lengthy programming exercises.
Overview
This course provides substantial practice with key tools and
capabilities available to developers of Linux based applications
and system software. The course shows attendees how to use
development and debugging tools and how to make use of many
Linux system calls and library routines.
Attendees will
spend approximately 50 percent of the class time actually
gaining hands-on experience with these topics.
Course Objectives
Effectively use a variety of tools for Linux application development.
To give you practical experience in using Linux system calls
and library routines.
Compile programs with variety of options.
Use GDB to debug applications.
Use electric fence, gprof, gcov, and other tools for debugging and performance analysis.
Write a simple shell.
Create socket base applications.
Attendees will learn:
How to use GNU tools for compiling and debugging.
How to use an integrated development environment.
How to write POSIX Threaded applications
How to use system calls for such things as inter-process communication, interacting with the file system, signals, time, creating a daemon and scheduling.
Who Should Attend:
The course is for programmers who are new to Unix and Linux.
Attendees should have experience with C and be able to perform
basic Unix commands.
Duration: Four
days. (9AM - 5PM)
Course Materials
The workshop materials include a comprehensive student workbook
. The workbook contains all of the slides used in the
course as well as hands-on lab exercises.
Course Workshop:
The workshop makes use of standard PC's with a desktop Linux
distribution for development.
Course Content:
Linux Development
Objectives and
format
Course overview
Overview Of Linux Programming
Linux kernel
overview
System calls and library routines
System Libraries
and Headers
System Include
files
Using and creating libraries
Linking
Using Make
Programming with
GNU tools
gcc
optimization
linker
debugging with gdb
Tools
Integrated Development
Environments: KDevelop & Eclipse
Electric Fence & Valgrind
cachegrind
dmalloc
gprof
gcov
System Limits and Portability
System Configuration
Linux Standards Base
POSIX
Process Management
Creating processes
Process signaling and status
Process and user ID's
Linux File System
Access Permissions
I/O System Calls
Manipulating files
Higher performance I/O
Inter-Process Communication
Pipes
Semaphores
Message Queues
Sockets
Shared Memory
Scheduling
Process Scheduling
Manipulating Priorities
Preemption
Signals
Sending Signals
Reliable signal handling
Signal sets
Queueing signals
Time
Current Date and Time
Timing events
Timers
POSIX Threads
Creating Threads
Synchronizing Threads
Thread scheduling
Threads and Signals
Shared Memory
Daemon Programming
Process groups
Starting Daemons
Message Queues
Error reporting
Optional:
All attendees will get a Linux laptop to be used during the
class. You have the option of purchasing this laptop with
an additional course fee.
On-site:
If you would like to arrange an on-site Linux software development
class, please contact us at classes@linuxcertified.com
Fee:
$2599 per student (includes all class materials)
Public
class schedule: Please see dates on our calendar page.
Enrollment
Form
|