Narrated ‘Ali bin Abi Talib (RA): The Prophet (RA) stood up for a funeral (to show respect) and thereafter he sat down. (Dawud)

Introduction to Linux, Open Source Development, and GIT (LFD301)


Linux is exploding, and the demand for Linux developers has never been stronger. This course will introduce you to the world of Linux development and give you the background and training you need to start working with Linux. If you’ve been thinking about getting into Linux development, this is the best place to start!


Training Options

Classroom Training

Online Instructor Led

Onsite Training

Corporate Training Options

Online Instructor Led


Classroom Training

undraw_building_re_xfcm 1

Onsite Training

Overseas Training

Course Information

– Objectives and Audience
– The Linux Foundation
– Copyright and No Confidential Information
– Linux Foundation Training
– Certification Programs and Digital Badging
– Where Does the Software Come From?
– Is it Difficult to Migrate to Linux?
– Migration Considerations
– Migration Aids and Documentation
– Scope and Coverage of System Administration
– Preparing Your System
– Procedures
– Things change in Linux
– Labs

– What is Open Source Software?
– What is Proprietary (Closed Source) Software?
– Pragmatism vs Idealism
– History of Open Source Software
– Open Source Governance Models
– Labs

– Collaborative Development
– Security and Quality of Source Code
– Users: Flexibility
– Business: Collaborative Development
– Business: Marketing
– Education: El-Hi, Public Systems
– Education: University
– Developers: Greater Visibility
– Labs

– Linux Kernel
– git
– Apache
– Python, Perl and Other Computer Languages
– GNU: gcc, gdb, etc
– X and Desktop Managers
– OpenStack, Kubernetes, and other Projects
– Labs

– Overview on How to Contribute Properly
– Know Where the Code is Coming From: DCO and CLA
– 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
– Labs

– Why Continuous Integration?
– Continuous Delivery and Continuous Deployment
– Cost and Benefits
– Tools
– Example: Linux Kernel Continuous Integration Project
– The Continuous Delivery Foundation

– Restrictive vs Permissive Licensing
– Software Patents
– Patents and Licenses
– Choosing a License
– Combining Licenses
– Labs

– Leadership vs Control
– Loosen the Chains
– Mentoring
– Building Trust
– Why do many OSS projects fail
– Labs

– Diversity and Open Source Software
– Sex and Gender Identity
– National Origin, Geography and Language
– Religion and Politics
– Differences of Opinion
– Labs

– GitHub
– Public vs Private
– GUI vs command line
– Labs

– Kernel vs Operating System and Tools
– History of Linux
– UNIX and Linux
– Linux Distributions
– Linux Standard Base (LSB)
– Labs

– Graphical Layers
– X Window System
– Window Managers
– Desktop Managers
– Terminal Window Options
– Labs

– Installation
– Software Management and Packaging
– Upgrading and Patching
– User Directories, Environments, etc
– Logging Files
– Labs

– Sources of Documentation
– man Pages
– info
– –help and help
– Graphical Interfaces
– Labs

– Available Text Editors
– vi
– emacs
– Labs

– Shells
– Shell Initialization
– Aliases
– Environment Variables
– Customizing the Command Line Prompt
– Special Characters
– Redirection
– Pipes
– Command Substitution and Expressions
– Labs

– Filesystem Layout
– Partitions
– Partitioning Considerations
– Paths
– Hard and Soft (Symbolic) Links
– Labs

– System Boot
– System Initialization
– Labs

– Memory
– Swap
– Threading Models
– Labs

– Networking and Network Interfaces
– Labs

– Basic Commands and Utilities
– File Transfer Tools
– Monitoring and Performance Utilities
– Graphical Monitoring Tools
– Loading/Unloading Kernel Modules
– Device Management
– Managing System Services
– Labs

– Basics of Users and Groups
– Adding and Removing Users and Groups
– Files, Users and Permissions
– root (super) user, su and sudo
– Labs

– Filesystems and the VFS
– ext2, ext3, and ext4 Filesystems
– Journaling Filesystems
– btrfs
– Mounting Filesystems
– Labs

