mar/100
Programa de debates/oficinas para 2010/01
Encontro 01 (12/03)
- Filosofias FLOSS (Free/Libre/Open Source Software)
- Licenças FLOSS
- Cultura Hacker
Encontro 02 (26/03)
- O que é e como colaborar em um projeto FLOSS?
- O que ganho?
- O que posso fazer?
- Como participo?
- Quais as tecnologias devo aprender?
- O que mais tenho que saber/fazer?
- BASH Scripting e Comandos Básicos UNIX
Encontro 03
- Controle de Versão/Repositórios de Código-Fonte
- GIT
- Subversion
- ...
Encontro 04
Que tal uma hack session em algum projeto?!
- Editores/IDEs
- Emacs
- Vim
- Anjuta
- ...
- Linguagens de Programação
- Python
- Ruby
- Pure Data
- Processing
- Perl
- ...
- Kernel Linux
Em paralelo, escolher um projeto FLOSS e começar a contribuir, seja com documentação/tradução, desenvolvimento, envio/correção de bugs, etc.
Projetos
- Treinamento... socialização do conhecimento
- Socialização externa do conhecimento (Oficinas com crianças da Casa Brasil)
Referências
Cultura Hacker
- The Jargon File, by ESR
- Esclarece o estilo de vida e as peculiaridades do modo de vida hacker
- How To Become A Hacker, by ESR (TRADUÇÃO EM PORTUGUÊS)
- "Tutorial" para quem deseja seguir o estilo de vida
- The Cathedral and the Bazaar, by ESR (TRADUÇÃO EM PORTUGUÊS)
- Analisa as formas de desenvolvimento fechada (catedral) e aberta (bazar)
- Hackers: Heroes of the Computer Revolution, by Steven Levy
- Conta a história da evolução da computação do ponto de vista hacker
- Structure and Interpretation of Computer Programs (SICP), by Abelson and Sussman
- Conhecido como SICP (siquipi), aborda a computação utilizando Lisp (Scheme). Para quem realmente quer compreender a Ciência da Computação.
- Gödel, Escher, Bach, by Douglas Hofstadter
- The Art of Computer Programming (TAOCP), by Donald Knuth
- The Mythical Man-Month, by Brooks
- The C Programming Language (K&R), by Kernighan and Ritchie
- The Hitchhiker's Guide to the Galaxy, by Douglas Adams
- Hackers & Painters, by Paul Graham
Licenças FLOSS
- Comunicação digital e a construção dos commons - G. Gindre, J. Brandt, K. Werbach, S. Amadeu da Silveira, Y. Benkler
- Software Livre - a luta pela liberdade do conhecimnto - S. Amadeu da Silveira
- Free Culture, by Lawrence Lessig (TRADUÇÃO EM PORTUGUÊS)
- Livro do criador do movimento Creative Commons
- Free Software, Free Society: Select Essays of Richard M. Stallman, by RMS
- Coletânea de ensaios do criador do projeto GNU e da FSF
- Futuros Imaginários, by Richard Barbrook
- Comparativo de licenças FLOSS... http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses
- Sobre a retaliação às patentes de software... http://en.wikipedia.org/wiki/Patent_retaliation
- Sobre DRM... http://en.wikipedia.org/wiki/Digital_rights_management
- Críticas à CC... http://en.wikipedia.org/wiki/Creative_Commons#General_Criticism
Vídeos/Documentários
- Creative Commons - Seja Criativo
- Curta explicando a Creative Commons
- Creative Commons - Reticulum Rex
- Curta introduzindo a cultura remix criada a partir do movimento Creative Commons
- Good Copy, Bad Copy
- Longa, documentário, mostrando opiniões de ícones das indústrias da Big Media, do movimento CC, artistas como Girl Talk e movimentos marginais como o Tecno Brega do Pará/Brasil e Nollywood da Nigéria
- Pirates of Silicon Valley
- Longa, filme, mostrando a evolução da informática, a guerra entre Apple/Microsoft, a criação do PC, de Smalltalk, da cultura Hacker e afins
set/090
Organizado originalmente pelo Projeto Software Livre SC e, a partir de 2009, pela Associação Cultural Alquimídia, GeNESS e INE (Laboratório de Inovação e Centro de Informática e Estatística da Universidade Federal de Santa Catarina) com apoio da ASL.Org (Associação Software Livre.Org, ONG mantenedora do FISL, Fórum Internacional Software Livre) a proposta do SoLiSC, 4º Congresso Catarinense de Software Livre, é ser um evento construído pela Comunidade de Software Livre de Santa Catarina para divulgar, debater e fomentar todas as questões que envolvem o desenvolvimento, o uso e os negócios de Software Livre no Estado.
O evento aconteceu por três vezes em Santa Catarina, sendo duas em Joinville e uma em Florianópolis. Nessas edições contou com um público de 900 pessoas em média e um feedback muito positivo da Comunidade de Software Livre (estudantes, usuários, desenvolvedores, profissionais, empresários, governo, simpatizantes ou apenas curiosos) através de mini-cursos, debates e palestras.
A última edição do SoLiSC foi em 2005, quando houve uma rearticulação das parcerias. A partir de 2009, agora em sua 4a. edição e com nova composição da Equipe de Organização, o evento passará a acontecer anualmente.
Nota:
- Estamos fechando uma Van (15 lugares) para ir ao evento
- Integrantes do Colméia estarão envolvidos na organização do Atelier Livre, que será um festival de Software e Hardware Livre, Metareciclagem, Robótica e Arte digital.
ago/091
Rede sem fio (WiFi) para alunos da UDESC
A UDESC começa a disponibilizar acesso a "malha de redes sem fio" (aprenda mais sobre WLAN na Wikipédia) no CCT, em Joinville. A rede é uma iniciativa do CINF (Coordenadoria de Informática), do DCC (Departamento de Ciência da Computação) e do Colméia (Grupo de pesquisa em Software Livre), e já estava em testes desde meados de 2009.
A rede sem fio atualmente cobre o bloco F (todos andares) e o bloco K (andar superior) através de três pontos de acesso, espalhados pelos andares do bloco F. A rede é fechada, ou seja, é necessário possuir usuário na UDESC Joinville (geralmente no formato dcc6abcd) com permissão de acesso a rede sem fio.
Requisitando acesso
O acesso a rede sem fio da UDESC é isento de qualquer tarifa e acessível a todos alunos do CCT. Para requisitar acesso, siga os seguintes passos:
- Acesse www.joinville.udesc.br, e vá em "CINF - Suporte", e depois em "Serviços" (ou clique direto aqui).
- Faça download do "Cadastro de E-mail" e preencha-o (o seu usuário do e-mail da UDESC será seu acesso a rede). Se você já tem e-mail na UDESC (como dcc6abcd@joinville.udesc.br), ignore este passo.
- Faça download do "Termo de Responsabilidade para Liberação de Acesso a Malha de Rede sem Fio" e preencha-o.
- Neste formulário do termo de responsabilidade, você precisará informar o MAC Address (endereço físico) da sua placa de rede sem fio. Leia este tutorial (em inglês) para auxiliar a descobrir o MAC Address em seu sistema operacional.
- Entregue o(s) documento(s) preenchidos na sala F309 (CINF - Suporte). Seu acesso deverá ser liberado em até uma semana, e você receberá os dados de acesso em seu e-mail.
Lembramos que a rede sem fio tem caráter acadêmico, ou seja, deve ser utilizada somente para auxiliar em atividades diretamente relacionadas a UDESC. Para maiores informações, leia a Instrução Normativa Nº 002/2008.
Acessando a rede sem fio
De posse dos seus dados de acesso, em seu notebook/netbook/smartphone, procure pela rede "dcc-alunos". Ao acessar a rede, será requisitado seu usuário e senha. Em breve, será requisitada a aceitação de um certificado de segurança digital, essencial para realizar o acesso a rede. Após a confirmação, dentro de alguns segundos, você deverá ter acesso liberado a rede!
Se enfrentar alguma dificuldade e utiliza Windows, acesse o FAQ do CINF e leia o documento "Configuração da WiFi no Windows XP", ou entre em contato com o suporte na sala F309. Se você utiliza o sistema operacional Linux, e está com dificuldades no acesso, entre em contato com o Colméia na sala F111, ou com o suporte na sala F309.
Suporte
No caso de maiores dificuldades, entre em contato com a Equipe de Redes (informações de contato disponíveis na página inicial do CINF).
fev/091
Multimedia Converter – um bom frontend para o ffmpeg
Pessoal, pra quem está se batendo para converter formatos de vídeo no GNU/Linux, e sabe do poder do ffmpeg, mas não tem muito tempo para aprender a utilizar todos os parâmetros do mesmo via console, aqui vai uma dica: Multimedia Converter.
Segue abaixo texto retirado do blog http://manualdolinux.wordpress.com (http://manualdolinux.wordpress.com/2007/06/08/multimedia-converter-convertendo-qualquer-formato-no-linux/)
Ele converte todos esses formatos:
AVI >> DVD
AVI >> VCD
AVI >> WMV
AVI >> MPEG
AVI >> MP4
AVI >> FLV
AVI >> ASF
AVI >> MOV
AVI >> 3GP
MPG >> AVI
MPG >> WMV
MPG >> DVD
MPG >> FLV
FLV >> AVI
FLV >> MPG
FLV >> MP4
RMVB >> AVI
WMV >> AVI
WMV >> MP4
WMV >> FLV
E muito mais. Sem contar os arquivos de música.
WAV para MP3, OGG, AU, ACC, AC3, FLAC
MP3 para OGG, WAV, AC3, ACC, AMR, FLAC, RA, AMR
OGG para WAV
WMA para MP3
Além de RA, RM, MPG e muitos outros.
—————————————————-
>>> Instalação
Segue as dependências do Multimedia Converter:
> Kommander (Instale o pacote kdewebdev)
> FFmpeg
> menconder
> MPlayer
> Lame MP3 Encoder
> Win32 Codecs
> libogg / libvorbis / vorbis-tools / oggenc
Faça o download do Multimedia Converter (acompanha pacote deb, rpm e o source):
http://www.kde-apps.org/content/download.php?content=53610&id=1&PHPSESSID=36c0825aa45d5bf5160176fde6c3dc87
Descompacte o arquivo:
tar -vzxf 53610-mc.tar.gz
Acesse os documentos que foram extraídos:
cd mc/english
Agora é a hora de instalar. Se você usa Debian, Ubuntu, Kurumin ou derivados:
dpkg -i mconverter1.0_i386_en.deb
Caso sua distro utilize pacotes rpm, como Mandriva, Fedora:
rpm -i mconverter-1.0-2.i386.rpm
Bom se você for usuário de outra distribuição que não foi citada acima, don’t worry. =)
Pegue o pacote mconverter-1.0.tgz e descompacte na raiz do sistema ( / ).
Uma nova entrada deve ser criada no menu do KDE, na parte multimídia. Caso isso não aconteça, ou você usa outro window manager use o seguinte comando para iniciar o programa e posteriormente criar um atalho:
kmdr-executor /usr/local/LinConverter/LinConverter.kmdr
out/080
Configurando Wireless no Dell Vostro 1510 rodando Gnu/Linux Debian Lenny
Olá! Se você adquiriu um Dell Vostro com as configurações padrões de fábrica, esse tutorial ensina como configurar o drivrer da placa de rede wireless:
http://www.alfakini.com.br/blog/?p=23
Mais informações sobre configurações dos outros dispositivos ou outros modelos de laptops: http://www.linux-on-laptops.com/dell.html
ZZ
set/080
Emergindo grandes pacotes em hardwares fracos com o auxílio de outro computador no Gentoo Linux
Emergindo grandes pacotes em hardwares fracos com o auxílio de outro computador no Gentoo LinuxAutor: Aaron Kim Binner da Silva <aaron.binner at gmail.com> |
|
| Os hardwares utilizados e a configuração do kernel
A idéia é montar o sistema de arquivos do "PC 1" em uma pasta em "PC 2" e fazer CHROOT nesta mesma pasta, podendo assim compilar os pacotes necessários utilizando o hardware do "PC 2" e economizar tempo.
O primeiro PC é um AMD Duron 750 MHZ, 128 MB de ram. Duas placas de rede, sendo uma ligada diretamente à internet e outra ligada ao outro PC através de um cabo cross-over. De agora em diante o chamaremos de PC1. O "auxiliar" é um notebook acer aspire 5050 (AMD Turion 64 2.2Gz 1GB de ram). O chamaremos de PC2. Ambos rodam Gentoo Linux. Para compartilhar a conexão com a internet precisaremos do IPTABLES e o módulo IPTABLE_NAT, e precisaremos também do NFS para podermos montar o hd do PC1 no PC2. Preparando o seu kernel (versão 2.6)Certifique-se de que estas opções estão habilitadas no seu kernel: Networking ---> Estas opções devem estar habilitadas em ambas as máquinas: File Systems ---> Na dúvida acabei marcando alguns módulos a mais, afinal nunca se sabe quando se vai precisar deles. Se necessário recompile o seu kernel. |
|
| Compartilhando sua conexão
Com o kernel devidamente configurado, agora basta carregar o módulo iptable_nat e instalar o pacote iptables.
PC1 - ligado diretamente à internet$ emerge net-firewall/iptables Se você preferiu marcar as opções no kernel como módulos, agora basta carregar o módulo: $ modprobe iptable_nat Substitua "eth0" pela sua placa de internet. Agora sua conexão está compartilhada com todas as outras placas de rede instaladas na máquina. Você pode agora configurar suas placas com o ip fixo através do comando "ifconfig" ou colocar um servidor DHCP rodando. Optei pela segunda opção. Para configurar um servidor DHCP precisaremos do pacote net-misc/dhcp. $ emerge dhcp Agora edite o arquivo /etc/dhcp/dhcpd.conf. Este é um exemplo de configuração: ddns-update-style none;
default-lease-time 600; max-lease-time 7200; subnet 192.168.0.0 netmask 255.255.255.0 { Só isto já é suficiente para funcionar o servidor DHCP. Inicie o serviço: # /etc/init.d/dhcpd start PC2 - auxiliarBasta se conectar via DHCP e verificar o seu DNS em /etc/resolv.conf, se tudo correu bem, agora o PC1 deve estar compartilhando a conexão com o PC2 (não se esqueça de utilizar um cabo cross-over para ligar os dois PCs). |
|
| Colocando a idéia em prática
Para podermos colocar toda essa gambiarra pra funcionar precisaremos do pacote nfs-utils instalado em ambos os PCs, então:
# emerge nfs-utils - execute nas duas máquinas Ao instalar este pacote poderá haver problemas com "Blocked Packages", caso isso aconteça: # emerge --buildpkgonly --nodeps PACOTEBLOQUEADO && emerge -C PACOTEBLOQUEANDOAINSTALAÇÃO && emerge --usepkgonly PACOTEBLOQUEADO Agora basta pôr tudo para funcionar. PC1 - duron 750 Edite o arquivo /etc/exports, ele provavelmente estará em branco, adicione esta linha: / "IP_DO_PC2" (rw,no_root_squash,sync,no_subtree_check)
Inicie o serviço: # /etc/init.d/nfs start PC2 - laptop # /etc/init.d/nfsmount start Faça o CHROOT!! (substitua o asterisco pelo arch do respectivo processador EX:. i386 ou i486) # setarch * chroot /pcmanco /bin/bash Pronto, agora você pode emergir pacotes com grande velocidade até em um pentium 100 com 16MB de ram e ainda ganhar tempo. Espero ter ajudado. Referências
|
set/080
Configurando a saida de VGA em notes Toshiba U305
Bem, tenho um notebook toshiba U305, um belo dia quis testa-lo no meu monitor 17" da samsung
e nao conseguia de jeito nenhum fazer ele funcionar, tentei mudar driver, o escambau... mas nada dava certo, levando em consideraçao q a tecla de atalho ALT + F5 estava desativada...
Pesquisando mais um pouco descobri o seguinte comando:
xrandr --outup VGA --auto
e aih sim... reconheceu o monitor pela saida VGA ;D
existem mais parametros pro xrandr, segue uma lista abaixo
-display or -d
-help
-o
or --orientation
-q or --query
-s /x or --size /x
-r or --rate or --refresh
-v or --version
-x (reflect in x)
-y (reflect in y)
--screen
--verbose
--dryrun
--prop or --properties
--fb x
--fbmm x
--dpi /
--output
--auto
--mode
--preferred
--pos x
--rate or --refresh
--reflect normal,x,y,xy
--rotate normal,inverted,left,right
--left-of
--right-of
--above
--below
--same-as
--set
--off
--crtc
--newmode
[+HSync] [-HSync] [+VSync] [-VSync]
--rmmode
--addmode
--delmode
eu aconselho a utilizar o -size para setar a resoluçao ;D
o/
Referência:
http://chavesfop.blogspot.com/2008/03/configurando-saida-de-vga-em-notes.html


Please support us by using Babylon search engine
set/082
Como instalar o zenmap de várias maneiras
Como instalar o zenmap de várias maneiras
Bom me empolguei em auxiliar um cara no fórum do slackware
e fiz muitas formas de instalar o zenmap no slackware
. O mais interessante é o script que fiz que sincroniza com a ultima versão do zenmap lancada, baixa compila e instala (la moda do gentoo)
- Code:
wget http://repository.slacky.eu/slackware-12.1/libraries/pysqlite/2.4.1/pysqlite-2.4.1-i486-1sl.tgz
wget http://repository.slacky.eu/slackware-12.1/database/sqlite/2.8.17/sqlite-2.8.17-i486-2sl.tgz
installpkg pysqlite-2.4.1-i486-1sl.tgz
installpkg sqlite-2.8.17-i486-2sl.tgz
ou
- Code:
slapt-get install pysqlite
Pegando o pacote oficial da versao estável do slackware:
- Code:
wget http://packages.slackware.it/package.php?q=12.1/nmap-4.60-i486-3
installpkg nmap-4.60-i486-3
Utilizando gerenciador de pacote
- Code:
slapt-get install nmap
Compilando o pacote
- Code:
mkdir /tmp/nmap
cd /tmp/nmap
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.SlackBuild
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.png
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap-4.60.tar.bz2
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/slack-desc
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/zenmap.desktop.gz
bash nmap.SlackBuild
Pegando o rpm da ultima versão e convertendo e instalando
- Code:
wget http://nmap.org/dist/zenmap-4.76-1.noarch.rpm
rpm2tgz zenmap-4.76-1.noarch.rpm
instalplkng zenmap-4.76-1.noarch.tgz
Compilando o nmap com a ultima versao (4.76)
Para compilar e criar o pacote você deve alterar o nmap.Slackbuild em uma linha com a versao que você quer. A obviamente também baixando o arquivo com a versão que você quer do site
Altere o arquivo nmap.Slackbuild a linha que tem
- Code:
VERSION=${PKGVERSION:-4.60}
para
- Code:
VERSION=${PKGVERSION:-4.76}
- Code:
mkdir /tmp/nmap
cd /tmp/nmap
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.SlackBuild
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.png
wget http://nmap.org/dist/nmap-4.76.tar.bz2
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/slack-desc
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/zenmap.desktop.gz
bash nmap.SlackBuild
Criando script para sincronizar com a ultima versão do zenmap direto no servidor
vamos lá fazer um script para ficar sincronizando com o servidor baixar e compilar a ultima versão. Fim nao tem mais o q fazer eu acho hauuha ![]()
- Code:
wget http://nmap.org/dist/for i in `seq 2`
NAME_VERSION_UPDATE=`grep "nmap.*\.tar\.bz" index.html | cut -f 6 -d '"' | tail -n 1 | sed "s/\.tar\.bz2//g"`
VERSION_UPDATE=`echo $NAME_VERSION_UPDATE | cut -f 2 -d -`
NAME_VERSION=`ls -w 1 /var/log/packages | grep nmap | sed "s/-i.*$//g"`
VERSION=`echo $NAME_VERSION | cut -f 2 -d -`
do
cmp1=`echo $VERSION_UPDATE | cut -f $i -d . `
cmp2=`echo $VERSION | cut -f $i -d . `echo $VERSION_UPDATE
echo $VERSIONif(( $cmp1 > $cmp2 ));then
mkdir /tmp/nmap
cd /tmp/nmap
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.SlackBuild
sed "s/4.60/$VERSION_UPDATE/g" nmap.SlackBuild > nmap.SlackBuild2 && mv nmap.SlackBuild2 nmap.SlackBuild
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/nmap.png
wget http://nmap.org/dist/nmap-$VERSION_UPDATE.tar.bz2
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/slack-desc
wget ftp://ftp.slackware-brasil.com.br/slackware-12.1/source/n/nmap/zenmap.desktop.gz
bash nmap.SlackBuild
upgradepkg /tmp/nmap-$VERSION_UPDATE-i486-3.tgz
fi
done
Obs: achei a página do nmap muito baguncada muito colorida ![]()
Obs2: seria legal mudar o slackdesc ![]()
Marco Carvalho de Oliveira
Colméia Grupo de Pesquisa em Software Livre
set/081
Como verificar as conexões abertas na sua máquina de muitas maneiras
Estivemos com um problema em um projeto o qual precisava encontrar se o serviço do xdmcp estava aberto e nota ele não é um processo independente ele interligado ao X, kdm, gdm xdm, para tanto a solução mais cabível era procurar saber se a porta estava aberta na máquina e acionada, sim talvez poderia existir outras maneiras mas esta se fez mais interessante. A clássica solução que me veio a cabeça foi usar o netstat, mas pensei e porque não ir mais à fundo e venho por este artigo mostrar algumas coisas que aprendi.
As formas que executei este processo foram:
Geek hacker ninja style form - procura no proc pelas conexões abertas ( mais interessante e a que mais aprendi )
Status network - usa o comando de status de rede para listar
Open Files - Procura baseado nos arquivos abertos o que está ligado a porta
Geek hacker ninja style form
A forma mais baixo nível e estilosa =], vamos aos arquivos de kernel analizar a suas saídas, está e a base utilizada por programas como o netstat o qual converte os dados deste e mostra com uma saída personalizada. Bom foi publicado um artigo antes explicando sobre a conversão de bases então para tanto não vou abordar este assunto aqui.
O arquivo em questão utilizado é o /proc/net/tcp
Exemplo de /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 9E00A8C0:D3FD E1D7BCCD:1F4A 01 00000000:0003163C 00:00000000 00000000 1000 0 383991 1 cb042500 102 12 4 2 100
1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 626508 1 c299db80 750 0 0 2 -1
sl: O número de indentificador da linha
local_address: O endereço local e o número da porta do socket. O endereço local está condificado em little-endian em quatro sequencias de números em hexadecimal, isso significa que o byte mais importa é listado primeiro, e você necessita fazer a inversão da ordem dos bytes para converter para o enderço de ip. O número da porta é um hexadecimal simples utilizado pelo programa.
rem_address - O endereço remoto e o número da porta do socket. O endereço local está condificado em little-endian em quatro sequencias de números em hexadecimal, isso significa que o byte mais importa é listado primeiro, e você necessita fazer a inversão da ordem dos bytes para converter para o enderço de ip. O número da porta é um hexadecimal simples.
st: status do socket ( Depois de muita busca encontrei onde estavao o padrão de código daqui e o or que do valor ficar com 0A segue tabela de referência no final )
tx_queue:rx_queue O tamanho de transmissão e recebimento das filas de pacotes
tr:tm->when: tr é o campo que indica se o medidor de tempo está ativo para este socket. Um valor de zero indica que o medidor de tempo não está ativo. O tm->when indica tempo que o sock está sendo utilizado em jiffies. ( usado basicamente para debug )
retrnsmt: campo de informação interna do socket do kernel ( usado basicamente para debug )
uid: o uid do usuário dono da conexão
time-out: campo de informação interna do socket do kernel ( usado basicamente para debug )
inode: Um número encriptado de indetificado do socket para o sistema de arquivos do Linux.( não encontrei qual é a criptofrafia utilizada aqui )
Achei a representação padrão do cat do arquivo /proc/net/tcp muito larga entao refiz ela na horizontal para melhor explanar o exemplo à cima. E traduzi alguns dados
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 9E00A8C0:D3FD E1D7BCCD:1F4A 01 00000000:0003163C 00:00000000 00000000 1000 0 383991 1 cb042500 102 12 4 2 100
1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 626508 1 c299db80 750 0 0 2 -1
sl : 0 - linha indicadora da primeira conexão
local_adress: 9E00A8C0:D3FD - convertendo fica 192.168.0.158:151775
rem_adress: E1D7BCCD:1F4A - convertendo fica 205.188.215.225:8010
st: 01 - TCP ESTABELISHED - conexão estabelecida
tx_queue rx_queue: 00000000:0003163C - fila de dado transmitida
tm->when retrnsmt: 00:00000000 00000000 - dados utilizado para debug
uid: 1000 - id do usuário dono da conexão
timeout: 0 - dado utilizado para debug
inode: 383991 1 cb042500 102 12 4 2 100 - identficador criptografado
sl : 1 - linha indicadora da primeira conexão
local_adress: 00000000:0016 - convertendo fica localhost:22
rem_adress: 00000000:0000 - não tem ninguem conectado
st: 0A - TCP_LISTEN - escutando conexão
tx_queue rx_queue: 00000000:0003163C - fila de dado transmitida
tm->when retrnsmt: 00:00000000 00000000 - dados utilizado para debug
uid: 1000 - id do usuário dono da conexão
timeout: 0 - dado utilizado para debug
inode: 383991 1 cb042500 102 12 4 2 100 - identficador criptografado
Status network
Podemos ver as conexões abertas atráves do comando netstat.O mesmo é um programa de estatisticas de rede utilizado amplamente para este fim. Não tem muitos segredos e as informações que ele mostram são muito legíveis, a alguém percebeu a similiridade com um outro arquivo no modo que as informações aparecem
.
netstat -tl - lista as conexões abertas de tcp em modo de escuta
netstat -t - lista as conexões tcp estabelecidas
netstat -p - lista os programas que estão usando a conexão
netstat --numeric-ports - não converte o número da porta para ser listado
netstat --numeric-hosts - não converte o número de ip para nome do host
Comando que resolveu meu problema
netstat -t -l -p --numeric-ports
---------------------------------------------------------------------------------------
Open Files
Vendo as conexões abertas atráves do comando lsof.O comando lsof lista os arquivos abertos, átraves disto vamos procurar o arquivo aberto relacionado as portas tcp.
Obs: Ele pode pegar muitas informações interessantes sobre os arquivos abertos, mas não é escopo deste artigo
lsof -i protocolo
lsof -i tcp
---------------------------------------------------------------------------------------
Tabela de dados para o status do socket versão do kernel 2.6.21.5 slackware 12
-----------------------------
| st status socket values |
-----------------------------
| significado | valor |
-----------------------------
| TCP_ESTABLISHED | 01 |
| TCP_SYN_SENT | 02 |
| TCP_SYN_RECV | 03 |
| TCP_FIN_WAIT1 | 04 |
| TCP_FIN_WAIT2 | 05 |
| TCP_TIME_WAIT | 06 |
| TCP_CLOSE | 07 |
| TCP_CLOSE_WAIT | 08 |
| TCP_LAST_ACK | 09 |
| TCP_LISTEN | 0A |
| TCP_CLOSING | 0B |
| TCP_MAX_STATES | 0C |
-----------------------------
Ambiente de teste
Slackware 12.0
kernel 2.6.21.5
Conclusão
Estas foram apenas algumas maneiras devem ter mais, espero que tenham gostado e que algum dia isto seja útil a alguém =], bom para mim foi um grande aprendizado.
(Desculpe qualquer erro de portugues :X)
Definições
jiffy - medida utilizada para representar o uso de uma tarefa em chamadas de interrupção no processador. ( Medida em um Linux com kernel 2.6.13 em um Intel 386 é de 4 ms, ou 1/250th de um segundo)
little-endian - codificação a
Referências
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=8145 - conversão de base hexadecimal, binário ...
http://www.linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html - link sobre dispositivos do proc
http://en.wikipedia.org/wiki/Jiffy_(time) - link sobre a medida Jiffy
www.lisha.ufsc.br/wso/papers/2004/real2004.pdf - Escalonamento interativo do kernel do Linux, texto onde encontrei um dos lugares onde o jiffies é utilizada ( detalhe texto escrito por um dos participantes do gobolinux )
http://catb.org/~esr/jargon/html/J/jiffy.html - enciclopedia de termos nerds, falando sobre jiffy
http://www.vivaolinux.com.br/scripts/verFonte.php?codigo=1808 - calculadora de conversão de base feita em c
http://www.vivaolinux.com.br/scripts/verFonte.php?codigo=2818&arquivo=hex.sh - calculadora de conversão de base feita em shellscript
http://pt.wikipedia.org/wiki/Little_endian - wikipedia sobre a numeração Little_endian
http://www.mail-archive.com/linux-net@vger.kernel.org/msg01930.html - email perguntando sobre o status code do tcp
man /proc
man lsof
man netstat
--
Marco Carvalho de Oliveira
Colméia - Grupo de Pesquisa em Software Livre
UDESC - Ciência da Computação Joinville
Certificate Linux Professional I - LPI
ago/081
Ativando o DRI em seu GNU/Linux
Introdução
Criei o costume de utilizar o Tilda, um simulador de terminal de shell baseado em GTK, que se comporta como o terminal de comandos do Quake, subindo e descendo como uma cortina. Mas percebi que estava lento o efeito de subir e descer do Tilda, e então percebi que o DRI estava inativo, o que me motivou a ativá-lo e escrever este artigo
O que é DRI?
O DRI (Direct Rendering Infrastructure), também conhecido como aceleração de hardware 3D, é um framework para permitir acesso direto ao hardware da placa de vídeo através do sistema de janelas X, de uma forma eficiente e segura. Por exemplo, jogos ou programas gráficos podem enviar comandos diretamente para a placa de vídeo, enquanto a CPU fica livre para realizar outros trabalhos. Isso é conhecido como renderização direta, ou direct rendering. Isso inclui modificações no servidor X, em algumas bibliotecas e pelo kernel (DRM, Direct Rendering Manager).
O uso mais importante do DRI é criar implementações rápidas no OpenGL oferecendo aceleração de hardware para o Mesa. Muitos drivers acelerados 3D tem sido escrito para a especificação, incluindo drivers para os chipsets produzidos por 3DFX, AMD (formalmente ATI), Intel e Matrox.
Uma boa motivação para se ativar o DRI é executar o comando glxgears e observar o comportamento das engrenagens 3D. Se o recurso não estiver ativo, geralmente pode-se observar que as engrenagens se movimentam com dificuldade, e em baixa velocidade. Com o recurso ativo, utilizando a placa de vídeo Intel 82852/855GM, obtive o pico de 2397 frames in 5.0 seconds = 479.355 FPS como saída do glxgears. Com o DRI inativo obtia no máximo 300 FPS.
Algumas distribuições GNU/Linux podem ativar o DRI automaticamente, mas em muitos casos é preciso fazer isso manualmente. Para verificar se o recurso DRI está ativo, digite glxinfo | grep rendering
Ativando o suporte a DRI
O primeiro passo para ativar o DRI é verificar se a placa de vídeo instalada possui suporte ao recurso,consulte no site da fabricante da placa e no Google para obter essa informação.
O segundo passo é possuir uma versão atual do servidor X. No caso, eu tive problemas com a versão 1.3 do xorg e precisei atualizar para a versão 1.4.2.
Para saber que versão do xorg está instalada, use o comando xdpyinfo | grep version
Para se ativar o DRI no X, utiliza-se o DRM (Direct Rendering Manager), que é um reforço para o Xorg. O DRM adiciona aceleração 3D acrescentado o módulo de kernel necessário para o direct rendering.
Bom, agora que os pré-requisitos foram atendidos, é importante lembrar que existem duas formas de se ativar o DRI. A primeira é compilar o kernel com o suporte nativo, a segunda é compilar o kernel com suporte modular ao drm, e então carregar o módulo após o boot do kernel.
As duas alternativas são eficientes dependendo de cada caso. No Gentoo, por exemplo, existe um pacote na árvore do portage (x11-xdm) que compila o módulo do DRM, e a grande vantagem é que esse pacote é atualizado com uma boa periodicidade, bastando reinstalá-lo a cada versão, o que seria inviável com um drm compilado dentro do kernel (imagine recompilar o kernel cada vez que se deseja atualizar o pacote). Dessa forma, optei por compilar o kernel com um (M) marcado em DRM.
Configurando o kernel
Configure o kernel com make menuconfig e selecione o Direct Rendering Manager como módulo (tecle M) ou compilado embutido (tecle Y).
Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Device drivers --->
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
Configurando Xorg.conf
Abra o arquivo /etc/X11/xorg.conf com seu editor favorito e o edite ativando DRI e GLX da seguinte forma:
.
Section "Module"
Load "dri" # Carrega o suporte ao DRI
Load "glx" # Carrega o binding que conecta OpenGL e o X
...
EndSection
...
Section "Device"
Driver "i810" #(Substitua com o driver de sua placa de vídeo.)
...
EndSection
...
Section "dri"
Mode 0666 # Essa linha dá privilégios de leitura e escrita do dri a todos os usuários(modo 666)
EndSection
Testando
Com o módulo do DRM carregado, dentro do diretório /dev/dri são criados dois pseudoarquivos, card0 e card1, que representam o acesso ao DRI. Verifique se esses pseudoarquivos foram criados com ls /dev/dri.
Agora faça novamente o teste das roldanas, glxgears, e o comando glxinfo | grep rendering deve retornar Yes.
Referências
http://dri.freedesktop.org/wiki/
http://dri.sourceforge.net/doc/DRIbeginner.html
http://www.gentoo.org/doc/en/dri-howto.xml
