NVidia Jetson TX C System and Posix Programming
Duration: 5 Days
Intended Audience
The course is for experienced embedded systems developers who want to explore C Posix and system programming using the ARM cores on NVidia JetsonTX processors.
Course Overview
The course covers system and Posix API programming in the context of the NVidia Jetson TX2 architecture. Its aims are to consolidate knowledge and understanding of systems and Posix API programming by means of implementing and reviewing a wide range of scenarios that might be encountered as part of the process of developing applications for this particular processor.
Course Contents
- History and overview of the POSIX Standards
- Linux and POSIX
- Systems programming and System Calls
- Working with Files and Directories
- File I/O and the Linux Universal I/O Model
- File systems
- Users and Groups
- File attributes
- File I/O Buffering
- File Attributes and Extended Attributes
- Access Control Lists
- Directories and Links
- Monitoring File Events
- Processes - Creation and Management
- Processes in Linux
- Process Creation
- Process Termination
- Monitoring Child Processes
- Process Credentials
- Program execution - Linkers and Loaders
- Process Groups, Sessions, and Job Control
- Process Priorities and Scheduling
- Process Resources
- Memory
- Physical and virtual memory
- Memory allocation and deallocation
- Signals, Timers and Sleeping
- Signals - fundamental concepts
- Signal handlers
- Time, Timers and Sleeping
- System Related Things
- System limits and options
- Obtaining system and process information
- Proc and Sysfs
- Threads
- Introduction and Overview
- Thread synchronisation
- Thread Safety and Per-Thread Storage
- Thread Cancellation
- Producer Consumer patterns and idioms
- Daemons
- Implementation
- Security and privileges
- Shared Libraries
- Interprocess Communication
- Overview
- Pipes and FIFOs
- Message Queues
- Semaphores
- Shared Memory and Memory Mapping
- File Locking
- Sockets
- Concepts and overview
- UNIX Domain sockets
- TCP/IP Networking fundamentals
- TCP and UDP Sockets
- Client - Server applications - patterns and idioms
- Synchronous vs. Asynchronous Sockets
- Terminals and pseudoterminals
- Multi-processor programming
- Overview of SMP
- Process thread affinity - overview
- Getting and setting process affinity
- OpenMP