Curso Introduction to Linux Open Source Development

  • Linux & Suse

Curso Introduction to Linux Open Source Development

32 horas
Visão Geral

Curso Introduction to Linux Open Source Development O Linux está explodindo e a demanda por desenvolvedores Linux nunca foi tão forte. Este Curso Introduction to Linux Open Source Development irá apresentá-lo ao mundo do desenvolvimento do Linux e fornecerá o histórico e o treinamento necessários para começar a trabalhar com o Linux. Se você está pensando em entrar no desenvolvimento do Linux, este é o melhor lugar para começar!

Objetivo

Após realizar este Curso Introduction to Linux Open Source Development, você será capaz de:

Neste Curso Introduction to Linux Open Source Development você aprenderá sobre a história do Linux e o que o diferencia de outros sistemas operacionais semelhantes ao UNIX, quais são os principais ingredientes de um sistema Linux e como usá-los, o essencial da administração do sistema, como contas de usuários e grupos , comandos essenciais, sistemas de arquivos, segurança e muito mais, modelos de rede e encadeamento, aspectos de compilação e uso de bibliotecas, trabalho com Java no Linux e muito mais. O mercado de trabalho do Linux está aquecido e os desenvolvedores do Linux estão recebendo ofertas de empregos com salários melhores, mais flexíveis e mais gratificantes do que muitos de seus pares. Este curso irá prepará-lo para se juntar às fileiras dos desenvolvedores Linux profissionais.

Pre-Requisitos
  • Este curso é para alunos que já são usuários experientes de computador em outro sistema operacional, mas têm pouca ou nenhuma experiência de trabalho em um ambiente Linux.
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico

Introduction

  1. Objectives and Audience
  2. The Linux Foundation
  3. Linux Foundation Training
  4. Certification Programs and Digital Badging
  5. Where Does the Software Come From?
  6. Is it Difficult to Migrate to Linux?
  7. Migration Considerations
  8. Migration Aids and Documentation
  9. Scope and Coverage of System Administration
  10. Preparing Your System
  11. Procedures
  12. Things change in Linux
  13. Labs

Open Source Software

  1. What is Open Source Software?
  2. What is Proprietary (Closed Source) Software?
  3. Pragmatism vs Idealism
  4. History of Open Source Software
  5. Open Source Governance Models
  6. Labs

Why Use Open Source Software?

  1. Collaborative Development
  2. Security and Quality of Source Code
  3. Users: Flexibility
  4. Business: Collaborative Development
  5. Business: Marketing
  6. Education: El-Hi, Public Systems
  7. Education: University
  8. Developers: Greater Visibility
  9. Labs

Examples of Successful OSS Projects

  1. Linux Kernel
  2. git
  3. Apache
  4. Python, Perl and Other Computer Languages
  5. TEX and LATEX
  6. GNU: gcc, gdb, etc
  7. X and Desktop Managers
  8. OpenStack, Kubernetes, and other Projects
  9. Labs

How to Work in OSS Projects

  1. Overview on How to Contribute Properly
  2. Study and Understand the Project DNA
  3. Figure Out What Itch You Want to Scratch
  4. Identify Maintainers and Their Work Flows and Methods
  5. Get Early Input and Work in the Open
  6. Contribute Incremental Bits, Not Large Code Dumps
  7. Leave Your Ego at the Door: Don’t Be Thin-Skinned
  8. Be Patient, Develop Long Term Relationships, Be Helpful
  9. Labs

Continuous Integration

  1. Why Continuous Integration?
  2. Continuous Delivery and Continuous Deployment
  3. Cost and Benefits
  4. Tools
  5. Example: Linux Kernel Continuous Integration Project
  6. The Continuous Delivery Foundation

OSS Licensing and Legal Issues

  1. Restrictive vs Permissive Licensing
  2. FUD
  3. Software Patents
  4. Patents and Licenses
  5. Choosing a License
  6. Combining Licenses
  7. Labs

Leadership vs Control and Why Projects Fail

  1. Leadership vs Control
  2. Loosen the Chains
  3. Mentoring
  4. Building Trust
  5. Why do many OSS projects fail
  6. Labs

Respecting and Encouraging Diversity in OSS

  1. Diversity and Open Source Software
  2. Sex and Gender Identity
  3. National Origin, Geography and Language
  4. Religion and Politics
  5. Differences of Opinion
  6. Labs

GitHub and Other Hosting Providers

  1. GitHub
  2. Public vs Private
  3. GUI vs command line
  4. Labs

Linux and the Operating System

  1. Kernel vs Operating System and Tools
  2. History of Linux
  3. UNIX and Linux
  4. Linux Distributions
  5. Linux Standard Base (LSB)
  6. Labs

Graphical Environments and Interfaces

  1. Graphical Layers
  2. X Window System
  3. Window Managers
  4. Desktop Managers
  5. Terminal Window Options
  6. Labs

System Administration

  1. Installation
  2. Software Management and Packaging
  3. Upgrading and Patching
  4. User Directories, Environments, etc
  5. Logging Files
  6. Labs

Getting Help

  1. Sources of Documentation
  2. man Pages
  3. info
  4. –help and help
  5. Graphical Interfaces
  6. Labs

Text Editors

  1. Available Text Editors
  2. vi
  3. emacs
  4. Labs

