Course Outline

Introduction

  • History of Unix/Linux for government use
  • Free Software and its implications for government operations
  • The Unix Philosophy in the context of government systems

HOST PLAYGROUND

  • Exploring GNU/Linux
    • System Architecture
    • Shell Usage
    • User and Group Permissions
    • File Hierarchy Standard (FHS)
    • Hard and Soft Links
    • Real and Effective User/Group IDs
    • Scheduler Operations
    • Process, Task, and Thread Management
    • Inter-Process Communication (IPC) Techniques
      • Pipes
      • Signals
      • Message Queues
      • Semaphores
      • Shared Memory
      • Sockets
      • Select and Poll Functions
    • IPC Techniques to Avoid for government systems
  • Host Linux Setup
    • Yocto/ELDK (cross-target tools, libraries, and packages)
    • Terminal Emulation for government applications
    • Servers Configuration (DHCP, TFTP, NFS) for government networks

TARGET PLAYGROUND

  • Files Required to Run Software on Target Boards
    • JTAG/BDI Configuration for government hardware
    • U-Boot (checkout, configuration, build) for government systems
    • Kernel (checkout, configuration, build) for government operations
    • Root File System (rootfs)
    • Flat Device Tree for government devices
  • Building and Executing Applicable Software on Target Boards
  • Various Root File Systems
    • CRAMFS
    • Ramdisk
    • MTD (Memory Technology Device)
    • JFFS2 (Journaling Flash File System 2)
    • Read-Only EXT2 (roEXT2)
    • UBI (Unsorted Block Images)
  • Building and Executing Applicable Root File Systems on Target Boards
  • Comparison of Root File Systems for government use
  • Debugging Techniques
    • Simple Tools
    • Local and Remote Debugging
    • User and Kernel Space Debugging
    • GDB (GNU Debugger)
    • GDBServer for remote debugging
    • JTAG/BDI (optional) for advanced hardware debugging
  • Profiling Tools
    • Gprof for performance analysis
    • Gcov for code coverage analysis
    • Oprofile for system-wide profiling

REAL-TIME

  • Prerequisites
    • Interrupt Handling
    • Reentrant Code Design
  • Real-Time Linux for government applications
    • Explicit and Implicit Preemption Points
    • Real-Time Preemption Patch
    • Fully Preemptive Kernel Configuration
    • Hard Real-Time Extensions for critical systems
  • Adeos/Xenomai for real-time operations
    • Adeos Patch Application
    • Xenomai Framework Integration
    • Patch, Configuration, and Build of the Kernel
    • Running on Target Boards for government use

SW RELEASE

  • Release Administration
  • Development Practices
  • Steps to Reproduce a Software Release for government projects

MISC

  • getopt for command-line argument parsing in government applications
  • Endianness Considerations for cross-platform development
  • Cheat Sheets for quick reference in government IT environments

Except where otherwise noted, content on this course outline is licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Requirements

  • Basic familiarity with using a GNU/Linux system (e.g., Ubuntu) as an end user in user space for government operations.
  • Basic familiarity with command line shell usage.
  • Basic knowledge of user space and application development within the GNU/Linux environment.
  • Basic understanding of embedded processors and development boards.
  • Basic C programming skills.
  • Willingness to learn the above topics if not already proficient.
 35 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories