Novidades para o FreeBSD 9.0

December 29, 2009

O desenvolvedor Ivan Voras iniciou sua página “What’s cooking for FreeBSD” para o FreeBSD 9, vocês poderão acompanhar as novidades que virão a aparecer no FreeBSD 9 através dela. Os itens abaixo já estão presentes na lista:

  • UFS SoftUpdates+Journal (SU+J)
  • New driver for AHCI SATA drives
  • ATA CAM implementation
  • NFSv4 ACLs for UFS
  • ZFS updated to version 14 (delphij)
  • Implemented TRIM / ERASE (S)ATA commands for SSDs and similar drives, notifying them of unused disk space so it can be reclaimed (mav)
  • Solaris-like pwait(1) utility (jilles) (MFCed), refactored rc.d to use pwait(1).
  • IPFW becomes VNET-aware (virtualized network stack, i.e. a firewall instance per jail/VNET) and gets more SMP performance. (luigi)
  • Imported V4L (video 4 linux) support in the Linuxulator (aka Linux compatibility mode) (netchild)
  • Better support for Machine Check Exceptions (jb)
  • Reworked utmp system (ed)
  • Open-source 3D hardware acceleration for Radeon HD cards (nork, rnoland)

FreeBSD HAST

December 14, 2009

Parte do projeto HAST (High Available Storage Project), uma implementação de uma classe GEOM voltada para alta disponibilidade, para FreeBSD já está concluído. O desenvolvedor Pawel Jakub Dawidek, responsável pelo projeto, divulgou os recursos que já estão funcionando, o texto pode ser encontrado AQUI!


FreeBSD aos olhos de um “Linuxer”

December 12, 2009

Um artigo bem interessante chamado “First look at FreeBSD 8.0” escrito por Jesse Smith, mostra como o FreeBSD é amigável aos olhos de um usuário de Linux. No texto o autor comenta suas impressões sobre o sistema e deixa claro que teve muito pouco contato com FreeBSD anteriormente, mas que mesmo assim conseguiu usar e administrar um servidor pessoal completo sem maiores problemas. O texto traduzido pode ser encontrado AQUI.


FreeBSD 8.0-RELEASE

November 26, 2009

Hoje foi lançado oficialmente a versão 8 do FreeBSD, apesar de as ISOs estarem disponíveis desde o dia 22. Nessa versão apareceram novidades realmente excitantes, como por exemplo a versão 13 do sistema de arquivos ZFS finalmente considerado estável e pronto para ser usado em produção. Os subsistemas USB, rede, TTY e Jails foram violentamente aprimorados. Vários drivers de dispositivos foram adicionados, assim como novos protocolos de rede e atualizações de outros. Uma lista completa das novidades pode ser encontrada AQUI. As imagens para download podem ser encotradas AQUI.


Comandos e parâmetros da semana

November 20, 2009

Durante essa semana aprendi uns comandos e parâmetros interessantes para o FreeBSD:

Grep colorido

Eu sei, é frescura, mas é legal, o parâmetro –colour=auto do grep no FreeBSD deixa o texto que casou com a expressão usada destacado em vermelho.

Cmdwatch, um watch (do linux) para FreeBSD

Um comando que eu sentia falta era o watch do Linux, conheci o cmdwacth que faz o mesmo trabalho, para instalar acesse /usr/ports/sysutils/cmdwatch e dê um make install clean.

No “Freeba” não tem tac, vai de tail -r

Outra coisa que precisei essa semana, listar o conteúdo de um arquivo invertendo a saída, no Linux tem comando tac, no FreeBSD você pode usar o tail -r.


Usando PF com FIBs no FreeBSD

November 17, 2009

Com o advento das múltiplas tabelas de roteamento no FreeBSD (FIB) ficou muito fácil distribuir certos tipos de tráfego por determinados links. Por exemplo, vamos supor que temos 2 links com respectivos gateways 192.168.1.254 e 10.10.1.254, para adicionar as duas rotas como default em 2 tabelas diferentes faça o seguinte:

  • route add default 192.168.1.254
  • setfib 1 route add default 10.10.1.254

Agora temos a tabela 0 com a rota default 192.168.1.254 e a tabela 1 com a rota default 10.10.1.254, agora vamos enviar todo tráfego para porta 25 para o segundo link (10.10.1.254) usando o PF:

  • pass in quick on $int_if from any to port 25 rtable 1

