Em Thu, Jan 03, 2002 at 04:41:27PM -0300, Alexandre Ferreira escreveu:

> Estou estudando sobre a suite TCP/IP e dentre outros materiais que estou
> estudando o livro "Interliga��o em rede com TCP/IP" do Douglas E.
> Comer/David L Stevens.
 
> N�o ofi dif�cil entender o funcionamento do protocolo ARP com as
> explica��es de tal obra, no qual aborda o S.O Xinu e as estruturas com a
> programa��o do protocolo ou n�o senti dificuldade, pois j� programa em C
> h� algum tempo. Dito isso, queria saber se algu�m pode falar algo sobre a
> linguagem usada no protocolo ARP do kernel 2.4.17 do Linux que acabei de
> baixar do kernel.org, pois eu n�o entendi NADA !!! parece que o fonte foi

a linguagem utilizada � C com extens�es do gcc, mais notadamente
inicializa��o de structs com membros nomeados, que � algo bastante
interessante pois facilita a compreens�o e evita que a adi��o de um membro
�s structs cause problemas na inicializa��o de todas as inst�ncias desta
struct.

Note tamb�m que o objetivo do Comer com o Xinu � educacional, como o
Tanembaum com o Minix, e o objetivo do Linux � _performance_, nem que isto
torne o c�digo obscuro.

> escrito em uma variante do C que nunca vi, pois a struct parece mais um
> class ?!?! vjea o arquivo "/usr/src/linux/net/ipv4/arp.c" e o que eh pior
> n�o possui NENHUM coment�rio.

Normal, no Linux documenta��o � c�digo fonte, existe um esfor�o para
documentar as func�es mas as pilhas de rede geralmente n�o tem
documenta��o. Vide Documentation/kernel-doc-nano-HOWTO.txt em sua �rvore
dos fontes do kernel (pelo que vi voc� ainda usa /usr/src/linux 8) ).
 
> Algu�m est� estudando est� suite de protocolos e poderia/queria trocar
> infor ou simplesmente indicaria material explicativo das sintaxes que s�o
> utilizadas nesses arquivos ????

Neste momento estou alterando todos os protocolos de rede do Linux para que
usem um slabcache por protocolo nos protocolos mais importantes (TCP/IP v4
e v6) e alterando os demais para que usem o campo sock->protinfo como um
void pointer e n�o como uma union 'gorda', o que causa uma diminui��o
sens�vel no uso de mem�ria n�o 'swap�vel' e uma melhora na performance da
cria��o de sockets, o que melhorar� de forma n�o desprez�vel a performance
e uso de mem�ria em servidores carregados e tamb�m ser� ben�fico mesmo em
esta��es de trabalho.

Quanto �s extens�es do GCC para a linguagem C, execute:

pinfo gcc

procure por 'C extensions', depois 'Labeled elements'.

Para discuss�o de temas relacionados a desenvolvimento do kernel Linux
recomendo visitar o canal #kernelnewbies no servidor IRC
irc.openprojects.net. Vide tamb�m:

http://kernelnewbies.org
http://kerneljanitor.org

- Arnaldo

Assinantes em 04/01/2002: 2285
Mensagens recebidas desde 07/01/1999: 148792
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a