Intro to Open Source Development, Git, and Linux

  • Model: LFD201
  • 9999 Units in Stock

$3,150.00

Add to Cart:

Intro to Open Source Development, Git, and Linux

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!

  • Introduction
  • Objectives and Audience
  • The Linux Foundation
  • Linux Foundation Training
  • 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
  • Course Registration
  • Labs
  • Open Source Software
  • What is Open Source Software?
  • History of Open Source Software
  • Open Source Governance Models
  • Labs
  • Why Use Open Source Software?
  • 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
  • Examples of Successful OSS Projects
  • Linux Kernel
  • git
  • Apache
  • Python, Perl and Other Computer Languages
  • Tkern -.1667emlower .5exhbox kern -.125emXspacefactor @m { and LaTeX
  • GNU: gcc, gdb, etc.
  • X and Desktop Managers
  • OpenStack, Kubernetes, and other Projects
  • Labs
  • How to Work in OSS Projects
  • Overview on How to Contribute Properly
  • 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
  • Continuous Integration
  • Why Continuous Integration?
  • Continuous Delivery and Continuous Deployment
  • Cost and Benefits
  • Tools
  • Example: Linux Kernel Continuous Integration Project
  • OSS Licensing and Legal Issues
  • Restrictive vs Permissive Licensing
  • FUD
  • Choosing a License
  • Labs
  • Leadership vs Control and Why Projects Fail
  • Leadership vs Control
  • Loosen the Chains
  • Mentoring
  • Building Trust
  • Why do many OSS projects fail
  • Labs
  • Respecting and Encouraging Diversity in OSS
  • Diversity and Open Source Software
  • Sex and Gender Identity
  • National Origin, Geography and Language
  • Religion and Politics
  • Differences of Opinion
  • Labs
  • GitHub and Other Hosting Providers
  • GitHub
  • Public vs Private
  • GUI vs command line
  • Labs
  • Linux and the Operating System
  • Kernel vs Operating System and Tools
  • History of Linux
  • UNIX and Linux
  • Linux Distributions
  • Linux Standard Base (LSB)
  • Labs
  • Graphical Environments and Interfaces
  • Graphical Layers
  • X Window System
  • Window Managers
  • Desktop Managers
  • Terminal Window Options
  • Labs
  • Getting Help
  • Sources of Documentation
  • man Pages
  • info
  • help and help
  • Graphical Interfaces
  • Labs
  • Text Editors
  • Available Text Editors
  • vi
  • emacs
  • Labs
  • Shells, bash, and the Command Line
  • Shells
  • Shell Initialization
  • Aliases
  • Environment Variables
  • Customizing the Command Line Prompt
  • Special Characters
  • Redirection
  • Pipes
  • Command Substitution and Expressions
  • Labs
  • Filesystem Layout, Partitions, Paths and Links
  • Filesystem Layout
  • Partitions
  • Partitioning Considerations
  • Paths
  • Hard and Soft (Symbolic) Links
  • Labs
  • System Initialization
  • System Boot
  • System Initialization
  • Labs
  • Memory
  • Memory
  • Swap
  • Threading Models
  • Labs
  • Networking
  • Networking and Network Interfaces
  • Labs
  • Command Details
  • Basic Commands and Utilities
  • File Transfer Tools
  • Monitoring and Performance Utilities
  • Graphical Monitoring Tools
  • Loading/Unloading Kernel Modules
  • Device Management
  • Managing System Services
  • Labs
  • System Administration
  • Installation
  • Software Management and Packaging
  • Upgrading and Patching
  • User Directories, Environments, etc.
  • Logging Files
  • Labs
  • Users and Groups
  • Basics of Users and Groups
  • Adding and Removing Users and Groups
  • Files, Users and Permissions
  • root (super) user, su and sudo
  • Labs
  • Linux Filesystems
  • Filesystems and the VFS
  • ext2, ext3, and ext4 Filesystems
  • Journaling Filesystems
  • btrfs
  • Mounting Filesystems
  • RAID
  • LVM
  • Labs
  • Essential Command Line Tools
  • Listing, Creating, Deleting and Renaming Files and Directories
  • Finding Files: find and locate
  • Finding Strings: grep
  • String Substitution: sed
  • Labs
  • Bash Scripting
  • Script Basics
  • Conditionals
  • Loops
  • Functions
  • Labs
  • Files and Filesystems
  • Types of Files
  • Permissions and Access Rights
  • Changing Permissions and Ownership
  • Labs
  • Compiling, Linking and Libraries
  • gcc
  • Other Compilers
  • Major gcc Options
  • Static Libraries
  • Shared Libraries
  • Linking To Libraries
  • Debugging with gdb
  • Labs
  • Java Installation and Environment**
  • 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
  • Building RPM and Debian Packages
  • 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
  • Introduction to GIT
  • Revision Control
  • Available Revision Control Systems
  • Graphical Interfaces
  • Documentation
  • Labs
  • Git Installation
  • Binary Installation
  • Installing from Source
  • Labs
  • Git and Revision Control Systems
  • Converting Between Different Systems
  • RCS and CVS
  • Subversion
  • git
  • git and Distributed Development
  • Labs
  • Using Git: an Example
  • Basic Commands
  • A Simple Example
  • Labs
  • Git Concepts and Architecture
  • Concepts
  • Design Features
  • Repositories
  • Objects and Index
  • Content vs Pathnames
  • Committing vs. Publishing
  • Upstream and Downstream
  • Forking
  • Labs
  • Managing Files and the Index
  • File Categories
  • Basic File Commands
  • Labs
  • Commits
  • Making a Commitment
  • Identifiers and Tags
  • Viewing the Commit History
  • Reverting and Resetting Commits
  • Tidying Repositories
  • Who is to Blame?
  • Bisecting
  • Labs
  • Branches
  • What is a branch?
  • Branch Names vs Tags
  • Branch Creation
  • Branch Checkout
  • Getting Earlier File Versions
  • Labs
  • Diffs
  • Differencing Files
  • Diffing in Git
  • Labs
  • Merges
  • What is Merging?
  • Merge Commands
  • Rebasing
  • Labs
  • Managing Local and Remote Repositories
  • Working with Others
  • Cloning
  • Publishing Your Project
  • Fetching, Pulling and Pulling
  • Labs
  • Using Patches
  • Why Use Patches?
  • Producing Patches
  • Emailing
  • Applying Patches
  • Labs
  • Advanced Git Interfaces: Gerrit
  • Modes of Distributed Development
  • Gerrit
  • Review Process
  • Labs
  • Closing and Evaluation Survey

Prerequisites

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.


This product was added to our catalog on Thursday 31 January, 2019.

Copyright © 2019 Chainbelow. Powered by Zen Cart
Develop Blockchains