Fonte: Lista do FUG.


Remontando partições no FreeBSD

November 17, 2009

Para remontar uma partição no FreeBSD enquanto ela está sendo usada use o parâmetro -u do comando mount. Por exemplo, você precisa remontar uma partição para adicionar as flags noexec, nosuid e noatime. O comando ficaria assim:

  • mount -urw -o noexec,nosuid,noatime /particao.

O paradoxo do Exterminador do Futuro

November 4, 2009

Quase não consegui dormir essa noite pensando sobre o que James Cameron quis fazer na série O Exterminador do Futuro, não sei se ele não tem a menor noção dos paradoxos de viagens no tempo ou se ele sabia o que estava fazendo. Mas bem, considerando que ele sabia o que estava fazendo, fui obrigado a fazer diagramas essa noite tentando colocar no papel a origem “dos” John Connor que viriam a existir no futuro. Encontrei esse excelente artigo sobre o problema, deixei minha opnião como um comentário do artigo. Vocês também devem ter ficado bitolados com o fato de o filme dizer que o John Connor enviou Kyle Reese de volta no tempo para proteger sua mãe e esse veio a ser o seu pai. Mas, se John Connor o enviou no tempo, indiretamente para ser o seu pai, como diabos ele já existia no futuro??? Leiam o artigo, é uma boa teoria do que se passa na série.


Novidades do Bash 4

September 29, 2009

Algumas novidades na nova versão do Bash me deixaram empolgado.

Vetores associativos

Esse recurso permite criar “dicionários” em bash, para ativá-lo use declare -A <nome_do_vetor>, exemplo:

declare -A lista
lista['nome']=”Danilo Egea”
lista['idade']=21
lista['sexo']=”nao lembro quando foi a ultima vez”

Para recuperar os valores use ${lista['nome']}, exemplo:

echo ${lista['sexo']}
nao lembro quando foi a ultima vez

Conversão de maiúsculo para minúsculo e vice versa

O Bash agora permite usar algumas expansões de variáveis novas, são elas: “,”,  “,,”, “^” e “^^”.

Para converter a primeira letra para maiúsculo use:

nome=”danilo”
echo ${nome^}
Danilo

Para converter todas as letras para maiúsculo:

nome=”danilo”
echo ${nome^^}
DANILO

Para converter a primeira letra para minúsculo:

nome=”DANILO”
echo ${nome,}
dANILO

Para converter todas as letras para minúsculo:

nome=”DANILO”
echo ${nome,,}
danilo

Usando ** para listar arquivos

Use ** para listar todos os arquivos dentro de todos os diretórios de onde você está no momento, ** expande para uma lista de todos os arquivos, exemplo:

ls **

FONTE: Linux Magazine edição 58.


Squid com ZPH

September 19, 2009

ZPH (Zero Penalty Hit) é um recurso do squid que permite a marcação de pacotes originados de algo que está em cache. Ele é usado principalmente em sistemas onde há controle de banda. Quando você faz a limitação de tráfego no servidor, os objetos que estiverem em cache também serão limitados quando solicidatos. Com o ZPH você consegue saber o que não deve passar pelo controle de banda. No seu squid.conf coloque as seguintes linhas:

zph_mode tos
zph_local 0×02

Assim o Squid irá marcar os pacotes com a flag 0×02, agora no seu firewall (IPFW no meu caso) adicione uma regra permitindo o tráfego marcado antes das suas regras de controle de banda:

ipfw -q add 50 allow ip from any to any iptos mincost

default:
 set log Phase Chat LCP IPCP CCP tun command
 set device /dev/cuaU0
# set speed 236800
 set speed sync
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
           OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"

claro:
 set authname claro
 set authkey claro
 set phone *99***1\#
 set login "TIMEOUT 10 \"\" \"\" \ CAUSE ERROR PLEASE NO CHANGE!
      gin:--gin: \\U word: \\P"
 set timeout 1
 set ifaddr 10.0.0.1/0 127.0.0.1/0 255.255.255.0 0.0.0.0
 #set ifaddr 10.0.0.1/0
# add default HISADDR
 enable dns
default:
 shell logger "LABEL down (up UPTIME): OCTETSIN received, OCTETSOUT sent"

claro:
 shell route delete default
claro:
 shell route delete default
 shell route add default -interface INTERFACE