Linux Application Development

1 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 5
Please Log in or register to rate

Linux Application Development


In this intensive week, you will learn all about Linux application building and debugging, from low level constructs and close interaction with the kernel space, and to the highest abstractions. You will learn the best practices of multi-threaded programming in a multiprocessor environment, learn all about efficient IPC, effective computing, resilient code techniques, system resource monitoring and debugging.
The course is a must have for anyone who needs to learn proper Linux application development skills, or take them to the next level.


Target Audience:
C and C++ developers moving to Linux or aiming to improve their application and system programming skills.

• The attendees should be proficient with either C or C++
• Working knowledge of Linux command line tools (recommended)

Course Topics
  • Introduction to Linux, Licensing, Open Source terminology
  • Linux Kernel premier, Kernel vs. User space
  • The “Everything is a file” concept
  • Toolchains, GCC
  • Make language
  • git and source control
  • Debugging, GDB
  • The binutils
  • Analyzing core dumps
  • Other debugging and profiling tools
  • System Calls
  • Memory management and memory allocation
  • Filesystems design considerations
  • Filesystems in Linux
  • Working with files and directories
  • fops, ioctl:  the linux device driver gate
  • Process model, Threading model, userspace, kernel space and more
  • IPC: Signals
  • Exception handling. Signals vs. Exceptions
  • Kernel handlers  tasklets, working queues, bottom halves/top halves – theory
  • Threads and Synchronization: spin_locks, semaphores, mutexes, futex
  • IPC: shared memory
  • IPC: sockets, TCP/IP, Unix Domain Sockets
  • IPC: Message Queues
  • IPC: Netlink sockets
  • OS inspection, debugging, debugfs, sysfs, procfs (introduction)
  • Asynchronous/Synchronous programming constructs and concepts
Detailed Course Outline
© Copyright - Skilit - Site by Dweb