Introduction to Linux, Open Source Development, and GIT (LFD301)
Seminarinformationen
Seminar - Ziel
In this course you will learn about the history of Linux and what differentiates it from other UNIX-like operating systems, what the main ingredients of a Linux system are and how to use them, the essentials of system administration, such as user accounts and groups, essential commands, filesystems, security, and more, networking and threading models, aspects of compiling and using libraries, working with Java under Linux, and more.
Teilnehmer - Zielgruppe
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.
Kurs - Voraussetzungen
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.
Seminardauer
- 4 Tage
- 09:00 Uhr bis 17:00 Uhr
Schulungsunterlagen
Seminar-Inhalt / Agenda
Introduction
- Objectives and Audience
- The Linux Foundation
- 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
- LabsOpen Source Software
- What is Open Source Software?
- What is Proprietary (Closed Source) Software?
- Pragmatism vs Idealism
- History of Open Source Software
- Open Source Governance Models
- LabsWhy 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
- LabsExamples of Successful OSS Projects
- Linux Kernel
- git
- Apache
- Python, Perl and Other Computer Languages
- TEX and LATEX
- GNU: gcc, gdb, etc
- X and Desktop Managers
- OpenStack, Kubernetes, and other Projects
- LabsHow 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
- LabsContinuous Integration
- Why Continuous Integration?
- Continuous Delivery and Continuous Deployment
- Cost and Benefits
- Tools
- Example: Linux Kernel Continuous Integration Project
- The Continuous Delivery FoundationOSS Licensing and Legal Issues
- Restrictive vs Permissive Licensing
- FUD
- Software Patents
- Patents and Licenses
- Choosing a License
- Combining Licenses
- LabsLeadership vs Control and Why Projects Fail
- Leadership vs Control
- Loosen the Chains
- Mentoring
- Building Trust
- Why do many OSS projects fail
- LabsRespecting 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
- LabsGitHub and Other Hosting Providers
- GitHub
- Public vs Private
- GUI vs command line
- LabsLinux and the Operating System
- Kernel vs Operating System and Tools
- History of Linux
- UNIX and Linux
- Linux Distributions
- Linux Standard Base (LSB)
- LabsGraphical Environments and Interfaces
- Graphical Layers
- X Window System
- Window Managers
- Desktop Managers
- Terminal Window Options
- LabsSystem Administration
- Installation
- Software Management and Packaging
- Upgrading and Patching
- User Directories, Environments, etc
- Logging Files
- LabsGetting Help
- Sources of Documentation
- man Pages
- info
- –help and help
- Graphical Interfaces
- LabsText Editors
- Available Text Editors
- vi
- emacs
- LabsShells, bash, and the Command Line
- Shells
- Shell Initialization
- Aliases
- Environment Variables
- Customizing the Command Line Prompt
- Special Characters
- Redirection
- Pipes
- Command Substitution and Expressions
- LabsFilesystem Layout, Partitions, Paths and Links
- Filesystem Layout
- Partitions
- Partitioning Considerations
- Paths
- Hard and Soft (Symbolic) Links
- LabsSystem Initialization
- System Boot
- System Initialization
- LabsMemory
- Memory
- Swap
- Threading Models
- LabsNetworking
- Networking and Network Interfaces
- LabsCommand Details
- Basic Commands and Utilities
- File Transfer Tools
- Monitoring and Performance Utilities
- Graphical Monitoring Tools
- Loading/Unloading Kernel Modules
- Device Management
- Managing System Services
- LabsUsers and Groups
- Basics of Users and Groups
- Adding and Removing Users and Groups
- Files, Users and Permissions
- root (super) user, su and sudo
- LabsLinux Filesystems
- Filesystems and the VFS
- ext2, ext3, and ext4 Filesystems
- Journaling Filesystems
- btrfs
- Mounting Filesystems
- RAID
- LVM
- LabsEssential Command Line Tools
- Listing, Creating, Deleting and Renaming Files and Directories
- Finding Files: find and locate
- Finding Strings: grep
- String Substitution: sed
- LabsBash Scripting
- Script Basics
- Conditionals
- Loops
- Functions
- LabsFiles and Filesystems
- Types of Files
- Permissions and Access Rights
- Changing Permissions and Ownership
- LabsCompiling, Linking and Libraries
- gcc
- Other Compilers
- Major gcc Options
- Static Libraries
- Shared Libraries
- Linking To Libraries
- Debugging with gdb
- LabsJava 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 EnvironmentsBuilding 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
- LabsIntroduction to GIT
- Revision Control
- Available Revision Control Systems
- Graphical Interfaces
- Documentation
- LabsGit Installation
- Binary Installation
- Installing from Source
- LabsGit and Revision Control Systems
- Converting Between Different Systems
- RCS and CVS
- Subversion
- git
- git and Distributed Development
- LabsUsing Git: an Example
- Basic Commands
- A Simple Example
- LabsGit Concepts and Architecture
- Concepts
- Design Features
- Repositories
- Objects and Index
- Content vs Pathnames
- Committing vs. Publishing
- Upstream and Downstream
- Forking
- LabsManaging Files and the Index
- File Categories
- Basic File Commands
- LabsCommits
- Making a Commitment
- Identifiers and Tags
- Viewing the Commit History
- Reverting and Resetting Commits
- Tidying Repositories
- Who is to Blame?
- Bisecting
- LabsBranches
- What is a branch?
- Branch Names vs Tags
- Branch Creation
- Branch Checkout
- Getting Earlier File Versions
- LabsDiffs
- Differencing Files
- Diffing in Git
- LabsMerges
- What is Merging?
- Merge Commands
- Rebasing
- LabsManaging Local and Remote Repositories
- Working with Others
- Cloning
- Publishing Your Project
- Fetching, Pulling and Pulling
- LabsUsing Patches
- Why Use Patches?
- Producing Patches
- Emailing
- Applying Patches
- LabsAdvanced Git Interfaces: Gerrit
- Modes of Distributed Development
- Gerrit
- Review Process
- LabsClosing and Evaluation Survey
Weitere Schulungen zu Thema Linux Foundation
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnThis course will teach you how to containerize, host, deploy, and configure an application in a multi-node cluster. It also serves as preparation for the Certified Kubernetes Application Developer (CKAD) exam. Starting with a simple Python script, this course will show you how ...
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn this course you will learn about installation of a multi-node Kubernetes cluster using kubeadm, and how to grow a cluster, choosing and implementing cluster networking, and various methods of application lifecycle management, including scaling, updates and roll-backs. The ...
- u.a. in Frankfurt am Main, Nürnberg, Heidelberg, Virtual Classroom, FreiburgLearn how to develop for the Linux kernel. In this instructor-led course you’ll learn how Linux is architected, the basic methods for developing on the kernel, and how to efficiently work with the Linux developer community. If you are interested in learning about the Linux ...
- u.a. in Berlin, Leipzig, Wien, Heidelberg, FreiburgIn this course you will learn about the history of Linux, how to install Linux, how to use the Graphical User Interface, how to control Linux using the command line, basic Linux security, and much more.