Shells, bash, and the Command Line

  1. Shells
  2. Shell Initialization
  3. Aliases
  4. Environment Variables
  5. Customizing the Command Line Prompt
  6. Special Characters
  7. Redirection
  8. Pipes
  9. Command Substitution and Expressions
  10. Labs

Filesystem Layout, Partitions, Paths and Links

  1. Filesystem Layout
  2. Partitions
  3. Partitioning Considerations
  4. Paths
  5. Hard and Soft (Symbolic) Links
  6. Labs

System Initialization

  1. System Boot
  2. System Initialization
  3. Labs

Memory

  1. Memory
  2. Swap
  3. Threading Models
  4. Labs

Networking

  1. Networking and Network Interfaces
  2. Labs

Command Details

  1. Basic Commands and Utilities
  2. File Transfer Tools
  3. Monitoring and Performance Utilities
  4. Graphical Monitoring Tools
  5. Loading/Unloading Kernel Modules
  6. Device Management
  7. Managing System Services
  8. Labs

Users and Groups

  1. Basics of Users and Groups
  2. Adding and Removing Users and Groups
  3. Files, Users and Permissions
  4. root (super) user, su and sudo
  5. Labs

Linux Filesystems

  1. Filesystems and the VFS
  2. ext2, ext3, and ext4 Filesystems
  3. Journaling Filesystems
  4. btrfs
  5. Mounting Filesystems
  6. RAID
  7. LVM
  8. Labs

Essential Command Line Tools

  1. Listing, Creating, Deleting and Renaming Files and Directories
  2. Finding Files: find and locate
  3. Finding Strings: grep
  4. String Substitution: sed
  5. Labs

Bash Scripting

  1. Script Basics
  2. Conditionals
  3. Loops
  4. Functions
  5. Labs

Files and Filesystems

  1. Types of Files
  2. Permissions and Access Rights
  3. Changing Permissions and Ownership
  4. Labs

Compiling, Linking and Libraries

  1. gcc
  2. Other Compilers
  3. Major gcc Options
  4. Static Libraries
  5. Shared Libraries
  6. Linking To Libraries
  7. Debugging with gdb
  8. Labs

Java Installation and Environment**

  1. Write Once and Use Anywhere?
  2. Installing Java on Linux
  3. Handling Multiple JREs and JDKs: the alternatives System
  4. Environment Variables and Class Paths
  5. Integrated Development Environments

Building RPM and Debian Packages

  1. Why Use Package Management
  2. Packaging System Benefits
  3. Linux Distributions and Package Management
  4. RPM Creation
  5. The RPM spec File
  6. Details on RPM spec Sections
  7. RPM Dependencies
  8. Debian Package Creation Workflow
  9. Labs

Introduction to GIT

  1. Revision Control
  2. Available Revision Control Systems
  3. Graphical Interfaces
  4. Documentation
  5. Labs

Git Installation

  1. Binary Installation
  2. Installing from Source
  3. Labs

Git and Revision Control Systems

  1. Converting Between Different Systems
  2. RCS and CVS
  3. Subversion
  4. git
  5. git and Distributed Development
  6. Labs

Using Git: an Example

  1. Basic Commands
  2. A Simple Example
  3. Labs

Git Concepts and Architecture

  1. Concepts
  2. Design Features
  3. Repositories
  4. Objects and Index
  5. Content vs Pathnames
  6. Committing vs. Publishing
  7. Upstream and Downstream
  8. Forking
  9. Labs

Managing Files and the Index

  1. File Categories
  2. Basic File Commands
  3. Labs

Commits

  1. Making a Commitment
  2. Identifiers and Tags
  3. Viewing the Commit History
  4. Reverting and Resetting Commits
  5. Tidying Repositories
  6. Who is to Blame?
  7. Bisecting
  8. Labs

Branches

  1. What is a branch?
  2. Branch Names vs Tags
  3. Branch Creation
  4. Branch Checkout
  5. Getting Earlier File Versions
  6. Labs

Diffs

  1. Differencing Files
  2. Diffing in Git
  3. Labs

Merges

  1. What is Merging?
  2. Merge Commands
  3. Rebasing
  4. Labs

Managing Local and Remote Repositories

  1. Working with Others
  2. Cloning
  3. Publishing Your Project
  4. Fetching, Pulling and Pulling
  5. Labs

Using Patches

  1. Why Use Patches?
  2. Producing Patches
  3. Emailing
  4. Applying Patches
  5. Labs

Advanced Git Interfaces: Gerrit

  1. Modes of Distributed Development
  2. Gerrit
  3. Review Process
  4. Labs

Closing and Evaluation Survey

  1. Evaluation Survey
TENHO INTERESSE

Cursos Relacionados

Curso Linux Bash Shell Programming

32 horas

Curso Linux Suse SLE200 Transitioning Enterprise 15

8 Horas

Curso Enterprise Server Deployment SLE211v15

16 horas

Curso SUSE Enterprise Server 15 Administration SLE201v15

32 Horas

Curso Linux Suse Enterprise Server 15 Adm Advanced SLE301v15

32 horas

Curso Linux Suse SLES for SAP Applications HA Deployment and Configuration

24 Horas

Curso Suse Linux Protegendo Enterprise Server 12 SLE341

24 Horas