Dança Contemporânea na arte da dança primeira parte
Programação para Kernel Linux - Parte 2
1. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Programa¸˜o para o Kernel Linux (Parte 2)
ca
Ivo Augusto Andrade Rocha Calado
Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas
ca e
8 de Dezembro de 2011
1 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
2. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Agenda I
1 Os protocolos TCP e DCCP
TCP
DCCP
Implementa¸˜es no Kernel
co
2 Implementa¸˜o dos CCIDs
ca
CCID-2
CCID-3 e CCID-4
CCID-249
3 Atividades
Adicionando um Novo CCID
Adicionando uma nova Sysctl
Logando os pacotes enviados
2 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
3. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Observa¸˜o sobre este material
ca
Este material ´ derivado de diversos trabalhos livremente
e
dispon´
ıveis na Internet
3 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
4. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
TCP
TCP: O que ´?
e
Protocolo de transporte mais difundido no mundo
Provˆ comunica¸˜o unicast
e ca
Efetua controle de congestionamento e de fluxo
Protocolo confi´vel: os dados perdidos na rede s˜o
a a
retransmitidos
4 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
5. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
TCP
TCP: Controles de congestionamento
Possui diversas varia¸˜es do mecanismo de controle de
co
congestionamento
Utiliza duas fases: partida lenta e preven¸˜o de
ca
congestionamento
A vers˜o mais conhecida ´ o Reno que implementa o AIMD
a e
Por´m, existem diversas outras variantes como: Tcp Cubic,
e
Bic, NewReno, Vegas, Compound, WestWood, Africa, etc
No linux o algoritmo padr˜o ´ o Cubic enquanto que no
a e
Windows Vista ´ o Compound
e
A sele¸˜o algoritmo default de CC ´ realizada ou na
ca e
configura¸˜o do kernel ou via sysctl, por´m o valor ´ v´lido
ca e e a
em n´ de protocolo (todos os sockets s˜o afetados)
ıvel a
5 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
6. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
DCCP
DCCP: O que ´?
e
Protocolo de transporte
Provˆ comunica¸˜o unicast
e ca
Controle de congestionamento e entrega n˜o confi´vel
a a
Possui como principal foco aplica¸˜es multim´
co ıdia
6 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
7. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
DCCP
DCCP: Controles de congestionamento
Oferece uma estrutura componentiz´vel para gerˆncia de
a e
mecanismos de controle de congestionamento
Possibilita que novos algoritmos sejam “plugados” no formato
de CCIDs
A sele¸˜o do algoritmo de CC se d´ ou via sysctl (todos os
ca a
sockets s˜o afetados) ou por socket (apenas a transmiss˜o ´
a a e
afetada)
Uma transmiss˜o ´ composta por duas “half-connections”
a e
7 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
8. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
DCCP
CCIDs: 2, 3, 4, 249
Atualmente encontram-se padronizados 3 mecanismos de controle
de congestionamento no DCCP e um experimental
CCID-2 (RFC4341): baseado em janela, esquema AIMD
(Additive Increase Multiplicative Decrease) e confirma¸˜o
ca
seletiva (Ack Vectors). Uso: jogos online
CCID-3 (RFC4342): baseado na equa¸˜o TFRC, evita
ca
mudan¸as abruptas na taxa de transmiss˜o (diminui¸˜o
c a ca
suave). Uso: fluxo de v´ ıdeo
CCID-4 (RFC5622): variante do TFRC voltado para
aplica¸˜es que podem adaptar o fluxo a partir da altera¸˜o do
co ca
tamanho do pacote enviado. Uso: VoIP
CCID-249 (Dccp Cubic): algoritmo baseado no TCP Cubic,
voltado para redes de alta velocidade
8 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
9. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
As implementa¸˜es no Kernel
co
Apresentam arquiteturas bastante diferentes
TCP considera que todos os algoritmos de CC s˜o compostos
a
dos estados partida lenta e preven¸˜o de
ca
congestionamento
DCCP apresenta uma interface mais gen´rica e, portanto,
e
mais flex´ para o mecanismo de controle de
ıvel
congestionamento
Para o registro do protocolo no sistema operacional ambos os
protocolos devem criar um instˆncia das structs proto,
a
net protocol, inet protosw e pernet operations e
registr´-las no SO
a
9 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
10. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Implementa¸˜o do TCP
ca
Definido em linux/net/ipv4
Apresenta tanto os componentes gen´ricos quanto as
e
implementa¸˜es dos algoritmos de CC
co
Cada algoritmo de CC, ` exce¸˜o do Reno, ´ implementado
a ca e
como um m´dulo
o
Estrutura de um algoritmo ´ definida em include/net/tcp.h
e
10 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
11. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Implementa¸˜o do TCP
ca
struct list head l i s t ;
unsigned long f l a g s ;
v o i d (∗ i n i t ) ( s t r u c t sock ∗ sk ) ;
v o i d (∗ r e l e a s e ) ( s t r u c t sock ∗ sk ) ;
u32 ( ∗ s s t h r e s h ) ( s t r u c t s o c k ∗ s k ) ;
u32 ( ∗ min cwnd ) ( c o n s t s t r u c t s o c k ∗ s k ) ;
v o i d ( ∗ c o n g a v o i d ) ( s t r u c t s o c k ∗ sk , u32 ack , u32
in flight );
v o i d ( ∗ s e t s t a t e ) ( s t r u c t s o c k ∗ sk , u8 n e w s t a t e ) ;
v o i d ( ∗ c w n d e v e n t ) ( s t r u c t s o c k ∗ sk , enum t c p c a e v e n t
ev ) ;
u32 ( ∗ undo cwnd ) ( s t r u c t s o c k ∗ s k ) ;
v o i d ( ∗ p k t s a c k e d ) ( s t r u c t s o c k ∗ sk , u32 num acked , s 3 2
rtt us ) ;
v o i d ( ∗ g e t i n f o ) ( s t r u c t s o c k ∗ sk , u32 e x t , s t r u c t
s k b u f f ∗ skb ) ;
11 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
12. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Implementa¸˜o do TCP
ca
Como pode-se ver, a implementa¸˜o do algoritmo de CC no TCP ´
ca e
fortemente ligada a
Mudan¸a de estados da conex˜o
c a
Recebimento de pacote de confirma¸˜o
ca
Limiar de partida lenta
12 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
13. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Implementa¸˜o do DCCP
ca
Definido em linux/net/dccp
Apresenta uma estrutura bem definida sobre o que ´ o n´cleo
e u
do protocolo e o que ´ algoritmo de controle de
e
congestionamento
Apesar de n˜o ser implementado como m´dulo, a estrutura do
a o
controle de congestionamento ´ componentiz´vel
e a
13 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
14. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Opera¸oes de um CCID
c˜
struct ccid operations {
v o i d ( ∗ c c i d h c r x p a c k e t r e c v ) ( s t r u c t s o c k ∗ sk ,
s t r u c t s k b u f f ∗ skb ) ;
v o i d ( ∗ c c i d h c t x p a c k e t r e c v ) ( s t r u c t s o c k ∗ sk ,
s t r u c t s k b u f f ∗ skb ) ;
i n t ( ∗ c c i d h c t x s e n d p a c k e t ) ( s t r u c t s o c k ∗ sk ,
s t r u c t s k b u f f ∗ skb ) ;
v o i d ( ∗ c c i d h c t x p a c k e t s e n t ) ( s t r u c t s o c k ∗ sk ,
unsigned i n t len ) ;
// O u t r a s f u n c o e s e
¸˜
};
14 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
15. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Implementa¸˜es no Kernel
co
Um pouco mais sobre a implementa¸˜o dos CCIDs
ca
Os CCIDs s˜o livres para implementar as funcionalidades que
a
desejarem
Antes de fazer a chamada a alguma das a¸˜es do CCID, o
co
n´cleo DCCP verifica se tal fun¸˜o ´, de fato, implementada e
u ca e
caso n˜o seja descarta a chamada
a
15 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
16. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
CCID-2
Funcionamento
Cria uma estrutura em lista que armazena os ultimos Acks
´
recebidos (n˜o faz uso de Ack acumulativo!)
a
Porque uma abordagem utilizando Ack acumulativo n˜o ´ poss´
a e ıvel
no DCCP?
16 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
17. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
CCID-2
Funcionamento
Cria uma estrutura em lista que armazena os ultimos Acks
´
recebidos (n˜o faz uso de Ack acumulativo!)
a
Porque uma abordagem utilizando Ack acumulativo n˜o ´ poss´
a e ıvel
no DCCP?
Por que o protocolo DCCP ´ n˜o confi´vel!!
e a a
Os hosts trocam os vetores de confirma¸˜o (enviado
ca
juntamente com o pacote de dados)
16 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
18. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
CCID-3 e CCID-4
CCID-3
Utiliza uma equa¸˜o para fazer o c´lculo da taxa de envio
ca a
Mais complexo que o CCID-2 pois necessita sincronizar o
tempo de envio ao inv´s de ser Ack-Clocked
e
Utiliza o conceito de intervalo de perda (1 RTT) onde em um
intervalo todas as perdas s˜o consideradas como apenas uma
a
Apresenta tanto um crescimento quanto uma queda na taxa
de envio mais suave
Define um tamanho fixo de pacotes (1500 bytes) e em caso de
diminui¸˜o da taxa de envio altera o n´mero de pacotes
ca u
enviados
17 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
19. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
CCID-3 e CCID-4
CCID-3 e CCID-4
Varia¸˜o do CCID-3 onde, ao inv´s de variar o n´mero de
ca e u
pacotes enviados varia o tamanho dos pacotes
Possui taxa de transmiss˜o limitada a 1,5 Mbps
a
CCID-4 ainda n˜o dispon´ na ´rvore principal do Kernel
a ıvel a
18 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
20. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
CCID-249
Funcionamento
Implementa uma mistura entre TCP Cubic e CCID-2
“Rouba” o mecanismo de confirma¸˜o seletiva via Ack
ca
Vectors do CCID-2
Utiliza a fun¸˜o de c´lculo de janela do Tcp Cubic
ca a
Consegue obter maior vaz˜o que os outros CCIDs
a
Disponibiliza¸˜o
ca
N˜o dispon´ na ´rvore principal do Kernel, sendo
a ıvel a
disponibilizado apenas na ´rvore git mantida por Gerrit
a
Renker (principal mantenedor do Dccp)
19 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
21. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
Adicionando um Novo CCID
Agora vamos criar um novo CCID
Este CCID ir´ simular o protocolo UDP, ou seja, sem controle
a
algum de taxa de envio
Para isso, vamos escolher o n´mero 248 para ser o CCID (na
u
´rvore oficial o Dccp Cubic ainda n˜o existe!)
a a
20 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
22. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
1a etapa: Definir a constante para o CCID
Abrir o arquivo include/linux/dccp.h
Buscar o enum onde est´ definido DCCPC CCID3
a
Adicionar uma nova constante
DCCPC CCID248 = 2 4 8 ,
21 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
23. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
2a etapa: Implementar o algoritmo
Criar um novo arquivo chamado ccid248.c em
linux/net/dccp/ccids item Adicionar a seguinte
implementa¸˜o
ca
#i n c l u d e " ../ ccid .h"
struct ccid operations ccid248 ops = {
. c c i d i d = DCCPC CCID248 ,
. c c i d n a m e = " UDP - like "
};
22 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
24. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
3a etapa: Adicionar o CCID ` lista de CCIDs dispon´
a ıveis
Abrir o arquivo linux/net/dccp/ccid.c
No vetor ccid operations adicionar a seguinte linha no final
#i f d e f CONFIG IP DCCP CCID248
&c c i d 2 4 8 o p s ,
#e n d i f
23 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
25. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
4a etapa: Adicionar a constante de CCID a lista de CCIDs
que podem ser negociados
Abrir o arquivo linux/net/dccp/feat.c
Localizar a fun¸˜o dccp feat is valid sp val
ca
Alterar o op¸˜o DCCPF CCID para que fique da seguinte
ca
forma
c a s e DCCPF CCID :
r e t u r n v a l == DCCPC CCID2 | | v a l == DCCPC CCID3 | |
v a l == DCCPC CCID248 ;
24 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
26. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
5a etapa: Adicionar as dependˆncias de negocia¸˜o
e ca
Ainda no arquivo linux/net/dccp/feat.c
Localize a fun¸˜o dccp feat ccid deps
ca
Adicione antes do switch final o seguinte bloco
s t a t i c const struct ccid dependency
ccid248 dependencies [ 2 ] [ 2 ] = {
{{ 0 , 0 , 0 , 0 } } , {{ 0 , 0 , 0 , 0 }}
};
Adicionar ao switch final a seguinte linha
c a s e DCCPC CCID248 : r e t u r n c c i d 2 4 8 d e p e n d e n c i e s [
is local ];
25 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
27. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
6a etapa: Declarar opera¸oes do novo CCID em ccid.h
c˜
Abra o arquivo linux/net/dccp/ccid.h
Localize o seguinte trecho
#i f d e f CONFIG IP DCCP CCID3
extern struct ccid operations ccid3 ops ;
#e n d i f
Ap´s ele, adicione o seguinte trecho
o
#i f d e f CONFIG IP DCCP CCID248
extern struct ccid operations ccid248 ops ;
#e n d i f
26 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
28. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
7a etapa: Adicionar ao menu de configura¸˜es o novo
co
CCID
Abrir arquivo linux/net/dccp/ccids/Kconfig
Adicione ao final da se¸˜o menu o seguinte trecho
ca
c o n f i g IP DCCP CCID248
b o o l " CCID -248 (UDP - like ) novo CCID "
def bool n
−−−h e l p −−−
Aqui v a i a d e s c r i ¸ ˜ o do novo CCID .
ca
27 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
29. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
8a etapa: Adicionar o novo CCID ` compila¸˜o
a ca
Abrir o arquivo linux/net/dccp/ccids/Makefile
Ap´s a defini¸˜o do CCID-3, adicionar o seguinte trecho
o ca
dccp−y += c c i d s / c c i d 2 4 8 . o
28 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
30. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
Testando
Habilitar o novo CCID no menuconfig durante a configura¸˜o
ca
do kernel
Compilar o Kernel e instalar
Reiniciar a m´quina virtual
a
Instalar o iperf com suporte a DCCP (http:
//139.133.210.30/~gerrit/dccp/apps/iperf/zip/
iperf-2.0.2_DCCP-patched-CBR-continuous.tar.bz2)
29 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
31. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando um Novo CCID
Testando
Executar a sysctl para alterar o CCID padr˜o
a
s y s c t l −w n e t . dccp . d e f a u l t . t x c c i d =248
s y s c t l −w n e t . dccp . d e f a u l t . r x c c i d =248
Iniciar o lado servidor do iperf
i p e r f −d −s − i 1
Iniciar o lado cliente do iperf
i p e r f −d −c 1 2 7 . 0 . 0 . 1 − i 1
30 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
32. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando uma nova Sysctl
Adicionando uma nova Sysctl
sysctl ´ uma abordagem utilizada pelo SO para uma
e
comunica¸˜o entre o espa¸o de usu´rio e o espa¸o de n´cleo
ca c a c u
Realizado a partir de entradas em /proc
O protocolo pode disponibilizar tanto a leitura quanto a
altera¸˜o de algumas vari´veis
ca a
A altera¸˜o do valor ´ realizado tanto via arquivo virtual em
ca e
/proc quanto via chamada de sistema syscall
31 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
33. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando uma nova Sysctl
1a etapa: Definir a vari´vel a ser exportada
a
Vamos considerar o compartilhamente de uma vari´vel inteira
a
chamada “value1”
Abrir o arquivo linux/net/dccp/proto.c
Declarar uma vari´vel inteira chamada “value”
a
int sysctl dccp value read mostly = 5;
Exportar a vari´vel em linux/net/dccp/dccp.h
a
extern int sysctl dccp value ;
32 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
34. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando uma nova Sysctl
2a etapa: Adicionar uma entrada em ctl table
Abrir arquivo linux/net/dccp/sysctl.c
Localizar array dccp default table
Adicionar o seguinte trecho ao final do array
{
. procname = " value " ,
. d a t a = &s y s c t l d c c p v a l u e ,
. maxlen = s i z e o f ( s y s c t l d c c p v a l u e ) ,
. mode = 0 6 4 4 ,
. proc handler = proc dointvec minmax ,
. e x t r a 1 = &z e r o ,
},
33 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
35. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Adicionando uma nova Sysctl
Testando
Ap´s salvar tudo e recompilar o Kernel, realizar a seguinte
o
opera¸˜o
ca
c a t / p r o c / s y s / n e t / dccp / d e f a u l t / v a l u e
Ao realizar essa opera¸˜o deve ser impresso na tela o valor 5
ca
Um segundo teste a ser realizado ´ a tentativa de alterar o
e
valor da vari´vel
a
s y s c t l −w n e t . dccp . d e f a u l t . v a l u e =10
34 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
36. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Logando os pacotes enviados
Logando os pacotes enviados
Nesta atividade o aluno ir´ modificar o CCID rec´m criado
a e
para que toda vez que um pacote seja recebido ser´ realizado
a
um log do pacote
Deste modo, o aluno deve implementar a fun¸˜o correta que
ca
registre o recebimento de pacotes no lado receptor
Dica...
Analisar fun¸˜o ccid hc tx packet sent
ca
Tempo da atividade: 10 - 15 minutos
35 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
37. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Logando os pacotes enviados
Bibliografia I
Jeremy Andrews.
Linux: Documenting how patches reach the kernel.
http://kerneltrap.org/node/3180, Maio 2004.
The Git Community Book.
The git community book.
http://book.git-scm.com/index.html, Outubro 2011.
Ariejan de Vroom.
How to create and apply a patch with git.
http://ariejan.net/2009/10/26/
how-to-create-and-apply-a-patch-with-git/, Outubro
2009.
36 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca
38. Os protocolos TCP e DCCP Implementa¸˜o dos CCIDs
ca Atividades
Logando os pacotes enviados
Bibliografia II
Wikipedia Foudation.
Sco-linux controversies.
http:
//en.wikipedia.org/wiki/SCO-Linux_controversies,
Outubro 2011.
37 / 37 Ivo Calado IFAL
Programa¸˜o para o Kernel Linux (Parte 2)
ca