– Listing, Creating, Deleting and Renaming Files and Directories
– Finding Files: find and locate
– Finding Strings: grep
– String Substitution: sed
– Labs

– Script Basics
– Conditionals
– Loops
– Functions
– Labs

– Types of Files
– Permissions and Access Rights
– Changing Permissions and Ownership
– Labs

– gcc
– Other Compilers
– Major gcc Options
– Static Libraries
– Shared Libraries
– Linking To Libraries
– Debugging with gdb
– Labs

– Write Once and Use Anywhere?
– Installing Java on Linux
– Handling Multiple JREs and JDKs: the alternatives System
– Environment Variables and Class Paths
– Integrated Development Environments

– Why Use Package Management
– Packaging System Benefits
– Linux Distributions and Package Management
– RPM Creation
– The RPM spec File
– Details on RPM spec Sections
– RPM Dependencies
– Debian Package Creation Workflow
– Labs

– Revision Control
– Know Where the Code is Coming From: DCO and CLA
– Available Revision Control Systems
– Graphical Interfaces
– Documentation
– Labs

– Binary Installation
– Installing from Source
– Labs

– Converting Between Different Systems
– RCS and CVS
– Subversion
– git
– git and Distributed Development
– Labs

– Basic Commands
– A Simple Example
– Labs

– Concepts
– Design Features
– Repositories
– Objects and Index
– Content vs Pathnames
– Committing vs. Publishing
– Upstream and Downstream
– Forking
– Labs

– File Categories
– Basic File Commands
– Labs

– Making a Commitment
– Identifiers and Tags
– Viewing the Commit History
– Reverting and Resetting Commits
– Tidying Repositories
– Who is to Blame?
– Bisecting
– Labs

– What is a branch?
– Branch Names vs Tags
– Branch Creation
– Branch Checkout
– Getting Earlier File Versions
– Labs

– Differencing Files
– Diffing in Git
– Labs

– What is Merging?
– Merge Commands
– Rebasing
– Labs

– Working with Others
– Cloning
– Publishing Your Project
– Fetching, Pulling and Pulling
– Labs

– Why Use Patches?
– Producing Patches
– Emailing
– Applying Patches
– Labs

– Modes of Distributed Development
– Gerrit
– Review Process
– Labs

– Evaluation Survey

This course is for students who are already experienced computer users on another operating system, but have limited or no experience working in a Linux environment. The information in this course will work with any major Linux distribution.

Corporate Training Options

Classroom Training

Customized to your Team’s needs

Onsite Training

Deliver at your Work Location

Online Instructor Led

Connect Online from Anywhere

Upcoming Batch

Enquiry Form:


Mohammed Aljbreen Operation Specialist, SAMA

The Clarity of the Content was very good. The explanation of the trainer with in-depth knowledge in a proper flow really impressed me to give 5 star rating.

Arindam Chakraborty Systems Specialist, King Abdullah University of Sciences & Technology

The Instructor was really impressive. Clear cut explanation of every topic he covered with real time scenarios.

Sher Afzal Khan Cloud Engineer, Cloud 9 Networks

The Trainer and the Course Material, both are good. Good flow of explanation with simple examples. The complete training was focused on current industry challenges.

Jawed Ahmad Siddiqui Sr. System Administrator, Saudi Ceramics

The Trainer’s presentation was impressed me to continue the course till end. Never feel bore till the entire sessions. She studied our mindset and follows.

    Our Corporate Clients

    Best Solution To Transform Your Corporate Envoirnment.

    Not sure,
    which course to choose?

    Our Clients across the Globe!

    Our Offices.


    Office No- 306, Galadari Mazda Building Airport Road, Garhoud, Dubai.


    C / Aribau 11 2-4 08913 Badalona Barcelona,


    85 Skeffington Road East Ham E6 2NA,


    Level 22, HWT Tower, 40 City Road, Southbank, Melbourne VIC 3006.


    12B, Chitrapuri Hills, Hyderabad, Telangana