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

Course Description

Linux is exploding, & the demand for Linux developers has never been stronger. The course will introduce you to the world of Linux development & give you the background & 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.

Prerequisites

This course is for professionals who have already experienced computer users on another operating system but have limited or no experience working in a Linux environment.

Target Audience

This course is for professionals who have 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.

Learning Objectives

In this course, you'll learn about the history of Linux & what differentiates it from other UNIX-like operating systems, what the main ingredients of a Linux system are & how to use them, the essentials of system administration, such as user accounts & groups, essential commands, filesystems, security, & more, networking & threading models, aspects of compiling & using libraries, working with Java under Linux, & more.

Content Outline

  • Objectives & Audience
  • The Linux Foundation
  • Copyright & No Confidential Information
  • Linux Foundation Training
  • Certification Programs & Digital Badging
  • Where Does the Software Come From?
  • Is it Difficult to Migrate to Linux?
  • Migration Considerations
  • Migration Aids & Documentation
  • Scope & 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 & 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 & Other Computer Languages
  • TEX & LATEX
  • GNU: gcc, gdb, etc
  • X & Desktop Managers
  • OpenStack, Kubernetes, & Other Projects
  • Labs

- Overview of How to Contribute Properly

- Know Where the Code is Coming From DCO & CLA

- Study & Understand the Project DNA

- Figure Out What Itch You Want to Scratch

- Identify Maintainers & Their Work Flows & Methods

- Get Early Input & 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, and Be Helpful

- Labs

 

  • Why Continuous Integration?
  • Continuous Delivery & Continuous Deployment
  • Cost & Benefits
  • Tools
  • Example: Linux Kernel Continuous Integration Project
  • The Continuous Delivery Foundation
  • Restrictive vs. Permissive Licensing
  • FUD
  • Software Patents
  • Patents & Licenses
  • Choosing a License
  • Combining Licenses
  • Labs
  • Leadership vs. Control
  • Loosen the Chains
  • Mentoring
  • Building Trust
  • Why do many OSS projects fail
  • Labs
  • Diversity & Open Source Software
  • Sex & Gender Identity
  • National Origin, Geography & Language
  • Religion & Politics
  • Differences in Opinion
  • Labs
  • GitHub
  • Public vs. Private
  • GUI vs. command line
  • Labs
  • Kernel vs. Operating System & Tools
  • History of Linux
  • UNIX & Linux
  • Linux Distributions
  • Linux Standard Base (LSB)
  • Labs
  • Graphical Layers
  • X Window System
  • Window Managers
  • Desktop Managers
  • Terminal Window Options
  • Labs
  • Installation
  • Software Management & Packaging
  • Upgrading & Patching
  • User Directories, Environments, etc
  • Logging Files
  • Labs
  • Sources of Documentation
  • man Pages
  • info
  • –help & 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 & Expressions
  • Labs
  • Filesystem Layout
  • Partitions
  • Partitioning Considerations
  • Paths
  • Hard & Soft (Symbolic) Links
  • Labs
  • System Boot
  • System Initialization
  • Labs
  • Memory
  • Swap
  • Threading Models
  • Labs
  • Networking & Network Interfaces
  • Labs
  • Basic Commands & Utilities
  • File Transfer Tools
  • Monitoring & Performance Utilities
  • Graphical Monitoring Tools
  • Loading/Unloading Kernel Modules
  • Device Management
  • Managing System Services
  • Labs
  • Basics of Users & Groups
  • Adding & Removing Users & Groups
  • Files, Users & Permissions
  • root (super) user, su & sudo
  • Labs
  • Filesystems & the VFS
  • ext2, ext3, & ext4 Filesystems
  • Journaling Filesystems
  • btrfs
  • Mounting Filesystems
  • RAID
  • LVM
  • Labs
  • Listing, Creating, Deleting & Renaming Files & Directories
  • Finding Files: find & locate
  • Finding Strings: grep
  • String Substitution: sed
  • Labs
  • Script Basics
  • Conditionals
  • Loops
  • Functions
  • Labs
  • Types of Files
  • Permissions & Access Rights
  • Changing Permissions & Ownership
  • Labs
  • gcc
  • Other Compilers
  • Major gcc Options
  • Static Libraries
  • Shared Libraries
  • Linking To Libraries
  • Debugging with gdb
  • Labs
  • Write Once & Use Anywhere?
  • Installing Java on Linux
  • Handling Multiple JREs & JDKs: the alternatives System
  • Environment Variables & Class Paths
  • Integrated Development Environments
  • Revision Control
  • Know Where the Code is Coming From DCO & CLA
  • Available Revision Control Systems
  • Graphical Interfaces
  • Documentation
  • Labs
  • Binary Installation
  • Installing from Source
  • Labs
  • Converting Between Different Systems
  • RCS & CVS
  • Subversion
  • git
  • git & Distributed Development
  • Labs
  • Basic Commands
  • A Simple Example
  • Labs
  • Concepts
  • Design Features
  • Repositories
  • Objects & Index
  • Content vs. Pathnames
  • Committing vs. Publishing
  • Upstream & Downstream
  • Forking
  • Labs
  • File Categories
  • Basic File Commands
  • Labs
  • Making a Commitment
  • Identifiers & Tags
  • Viewing the Commit History
  • Reverting & 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 & Pulling
  • Labs
  • Why Use Patches?
  • Producing Patches
  • Emailing
  • Applying Patches
  • Labs
  • Modes of Distributed Development
  • Gerrit
  • Review Process
  • Labs

Evaluation Survey

FAQs

To attend the training session, you should have operational Desktops or Laptops with the required specification, along with a good internet connection to access the labs. 

We would always recommend you attend the live session to practice & clarify the doubts instantly & get more value from your investment. However, if, due to some contingency, you have to skip the class, Radiant Techlearning will help you with the recorded session of that particular day. However, those recorded sessions are not meant only for personal consumption & NOT for distribution or any commercial use.

 

Radiant Techlearning has a data center containing a Virtual Training environment for the purpose of professional hand-on-practice. 

Professionals can easily access these labs over Cloud with the help of a remote desktop connection. 

Radiant virtual labs provide you the flexibility to learn from anywhere in the world & in any time zone. 

 

The professionals will be enthralled as we engage them the real-world & industry Oriented projects during the training program. These projects will improve your skills & knowledge & you will gain a better experience. These real-time projects will help you a lot in your future tasks & assignments.

Send a Message.


  • Enroll