O Ciclo de Desenvolvimento do Kernel do Linux

Documentos relacionados
Controle de Versões com o Git

SOFTWARE. Disciplina: Informática Professor: Gustavo Sabry

Curso de git. Aula de outubro de 2018

Sistemas Operacionais II. Linux - Introdução

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Distribuições Linux. Rafael Guterres Jeffman. Faculdade Senac Porto Alegre Tchelinux

Aula 01 Introdução ao S.O. Linux

Instalação e Configuração de Servidores Linux Server. Prof. Alex Furtunato

Gerenciamento de configuração e mudança

Controlo de versões com GIT

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Mini Curso Gerenciamento de Configuração e Mudança com GIT + Eclipse. Jadson Santos Amador Pahim

@georgeguimaraes. Integração Discreta. melhorando a Integração Contínua e ganhando em colaboração

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Histórico e conceitos básicos. GSO I Gestão de Sistemas Operacionais

GIT Controlo de versões

Git e Pais

Desenvolvimento de so-ware com Git. Leonardo Gresta Paulino Murta

Versionamento Ágil com Git

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

Introdução ao Linux. Thiago Yukio Kikuchi Oliveira

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

José cria um repositório vazio no Bitbucket ( José cria no seu computador de desenvolvimento um repositório local

Breve Introdução aos Sistemas Operativos. Disciplina de Informática PEUS, U.Porto

Prof. Esp. Fabiano Taguchi SOFTWARES

Como contribuir com projetos de software livre

Entre os VCS s, podemos sitar o Mercurial, Subversion, CVS, Git dentre outros. E é do Git que vamos falar hoje.

Administração de Sistemas Operacionais

DevOps na Zendesk DEVOPS LEAD SENIOR DEVELOPER OPERATIONS ENGINEER

Ruby on Rails Avançado

CVS Concurrent Versions System

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Sistema Operacional. Disciplina: Softwares, Aplicativos e Sistema Operacional. Professor: Thiago Silva Prates

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

Introdução aos Sistemas Abertos

TUTORIAL GIT Victor Breder Comp-19 Março de 2017

Fundamentos de Sistemas Operacionais

Introdução à Computação MAC0110

Elgg - Participatório. Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR c3participa@c3sl.ufpr.br

Projeto Micro Livre do Ministério da Educação. Avaliação da Distribuição Linux para as Estações de Trabalho

SO Conceitos Básicos. Gerência. Objetivos do SO 07/05/2011. Qual sistema operacional escolher? Qual sistema operacional escolher?

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

Novidades no OpenBSD 4.3

Introdução ao Controle de Versões. Leonardo Murta

Conhecendo o NetBSD. Alan Silva <jumpi@netbsd.com.br> NetBSD-BR

PIRATAS DO VALE DO SILÍCIO. Prof. André Aparecido da Silva

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Versionamento de Código. Núcleo de Desenvolvimento de Software

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Informática I. Aula Aula 19-20/06/06 1

Utilizando o GitHub para projetos Colaborativos

Estruturas de Sistemas Operacionais

Universidade Federal de Santa Maria Centro de Tecnologia Programa de Educação Tutorial - Sistemas de Informação TUTORIAL

Sistema Informático da ESTiG/IPB. Rui Pedro Lopes

Introdução aos Sistemas Operacionais. Ricardo Ramos de Oliveira

Engenharia de Software e Software Livre

Sistemas de Informação (SI) Infraestrutra de Tecnologia da Informação (TI): Software

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux

Introdução ao Sistema Linux

Administração de Redes Distribuições Linux

Proposta Comercial. Produto: Servidores Dedicados

GNU/Linux - Distribuições Principais

Introdução ao GitHub Peter Bell e Brent Beer

Transcrição:

O Ciclo de Desenvolvimento do Kernel do Linux Gustavo Padovan Open First

Agenda O que é o Linux? Estatísticas de Desenvolvimento História Ciclos de Desenvolvimento Hierarquia de Mantenedores Árvore estáveis e de desenvolvimento Linux-next Revisão de Código Como contribuir para o Kernel? 2

O que é o Linux? Linux é o Linux Kernel Sistema Operacional UNIX Criado em 1991 por Linus Torvalds Suporta ~30 aquiteturas Licenciado em GPLv2 Maior Projeto de Software Livre do Mundo 3

Usos 4

Estatísticas versão do kernel número de commits v4.7* 12.073 v4.6 13.258 v4.5 12.080 v4.4 13.071 v4.3 12.274 v4.2 13.694 v4.1 11.916 v4.0 10.346 ~200 commits/dia ou 1 commit a cada 7 minutos Recorde de 13722 commits na v3.15 * v4.7 ainda não foi lançada 5

Estatísticas versão do kernel desenvolvedores v4.7* 1556 v4.6 1679 v4.5 1538 v4.4 1576 v4.3 1625 v4.2 1591 v4.1 1539 v4.0 1458 Média de 8 contribuições por desenvolvedor Recorde de 1679 desenvolvedores na v4.6 * v4.7 ainda não foi lançada 6

Estatísticas # organização commits v4.6 1 Intel 2009 (15.0%) 2 (unknown) 1358 (10.2%) 3 Red Hat 1043 (7.8%) 4 (None) 647 (4.8%) 5 Linaro 588 (4.4%) 6 Outreachy 413 (3.1%) 7 Samsung 390 (2.9%) 8 SUSE 364 (2.7%) ~200 organizações por versão 7

Ciclo de Desenvolvimento pré v2.6 Versão 1.0 em 1994 Versão 2.0 em 1996 Versão 2.2 em 1999 Versão 2.4 em 2001 Versão 2.6 em 2003 8

Ciclo de Desenvolvimento pré v2.6 Até o lançamento v2.6 ciclo de ~2 anos Branch estável Somente bug fix Sem hardware e funcionalidades novas Branch de desenvolvimento v2.1.x, v2.3.x, v2.5.x 9

Ciclo de Desenvolvimento pré v2.6 Problemas: Ciclo muito longo Gerenciamento complicado e confuso Backport de funcionalidades para o v2.4 Introdução de bugs 10

Ciclo de Desenvolvimento v2.6..hoje Ciclos curtos de menos de 3 meses Release early, release often Mais testes, mais estável Novas features chegam mais rápido 11

Ciclo de Desenvolvimento v2.6..hoje 2 semanas de merge window Inclusão de novas funcionalidades 6-8 semanas de estabilização Lançamento de uma versão marca o início da próxima merge window 3.0 e 4.0 não são versões especias 12

Ciclo de Desenvolvimento v2.6..hoje v4.5 4.6 merge window 4.7 merge rc1 rc2 rc3 rc4 rc5 rc6 rc7 v4.6 window rc1 rc2 novas features novas features 13

Hierarquia de Mantenedores Mantenedores para cada subsistema Cada subsistema tem submantenedores Árvore pra cada subsistema Enviam contribuições para cima Linus Torvalds no topo da hierarquia 14

Hierarquia de Mantenedores mainline net dri... bluetooth netfilter i915 nouveau 15

Novas features Incorporado a cada merge window branch -next (próxima versão) Acontece durante todo o ciclo 16

Ciclo de Desenvolvimento - -next v4.5 4.6 merge window 4.7 merge rc1 rc2 rc3 rc4 rc5 rc6 rc7 v4.6 window rc1 rc2 net-next bluetooth-next pull request 17

Versão Estável Cada versão tem um branch estável Somente patches que estão no mainline Mantido por Greg KH Uma versão longterm (LTS) por ano LTS são mantidas por 2 anos Usadas pra desenvolvimento de produtos 18

Ciclo de Desenvolvimento - stable v4.5.0 v4.5.1 v4.5.2 v4.5.3 v4.5.4 v4.5.5 v4.5.6 v4.5.7 4.6 merge 4.7 merge v4.5 rc1 rc2 rc3 rc4 rc5 rc6 rc7 v4.6 window window rc1 rc2 net-next bluetooth-next 19

Revisão de Código - tags Signed-off-by: autores e mantenedores Reviewed-by: Acked-by: Tested-by: Reported-by: Suggested-by: 20

tags commit 2d75c88fefb228aedfb135228acb6620db8f0e40 Author: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Date: Tue Apr 26 12:32:28 2016-0300 staging/android: refactor SYNC IOCTLs Change SYNC_IOC_FILE_INFO (former SYNC_IOC_FENCE_INFO) behaviour to avoid future API breaks and optimize buffer allocation. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Acked-by: Greg Hackmann <ghackmann@google.com> Acked-by: Rob Clark <robdclark@gmail.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 21

git Nenhum VCS era bom o suficiente Bitkeeper era ineficiente e proprietário Em 2005 o Linus Torvalds criou o git Distribuído, Eficiente e a Prova de falhas Revolucionou a colaboração de software 22

linux-next Faz merge diário das árvores -next Criada em 2008 por Stephen Rothwell Indentifica problemas antes do mainline merge conflict compiler error/warning Base de teste e desenvolvimento Código mais estável na merge window 23

Como contribuir para o Kernel? Não sei por onde começar!? Leia o código/documentação Procure bugs que afetam a sua máquina Assine as listas de e-mail (LKML e outras) #kernelnewbies on irc.oftc.net 24

Submetendo Patches RTFM! Documentation/SubmittingPatches Descubra quem são os mantenedores scripts/get_maintainer.pl git format-patch & git send-email 25

Obrigado! Gustavo Padovan gustavo@padovan.org www.collabora.com