quinta-feira, 27 de março de 2014

Por que usar Linux?

Linux é melhor que Windows?

Essa pergunta simplista costuma ser respondida também de forma simplista. Os xiitas apaixonados pelo pinguim respondem usando argumentos como segurança, liberdade e estabilidade. Já os fan boys do Windows argumentam que o Linux é difícil de usar e não tem jogos. Mas todos se esquecem de perguntar: melhor para quem? Para saber qual é o melhor sistema operacional é necessário avaliar onde ele será usado, para qual finalidade, e por quem. Neste artigo eu pretendo mostrar alguns pontos que devem ser levados em conta quando entramos nessa questão.

Primeiramente temos que conhecer os tipos de licenciamentos existentes. Pode ser que você nem ligue para a licença, mas lembre-se de que estamos analisando os softwares em um nível mais global. Há vários tipos de licenças de software. As principais são apresentadas abaixo.

Proprietária : É a mais comum. Você tem o direito de usar o software mediante o pagamento de uma taxa, mas não pode modificá-lo, e nem redistribuí-lo. Um exemplo desse tipo de programa é o Windows.

Shareware : Usada quando se quer demonstrar um software proprietário. Possui limitações quanto a versão proprietária, ou pode funcionar apenas por algum tempo. A cópia é permitida, mas não a modificação do programa. Jogos promocionais são os melhores exemplos de shareware.

Grátis : Usadas em programas que são distribuídos livremente. Você tem permissão de instalar em quantos equipamentos quiser, e pode ser distribuído livremente. Mas você não tem permissão para modificá-lo. A maioria dos programa shareware também são grátis, mas um software grátis não possue as limitações que o shareware possuem. O Avast (versão doméstica) e o Adobe Reader são exemplos de programas grátis.

Código aberto (open source) : Um programa de código aberto contém as mesmas restrições de um programa proprietário, mas seu código fonte está disponível para consulta. Apesar de ter acesso ao seu código, a alteração não é permitida. O programa de votação eletrônica é de código aberto. Algumas universidades possuem contrato com as empresas de software para poderem analisar o código fonte de alguns programas com o objetivo de estudo.

Livre (Free) : Free aqui não quer dizer grátis, embora quase todos os softwares livres são também grátis. Todo software livre é também de código aberto, mas nem todo software de código aberto é livre. A diferença é que um software livre pode ser alterado livremente por qualquer um e pode ser redistribuído, desde que as alterações realizadas também sejam livres. O Linux é o melhor exemplo de software livre.

Bsd : A licença Bsd é mais liberal do que a Livre, pois permite que as alterações feitas no software posssam ser proprietárias. O FreeBSD é um exemplo de software Bsd.

Agora que sabemos as diferenças entre as licenças, vamos analisar o Linux para diversos públicos. 


Linux para usuários domésticos

Para o usuário doméstico, que usa o computador para navegar na Internet, trocar e-mail e mensagens instantâneas, fazer documentos, apresentações e planilhas, o Linux atende perfeitamente. O custo é zero, a incidência de vírus é praticamente zero, a estabilidade é total. Uma desvantagem que eu vejo para o usuário doméstico é o efeito "novo". O "novo" assusta. O efeito de sair procurando as coisas é horrível para o usuário comum. Realmente o Linux é um outro universo, embora seja tão amigável quanto o Windows. Mas veja por um outro lado: o Windows 8 também é um outro universo. Quem está acostumado com o Windows XP/Vista vai se sentir perdido no Windows 8. A curva de apredizagem é a mesma para o Windows 8 e o para o Linux. Outro ponto negativo talvez seja a instalação de hardware. Mas um usuário não técnico vai acabar chamando um técnico para instalar seu hardware de qualquer forma, seja em Windows ou Linux. Então isso não chega a aser um problema.


Gamers

O principal argumento dos defensores do Windows é a questão dos jogos. Há mais jogos para Windows do que para Linux. E isso é verdade, embora esse cenário esteja mudando com a entrada da Valve no mundo Linux e com a sua plataforma de código aberto para jogos. Mas ainda é pouco. Mas veja por outro lado. Se você quer um computador para jogos, então compre um Playstation, ou um Xbox. São melhores e mais baratos, né?


Profissionais de TI

Aqui não tem discusão. Se você é um profissionai de TI você só tem a ganhar com o Linux, principalmente por dois motivos. Primeiro: se você sabe programar, então o Linux te disponibiliza uma infinidade de linhas de código nas mais diversas linguagens, como C, C++, Perl, Php, Python, etc, além das documentações. Segundo: o fato de poder instalar, desinstalar, reinstalar e manter várias versões do mesmo software sem precisar se preocupar com licenças, vigências e número de instalações já é uma enorme vantagem. Poder testar, mudar configurações e avaliar os programas é essencial no aprendizado da ferramenta. No mundo Windows é comum ter que instalar software shareware que expira em alguns dias, ou ter que ficar aguardando novas licenças do fornecedor. E é frustante saber que a versão shareware não tem habilitada justamente a função que você quer testar. Isso não ocorre no Linux.


Empresas

Avaliar se o Linux é melhor para empresas é um pouco complicado. A economia com licenças é uma enorme vantagem. Uma empresa com 100 desktop tem que desembolsar cerca de R$ 150.000,00 só com licenças de Windows e Office, isso a cada 2 ou 3 anos. Se contarmos com os programas para servidor esse valor é ainda maior. Porém o maior problema é na implantação do Linux. Há muito software específico e legado que só roda em Windows. Por exemplo, em uma empresa que trabalhei a Intranet só funcionava no Internet Explorer. Foi necessário fazer alterações no site para que ela funcionasse no Firefox, e só depois pensar em migrar para Linux. Portanto, uma migração para Linux deve se rmuito bem planejada, feita em etapas, sem pressa. Comece com serviços em servidores menos críticos, DHCP, DNS, FTP, servidores de arquivo. Mas mesmo com todo esse trabalho, após a migração, a empresa ficará livre de fornecedores, livre de gastos com licenças, livre das amarras que as empresas de software fechado impõem. Mas não se iluda: sempre vai ficar um legado, um desktop que precisa do Windows, um servidor que roda uma aplicação crítica proprietária, etc.

Outro ponto e o treinamento. É necessário treinar o funcionário no novo sistema. Mas, como já falei, se sua empresa pretende migrar para o Windows 8, então é certo que você vai precisar dar treinamento também.

Agora, se a empresa tem parcerias fortes com fornecedores de software proprietário, se o negócio está muito amarrado com seus parceiros, se a empresa presta suporte em TI e seus clientes fazem questão de usar programa fechados (seja lá por qual motivo) então o Linux pode não ser um bom negócio. Se o seu negócio está focado na VENDA de software, e não no SERVIÇO de suporte, então Linux não é para você. 


Governos

Depois do caso Edward Snowden os governos passaram a olhar os programas abertos e livres mais de perto. Como saber se aquela atualização do programa não contém uma backdoor? Como saber se o sistema operacional não está gravando minha tela e enviando para a CIA? Somente com software livre é possível analisar o código fonte e ter a certeza de que tudo está no lugar. 

Outra vantagem para os governos é o fim da evasão de divisas. As verbas com licenças não são enviadas para o exterior; antes são investidas em empresas nacionais, geram renda e trabalho em seu próprio país, e isso gera a independência tecnológica.


Conclusão

Quando me perguntam se Linux é melhor que Windows eu respondo com duas outras perguntas: melhor em que? melhor prá quem?

Se você não está com paciência prá aprender algo novo, ou está sem tempo, ou não quer comprar um console de jogos, então continue com o sistema operacional atual. Prá você o Windows é melhor. Mas antes de sair falando que o Windows é melhor, pense: "melhor prá quem? melhor em quê?". A filosofia da troca de conhecimento, prá mim, não tem preço. Prá mim, o Linux é muito melhor. Prá mim!






















terça-feira, 25 de março de 2014

9 formas de usar o Linux para consertar o Windows


No video abaixo há um tutorial mostrando 9 formas de arrumar o Windows usando o Linux. A distribuição usada é a Ubuntu.




segunda-feira, 24 de março de 2014

Perdeu a senha do administrador do Windows? Isso é simples de resolver com chntpw

Não são raras as vezes em que algum usuário do Windows me liga perguntando como descobrir a senha do administrador. Nesse artigo eu mostro passo-a-passo como recuperar a senha do Windows usando um Linux live cd.

Primeiramente ligue o equipamento com o live cd no drive. Pode ser qualquer distribuição Linux. Neste exemplo eu uso uma distro baseada em Debian. Abra um terminal texto como root e digite:

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x358af8eb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848    41940991    20867072    7  HPFS/NTFS/exFAT

Reparem que, neste caso, a partição Windows é a /dev/sda2. Precisamos montá-la com permissões de escrita.

# mkdir /mnt/sda2
# ntfs-3g /dev/sda2 /mnt/sda2

Partição montada, agora precisamos encontrar o arquivo SAM.

# find /mnt/sda2/ -name SAM
/mnt/sda2/Windows/System32/config/RegBack/SAM
/mnt/sda2/Windows/System32/config/SAM

Entre as duas pastas fica claro que a primeira é um backup. Vamos entrar na segunda pasta.

# cd /mnt/sda2/Windows/System32/config

Agora vamos instalar o programa chntpw

# apt-get install chntpw

Após a instalação, digite:

# chntpw -l SAM
chntpw version 0.99.6 080526 (sixtyfour), (c) Petter N Hagen
Hive name (from header): <\SystemRoot\System32\Config\SAM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 666c
Page at 0x7000 is not 'hbin', assuming file contains garbage at end
File size 262144 [40000] bytes, containing 6 pages (+ 1 headerpage)
Used for data: 247/20128 blocks/bytes, unused: 18/4256 blocks/bytes.


* SAM policy limits:
Failed logins before lockout is: 0
Minimum password length        : 0
Password history count         : 0
| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrador                  | ADMIN  | dis/lock |
| 01f5 | Convidado                      |        | dis/lock |
| 03e8 | ricardo                        | ADMIN  |          |

Podemos ver que temos trê usuários, sendo que dois estão bloqueados, inclusive o Administrador. Primeiramente vamos trocar a senha do usuário "ricardo".

# chntpw -l SAM -u ricardo
chntpw version 0.99.6 080526 (sixtyfour), (c) Petter N Hagen
Hive name (from header): <\SystemRoot\System32\Config\SAM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 666c
Page at 0x7000 is not 'hbin', assuming file contains garbage at end
File size 262144 [40000] bytes, containing 6 pages (+ 1 headerpage)
Used for data: 247/20128 blocks/bytes, unused: 18/4256 blocks/bytes.


* SAM policy limits:
Failed logins before lockout is: 0
Minimum password length        : 0
Password history count         : 0
| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrador                  | ADMIN  | dis/lock |
| 01f5 | Convidado                      |        | dis/lock |
| 03e8 | ricardo                        | ADMIN  |          |


---------------------> SYSKEY CHECK <----------------------- p="">SYSTEM   SecureBoot            : -1 -> Not Set (not installed, good!)
SAM      Account\F             : 0 -> off
SECURITY PolSecretEncryptionKey: -1 -> Not Set (OK if this is NT4)
Syskey not installed!

RID     : 1000 [03e8]
Username: ricardo
fullname:
comment :
homedir :

User is member of 1 groups:
00000220 = Administradores (which has 2 members)

Account bits: 0x0214 =
[ ] Disabled        | [ ] Homedir req.    | [X] Passwd not req. |
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     |
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   |
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  |
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  |

Failed login count: 0, while max tries is: 0
Total  login count: 8

- - - - User Edit Menu:
 1 - Clear (blank) user password
 2 - Edit (set new) user password (careful with this on XP or Vista)
 3 - Promote user (make user an administrator)
(4 - Unlock and enable user account) [seems unlocked already]
 q - Quit editing user, back to user select
Select: [q] 

Digite a opção "1" para deixar o usuário sem senha.

Hives that have changed:
 #  Name
 0  
Write hive files? (y/n) [n] :

Digite "y" para salvar o arquivo SAM

 0   - OK

Agora vamos habilitar o usuário administrador

# chntpw -l SAM -u Administrador

- - - - User Edit Menu:
 1 - Clear (blank) user password
 2 - Edit (set new) user password (careful with this on XP or Vista)
 3 - Promote user (make user an administrator)
 4 - Unlock and enable user account [probably locked now]
 q - Quit editing user, back to user select
Select: [q] 

Digite "4".

Unlocked!

Hives that have changed:
 #  Name
 0  
Write hive files? (y/n) [n] : 

Digite "y" para salvar.

 0   - OK

Podemos também promover o usuário "ricardo" para ser administrador do Windows.

# chntpw -l SAM -u ricardo

- - - - User Edit Menu:
 1 - Clear (blank) user password
 2 - Edit (set new) user password (careful with this on XP or Vista)
 3 - Promote user (make user an administrator)
(4 - Unlock and enable user account) [seems unlocked already]
 q - Quit editing user, back to user select
Select: [q] 

Digite "3".

NOTE: This function is still experimental, and in some cases it
      may result in stangeness when editing user/group in windows.
      Also, users (like Guest often is) may still be prevented
      from login via security/group policies which is not changed.
Do you still want to promote the user? (y/n) [n]

Digite "y".

User is member of 1 groups.
User was member of groups: 00000220 =Administrators,
Deleting user memberships
Adding into only administrators:
Promotion DONE!

Hives that have changed:
 #  Name
 0  
Write hive files? (y/n) [n] :

Digite "y" para salvar o arquivo.

 0   - OK

Vamos verificar se o usuário "ricardo" virou administrador do sistema.

# chntpw -l SAM
| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrador                  | ADMIN  |          |
| 01f5 | Convidado                      |        | dis/lock |
| 03e8 | ricardo                        | ADMIN  |          |


Agora é só reiniciar o equipamento e testar o login no Windows.


quinta-feira, 13 de março de 2014

Apagando um arquivo bem apagado

Se você não sabe, quando um arquivo é apagado ele não é realmente apagado do disco. Mesmo que teu sistema tenha uma lixeira e você a esvazia, o arquivo ainda continua lá em algum lugar do disco. O espaço que ele utilizava ainda contém seus dados. O disco só vai relamente apagar o arquivo quando ele precisar de espaço e sobreescrever o arquivo. Isso pode levar dias, ou mesmo semanas, dependendo do quando você usa o computador. Mesmo que você formate o disco e reinstale o sistema ainda será possível recuperar alguns. Se você pretende vender teu computador, pense bem nisso.

Um utilitário muito útil para apagar um arquivo bem apagado de forma que não seja possível recuperá-lo é o Wipe. Para instalá-lo, digite:

# apt-get install wipe

Seu uso é bem simples.

$ wipe arquivo.txt 
Okay to WIPE 1 regular file ? (Yes/No) Yes

Se tiver certeza disso, digite YES e tecle ENTER.

Operation finished.                                                        
1 file wiped and 0 special files ignored in 0 directories, 0 symlinks removed but not followed, 0 errors occured.

Ao final um relatório é exibido. Repare que a exclusão é um pouco mais demorada. É que o Wipe reescreve o arquivo várias vezes antes de realmente apagá-lo. Isso dificulta uma possível recuparação e, mesmo que se consiga recuperá-lo, ele estará todo embaralhado. Para efeito de teste, coloquei duas pastas com os mesmos arquivos e calculei o tempo que leva para apagá-las usando o "rm" e o "wipe".

$ du -sh site*
372K site2
372K sites

Reparem que ambas possuem o mesmo tamanho.

$ cd sites
$ time rm *

real 0m0.002s
user 0m0.000s
sys 0m0.000s

Com rm levou cerca de 2 milisegundos. Agora com wipe.

$ cd ../site2
$ time wipe *
Okay to WIPE 56 regular files ? (Yes/No) yes
Operation finished.                                                        
56 files wiped and 0 special files ignored in 0 directories, 0 symlinks removed but not followed, 0 errors occured.

real 6m32.526s
user 0m0.056s
sys 0m0.276s

Seis minutos e meio! Mas agora os arquivos estão realmente apagados. Mas use o wipe com cuidado! Não vá falar que eu não avisei!

quarta-feira, 12 de março de 2014

Uma breve história do Linux

Para entendermos toda a filosofia do softwre livre e do Linux precisamos conhecer como era a informática no princípio e o que levou o Linux a aparecer. Quer queira, quer não, a história do Linux está ligada à Microsoft.


Antes mesmo da Microsoft e da Apple existirem, as empresas de informática (IBM, Xerox, GE, etc) forneciam hardware para as empresas. O software era imbutido no equipamento. Os aplicativos eram criados pelas empresas cliente, ou mesmo pela empresa fornecedora através de um contrato de prestação de serviço. Era comum os programas serem entregues com seus códigos fonte escritos em Cobol ou Frontran. Era comum a empresa cliente ter programadores que alteravam o código do programa para que este se adequasse à empresa.

Enquanto isso um grupo de entusiastas liderados por Dennis Ritchie e Ken Thompson lutavam para escrever um sistema operacional que fosse mais portável, ou seja, que rodasse em mais equipamentos, e que não dependesse do fabricante do hardware: o Unix. O Unix era aberto, ou seja, vários programadores ao redor do mundo podiam alterá-lo. E essas alterações eram repassadas para os demais programadores. Por ser estável, escalável e multiplataforma, as grandes empresas passaram a utilizar o Unix como base para seus sistemas. Assim, a IBM criou o AIX, a Sun criou o Solaris, a HP o Hpux, e outros mais. Cada sistema focado no hardware de suas empresas. 


Com o surgimento da microcomputação no início da década de 1970, as grandes empresas não deram muita importância para os computadores pessoais. Elas não viam motivos para pessoas comuns comprarem um computador, visto que manter um sistema era caro, pois era necessário contratar programadores. É aí que entram dois visionários: Steve Jobs e Bill Gates.


Jobs e Gates vislumbraram um mundo onde cada cidadão teria um computador pessoal. A questão era como desenvolver sistemas para esse público não especializado A idéia foi criar programas generalistas, amigáveis, baratos, e que cumpririam a maior parte das necessidades das pessoas, e vender o direito de uso dos programas. Não haveria necessidade de customizações. O programa não pertencia ao cliente. Este tinha apenas o direito de uso. As mudanças sugeridas pelas pessoas poderiam ser incluídas na próxima versão do software, que novamente deveria ser comprado. Dessa forma era possível ganhar dinheiro desenvolvendo software barato, mas para um público maior. Nasciam as gigantes Microsoft, de Bill Gtes, e Apple, de Steve Jobs.

Em 1983, Richard Stallman lança o projeto GNU com o objetivo de criar um sistema operacional livre. Ele definiu que um software, para ser livre, precisava cumprir 4 requisitos:

  • Possiblidade de rodar em qualquer equipamernto, para qualquer fim;
  • Possibilidade de modificar o programa para atender a qualquer objetivo;
  • Possiblidade de copiar e distribuir o programas livremente;
  • As modificações feitas em um software livre também deveriam ser livre.




Com isso, Stallman queria garantir que o conhecimento fosse compartilhado, e que as pessoas não ficassem dependentes das grandes empresas de TI para conseguir o software que atendesse às suas necessidades. Em 1985 Stallman cria a Free Software Fundation, FSF. Em 1989, Richard Stallman escreve a primeira versão da GNU General Public License.

Em 1990, um estudante de informática finlandês chamado Linus Benedict Torvalds adquiriu um computador IBM PC 386 para poder estudar o Unix. O computador veio com o Microsoft Windows instalado. Torvalds, que não queria o sistema da Microsoft, exigiu um desconto na compra do equipamento, o que lhe foi negado. Revoltado, por assim dizer, Torvalds resolveu escrever um sistema operacional semelhante ao Unix que funcionasse no seu computador. Em 1991 ele postou em um site o primeiro código e convidou os membros a contribuirem com o desenvolvimento. Nascia o Linux.

Em 1992, seguindo a recomendação de Richard Stallman, Linux Torvalds licencia o Linux sob os termos da GNU GPL. Por isso, o nome correto do Linux passou a ser GNU/Linux.

Assim, vários grupos ao redor do mundo começaram a contribuir com o Linux. Ainda em 1992 as primeiras distribuições surgiram. Distribuição, ou distro, é um conjunto de software que acompanha o Linux, e que podem ser fornecidos em uma midia, como o CD. No ano seguinte surge a distribuição Slackware, a mais antiga ainda em atividade, e depois a Debian, que hoje possui a maior comunidade de usuários.



Em 1994, Torvalds lança a versão 1.0 do Linux. Como "versão do Linux" queremos dizer a versão do "kernel", ou seja, a versão do núcleo do sistema operacional. Assim, hoje (2014) a distribuição Debian mais nova é a 7.0, que vem com o kernel 3.2. No ano do kernel 1.0 surgiram também as distribuições Red Hat e Suse.

Em 1996 surge o kernel 2.0. A principal mudança foi o suporte a múltiplos processadores. Nesse momento, as grandes empresas começam a considerar o uso e o apoio ao Linux. A interface gráfica, ainda pobre, começa a ganhar recursos interessantes com o projeto KDE. Diferentemente de outros sistemas, como Windows e OSX, o Linux possue várias interfaces gráficas para os mais variados gostos e necessidades. 

Em 1997 surge a primeira grande distribuição brasileira, a Conectiva, versão Perolin. O projeto Gnome tem inicio em 1999 com a meta de criar uma interface gráfica tão boa quando a KDE, porém mais leve. Várias distribuições adotam o Gnome como interface padrão, entre elas a Red Hat.

Em 2003 nasce a distribuição brasileira de maior sucesso até então: o Kurumin. Seu criador, Carlos Morimoto, personalizou uma distribuição chamada Knopix, traduziu a interface para o português brasileiro, e adicionou um painel que ficou conhecido como Ícones Mágicos, que permitia instalar vários programas complicados com apenas um click. Várias distribuições passaram a utilizar ferramentas parecidas. Outra característica do Kurumin era o fato de ser Live-cd, ou seja, rodava pelo cd, sem necessidade de instalação. Com isso era possível usar o Linux sem medo de perder os arquivos. Todas essas características ajudaram na divulgação do Linux.


Em 2004, a Canonical lança do Ubuntu. Sua estratégia de enviar gratuitamente seus cd para qualquer parte do mundo (numa época em que ninguém tinha banda larga) é uma revolução e faz com que o Ubuntu, em poucos anos, passe a ser a distribuição mais usada em desktop, o que fez com a Dell  passasse a vender laptos com o Ubuntu pré-instalado em 2007. No mesmo ano, a Google anuncia o Android, sistema operacional baseado no Linux voltado para dispositivos móveis, como tablet e smartphone.

Hoje em dia o Linux está em todos os setores, como smartphones, desktop, servidores, supercomputadores, robôs, eletrodomésticos e relógios de pulso. Ele já é o sistema operacional mais usado no mundo, só perdendo para o Windows nos desktop, mas seu uso vem crescendo a cada ano.

Quando digo que trabalho com Linux, as pessoas pensam mais ou menos como na imagem abaixo.







E qual a melhor distribuição Linux? Isso depende de quem vai usá-la e para qual finalidade. Para saber qual a melhor distro prá você é só seguir o fluxograma abaixo (clique na imagem para ver melhor)


sexta-feira, 7 de março de 2014

Analisando o uso da memória ram com o Free

Um dos motivos para a lentidão de um computador é o elevado uso de memória ram, o que faz com que o sistema operacional use memória virtual (swap). A memória virtual é, na verdade, um arquivo em disco. Como o disco é, em média, mil vezes mais lento do que a memória ram, quanto mais memória virtual for usada mais lento o micro fica.

Um dos comandos mais usado em ambiente Linux para verificar o uso da memória ram é o free.

$ free
             total       used       free     shared    buffers     cached
Mem:       8226632    7763568     463064          0     265932    4523028
-/+ buffers/cache:    2974608    5252024
Swap:            0          0          0

Você pode usar as opções -k (para mostrar os dados em kbytes), -m (megabytes), -g (gigabytes) ou -h (para mostrar os valores na forma "humana"). 

$ free -h
             total       used       free     shared    buffers     cached
Mem:          7,8G       7,4G       434M         0B       259M       4,3G
-/+ buffers/cache:       2,8G       5,0G

Swap:           0B         0B         0B

Reparem que eu tenho somente 434 Mb disponível. Mas 4,3 Gb estão sendo usados para cache, e 259 Mb para buffer. Essas memórias podem ser liberadas caso o sistema precise. Portanto, na prática eu ainda tenho 434 Mb + 259 Mb + 4,3 Gb de memória rma livre, ou seja, 5,1 Gb. Reparem que meu sistema nem tem memória swap configurada.

Você pode ir analisando o uso da memória a medida que uma aplicação abre. No exemplo abaixo, o parâmetros "-s 5" faz com que o free rode a cada segundo, enquanto que o "-c 5" faz o free parar depois de 5 amostras.

$ free -s 5 -c 5 -m
             total       used       free     shared    buffers     cached
Mem:          8033       7602        430          0        260       4433
-/+ buffers/cache:       2909       5124
Swap:            0          0          0

             total       used       free     shared    buffers     cached
Mem:          8033       7607        426          0        260       4436
-/+ buffers/cache:       2910       5123
Swap:            0          0          0

             total       used       free     shared    buffers     cached
Mem:          8033       7624        409          0        260       4453
-/+ buffers/cache:       2910       5122
Swap:            0          0          0

             total       used       free     shared    buffers     cached
Mem:          8033       7614        419          0        260       4443
-/+ buffers/cache:       2911       5122
Swap:            0          0          0

             total       used       free     shared    buffers     cached
Mem:          8033       7612        421          0        260       4441
-/+ buffers/cache:       2911       5122

Swap:            0          0          0


sexta-feira, 28 de fevereiro de 2014

Plugin do Flash no Linux

O plugin do Flash (usado, por exemplo, para ver videos como os do site Youtube) costuma dar um certo trabalho em Linux. As vezes você baixa o plugin do site da Adobe e ele não funciona direito.

Para resolver isso de uma forma simples basta instalar no pacote flashplugin-nonfree.

# apt-get install flashplugin-nonfree

Segundo a documentação do pacote...

"Este pacote baixará o Flash Player da Adobe. É uma extensão do tipo
Netscape/Mozilla. Qualquer navegador baseado no Netscape ou Mozilla pode
usar o Flash Player. Atualmente, este pacote dá suporte aos seguintes
navegadores: Mozilla, Mozilla-Firefox, Firefox, Iceweasel e Iceape. O
Galeon e o Epiphany também podem usar o Flash Player. O Konqueror também
pode usar o Flash Player se o pacote konqueror-nsplugins estiver
instalado.

AVISO: Ao instalar este pacote Debian, o Adobe Flash Player será baixado
a partir de www.adobe.com. O Contrato de Licença de Usuário Final
(EULA -- End User License Agreement) do Adobe Flash Player está disponível
em www.adobe.com."

Se você usa o Debian precisará habilitar os pacotes non-free no seu arquivo /etc/apt/sources.list. Deverá ficar como no exemplo abaixo:

deb http://ftp.br.debian.org/debian/ stable contrib non-free main

quinta-feira, 27 de fevereiro de 2014

Além do ping com Fping

Além do ping com Fping


Experimente o fping no lugar do ping. Ele possui alguns parâmetros interessantes. Na sua forma mais simples, o fping diz se a máquina alvo está ativa ou não

$ fping 172.20.1.149
172.20.1.149 is alive

$ fping 192.168.1.1
192.168.1.1 is unreachable

Você pode especificar o tamanho e o número de pacotes enviados usando -b e -C respectivamente. O tamanho mínimo é 40 bytes. Reparem que pacotes maiores demoram mais.

$ fping -b 12 -C 2 172.20.1.1
172.20.1.1 : [0], 40 bytes, 0.29 ms (0.29 avg, 0% loss)
172.20.1.1 : [1], 40 bytes, 0.27 ms (0.28 avg, 0% loss)

172.20.1.1 : 0.29 0.27

$ fping -b 10000 -C 2 172.20.1.1
172.20.1.1 : [0], 4096 bytes, 2.24 ms (2.24 avg, 0% loss)
172.20.1.1 : [1], 4096 bytes, 2.54 ms (2.39 avg, 0% loss)

172.20.1.1 : 2.24 2.54

Você também pode pingar um intervalo de rede, e o fping listará todas as máquina que responderem ao ping

$ fping -c 1 -g 172.20.120.0/28172.20.120.1  : [0], 84 bytes, 0.86 ms (0.86 avg, 0% loss)
172.20.120.2  : [0], 84 bytes, 0.61 ms (0.61 avg, 0% loss)
172.20.120.3  : [0], 84 bytes, 0.28 ms (0.28 avg, 0% loss)
172.20.120.4  : [0], 84 bytes, 0.02 ms (0.02 avg, 0% loss)
172.20.120.5  : [0], 84 bytes, 0.63 ms (0.63 avg, 0% loss)
172.20.120.6  : [0], 84 bytes, 0.29 ms (0.29 avg, 0% loss)
172.20.120.7  : [0], 84 bytes, 0.57 ms (0.57 avg, 0% loss)
172.20.120.8  : [0], 84 bytes, 0.65 ms (0.65 avg, 0% loss)
172.20.120.11 : [0], 84 bytes, 1.65 ms (1.65 avg, 0% loss)

172.20.120.0  : xmt/rcv/%loss = 1/0/100%
172.20.120.1  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.86/0.86/0.86
172.20.120.2  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.61/0.61/0.61
172.20.120.3  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.28/0.28/0.28
172.20.120.4  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.02/0.02/0.02
172.20.120.5  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.63/0.63/0.63
172.20.120.6  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.29/0.29/0.29
172.20.120.7  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.57/0.57/0.57
172.20.120.8  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.65/0.65/0.65
172.20.120.9  : xmt/rcv/%loss = 1/0/100%
172.20.120.10 : xmt/rcv/%loss = 1/0/100%
172.20.120.11 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 1.65/1.65/1.65
172.20.120.12 : xmt/rcv/%loss = 1/0/100%
172.20.120.13 : xmt/rcv/%loss = 1/0/100%
172.20.120.14 : xmt/rcv/%loss = 1/0/100%
172.20.120.15 : xmt/rcv/%loss = 1/0/100%

O fping pode ser instalado via gerenciador de pacotes da tua distribuição ou, no Debian, através do apt-get.

# apt-get install fping

quinta-feira, 20 de fevereiro de 2014

Futurologia

Depois de umas férias (e de alguns dias colocando o serviço em dia) volto a escrever. Como em todo ano, aqui vai meu exercício de  futurologia

Para esse ano
- Uso intenso de dispositivos móveis, como smartphones e tablets, com 3g;
- Uso de desktops na nuvem;
- Falta de profissionais de TI capacitados.

Em 1 ano
- Esqueça o desktop. Foque em dispositivos móveis;
- O uso de celular como forma de pagamento será popularizado;
- Todos os municípios brasileiros devem estar cobertos pela banda larga. A velocidade média será de 4Mbps;
- Jogos sociais devem movimentar R$700 milhões no Brasil, e U$30 bi no mundo;
- O número de empresas com infra na nuvem deve dobrar se comparado com 2012;
- Começará o desligamento da TV analógica.

Em 2 anos
- Será comum as empresas e as famílias guardarem dados na nuvem;
- Quase não haverá terceirização de profissionais de TI devido a nuvem;
- Os funcionário dependerão mais de um tablet, ou smartphone, do que do desktop para trabalhar;
- O IPv6 estará implantado em toda a Internet;
- Terminarão as transmissões analógica de TV no Brasil, e o sistema de TV 4k deve estar disponível

Em 5 anos
- Sistemas funcionarão por gestos, e não só por toques;
- A realidade aumentada será usada em larga escala;
- Computadores terão sensores de odores e poderão entender gestos e sons;
- A maioria dos aplicativos estarão na nuvem;
- O Linux será o principal sistema operacional no mundo, principalmente por causa do Android;
- A TV analógica será desligada em todo o país

Em 10 anos
- Sistemas ligados ao corpo monitorarão a saúde das pessoas;
- O total de dados armazenados no mundo deve chegar a 35 zettabytes;
- Todos os dispositivos eletrônicos estarão conectados em rede de alguma forma;
- A web terá mais conteúdo com inteligência artificial;
- Começará a venda de carros elétricos e open source;
- A vants, aviões não tripulados, serão usados para monitoramento pela polícia;
- Começarão a aparecer redes exclusivamente ipv6;

Em 20 anos
- Começará o uso de robôs para uso doméstico;
- Dois terços da população mundial sofrerá com a falta de água potável;
- Teremos internet home a 500Mbps;
- Micro domésticos terão 20Tb de dados;
- Os processadores devem chegar a velocidades de terahertz;
- Teremos ciborgues;
- Operações a distância serão mais comuns;
- Muitos voos não serão tripulados;
- O mundo deve ter 8 bilhões de habitantes;
- A Terra terá um défict de 40% de água potável, 50% de alimentos e 45% de energia;
- Todas as pessoas estarão conectadas de alguma forma com a Internet;
- Sistemas serão controlados por comandos de vôz e ondas cerebrais;
- As casas terão vários monitores embutidos nas paredes;
- Faremos exames simples automaticamente ao usar o banheiro;
- Teremos sensores que monitorarão nossa saúde, com os dados sendo enviados para uma central;
- Será raro comprar alguma coisa com dinheiro em papel moeda;
- As residência reciclarão o lixo que produzirem;
- Haverá carros comerciais movidos a água;
- A maior parte dos veículos deverá ser movida a eletricidade;
- Começará o uso de interfaces neurais no cérebro para controle de movimentos;

Em 50 anos
- A população do Brasil começará a diminuir;
- Teremos links de internet de 5Gbps em casa;
- Os computadores domésticos terão 500Tb de dados;
- A velocidade dos processadores pode chegar a petahertz;
- A temperatura média da Terra estará 5 graus acima se comparado a 2010;
- Haverá um conselho mundial das democracias complementando a ONU;
- Haverá prédios com mais de 1Km de altura;
- O mundo deverá ter 9,7 bilhões de pessoas;
- A Índia deverá ter 1,6 bilhões de habitantes, tornando-se o país mais populoso do mundo, superando a China com 1,3 bilhões;
- Haverá uma base em Marte;
- Será possível clonar humanos;

Em 100 anos
- Equipamentos serão controlados com a mente;
- Checkups de saúde poderão ser feitos diariamente ao escovar os dentes;
- Carros terão piloto automático;
- Haverá monitores integrados a lentes de contato, usando realidade aumentada;
- A temperatura da Terra pode aumentar em até 6,4º C se comparado com 2000;
- O nível do mar deve subir entre 26cm e 82cm desde 2005;
- O mundo dever ter entre 10 bilhões e 11 bilhões de pessoas;

quinta-feira, 19 de dezembro de 2013

Loop for em Bash

Em bash script também é possível fazer um loop usando o for.

#!/bin/bash
for i in 1 2 3
do
  echo $i
done 



Resultado:

1
2
3

Será feito a ação compreendida entre "do" e "done" para cada valor após o "in" que será armazenado na variável $i. Para fazer um ação em todos os arquivos:

#!/bin/bash
for i in *
do
  ls $i
done

Para contar de 1 até 100:

#!/bin/bash
for i in `seq 100`
do
  echo $i
done

Vamos supor que você queria descobrir o primeiro endereço ip da rede disponível. Você pode usar o "break" para parar o loop ao primeiro host que responder.

#!/bin/bash
for i in `seq 255`
do
  echo -n Testando 172.20.16.$i ...
  ping -c 1 172.20.16.$i 2>/dev/null >/dev/null
  if [ $? == 0 ]
  then
    echo "Host encontrado : " 172.20.16.$i
    break
  else
    echo .
  fi
done

Resultado:

Testando 172.20.16.1 ....
Testando 172.20.16.2 ....
Testando 172.20.16.3 ...Host encontrado :  172.20.16.3


sexta-feira, 13 de dezembro de 2013

Fliperama no Linux

Para quem gosta de fliperama, o Linux tem um joguinho bem legal. É o Emilia Pinball.


Há duas "máquinas" que você pode escolher. Use as teclas "shift" para mover os flips, "enter" para soltar a bolinha, e "espaço" para dar aquela famosa batidinha.

Para instalá-lo, digite:

# apt-get install pinball


Para executá-lo, digite "pinball" na linha de comando, ou acesse o ícone criado no grupo "Jogos" da interface gráfica.

quarta-feira, 4 de dezembro de 2013

Distribuição Linux Sernet já pode substituir o Active Directory

Você não precisa mais comprar uma licença do Windows Server para poder usar os recursos do Active Directory. A Sernet desenvolveu uma distribuição Linux que usa o Samba 4 para fazer o mesmo que o Active Directory da Microsoft. A distribuição pode ser baixada pelo endereço http://ftp.sernet.de/pub/samba4AD/sernet-samba4-appliance/

Entre os recursos da Sernet estão:
  • Baseado em Linux Debian;
  • Assistente para configuração do Samba 4 como um controlador de domínios;
  • Suporte a GPO;
  • Suporte a DNS NTP seguros;
  • Suporte ao Zarafa groupware.
No tutorial abaixo usei o VirtualBox para virtualizar uma máquina com 256Mb de memória para fazer a instalação e mostrar o funcionamento do Sernet. Após baixar a imagem iso e queimar o cd, dê boot no equipamento. A seguinte tela irá aparecer.
 

 Escolha "Install" e tecle ENTER.



A instalação não pergunta sobre o particionamento. Ela faz tudo sozinha. Portanto, tenha certeza de que esse equipamento é exclusivo para essa função, pois a instalação vai apagar todos os dados do disco antes de prosseguir. Escolha YES e tecle ENTER.


Após o sistema formatar as partições e copiar os dados, o equipamento será reiniciado e um assistente vai te ajudar a configurar o sistema. Escolha START SETUP e tecle ENTER.


Digite o nome do equipamento e tecle ENTER.


Digite o domínio e tecle ENTER.


Digite o nome NETBIOS do domínio. Geralmente é o nome padrão. Tecle ENTER.


Digite a senha que será usada pelo administrador e tecle ENTER.


Confirme a senha e tecle ENTER.


Escolha YES para configurarmos o DNS e tecle ENTER.


Entre com o ip do teu DNS. Aqui, digitei o do Google. Tecle ENTER.


Confira os dados e tecle ENTER.


Sistema instalado. Tecle ENTER para iniciar o Samba 4.


Tecle ENTER.


Se você possui o Zarafa, então pode configurar os schema do Ldap para ele agora. No nosso caso, escolha NO e tecle ENTER.


Digite a senha que será usada pelo usuários SERNET. Da próxima vez que ligar o equipamente, esse usuário deverá ser usado para logar. Tecle ENTER.



Confirme e senha e tecle ENTER.


É recomendável desabilitar o auto login. Tecle ENTER.


Um resumo da instalação. Tecle ENTER.


É aconselhável reiniciar o equipamento agora. Tecle ENTER.


Agora, você pode logar na máquina com o usuário "sernet". Para administrar o "Active Directory" você pode usar inclusive as ferramentas da Microsoft como faria com qualquer domínio Windows.

segunda-feira, 2 de dezembro de 2013

Cliente de FTP FileZilla

Ftp é um protocolo transferência de arquivos (File Transfer Protocol) muito utilizado, principalmente por empresas. Ele é usado para transferir arquivos de uma forma segura a controlada. Ela usa o conceito de cliente/servidor. E o melhor cliente de FTP que conheço é o FileZilla.



Ele tem suporte a:
  • FTPS e SFTP;
  • IPv6;
  • Mais de 40 linguages;
  • Transfere arquivos maiores do que 4Gb;
  • Pode pausar e continuar downloads e uploads;
  • Fácil de usar;
  • Pode gerenciar favoritos;
  • Arrastar e soltar;
  • Limitação de banda;
  • Filtros de nome de arquivo;
  • Comparação de diretórios;
  • Assistente para configuração;
  • Edição remota de arquivos;
  • Sincronização de arquivos/diretórios;
  • Pesquisa remota de arquivos;
  • Múltiplas seções em múltiplos servidores;
  • Multiplataforma.

Sua interface é tão intuitiva que dispensa maiores explicações. Do lado esquerdo estão as pastas e arquivo do meu computador, enquanto que do lado direito estão os do servidor. Ele pode ser instalado através do gerenciador de pacotes da tua distribuição Linux. No Debian e derivados, use:

# apt-get install filezilla


sexta-feira, 29 de novembro de 2013

Será que esse arquivo .txt é realmente um texto?

No mundo Windows, a extensão de um arquivo diz o tipo que ele é. Por exemplo, um .doc é um documento de texto do Word, .txt é um arquivo de texto puro do Bloco de Notas, etc. No Linux, apesar de também trabalhar com extensões, o sistema operacional tem outra forma de descobrir o tipo de arquivo. E o programa "file" mostra isso muito bem.

$ file 20131101.txt
20131101.txt: UTF-8 Unicode text

Acima, o arquivo 20131101.txt é um arquivo de texto unicode utf-8.

$ file ipv6-02.jpeg
ipv6-02.jpeg: JPEG image data, JFIF standard 1.01

Agora um arquivo jpeg.


$ file instalar.sh
instalar.sh: Bourne-Again shell script, UTF-8 Unicode text executable

Um script bash executável.

$ file disco1
disco1: data

Um arquivo do tipo data. 

$ file Livro.pdf
Livro.pdf: PDF document, version 1.4

Um pdf.

$ file teste.iso
teste.iso: data

Outro data.

Agora, se eu renomear o arquivo Livro.pdf para Livro.txt, o que será que o "file" vai mostrar?

$ cp Livro.pdf Livro.txt
$ file Livro.txt
Livro.txt: PDF document, version 1.4

Apesar do arquivo ter extensão .txt, vemos que ele é, nas verdade, um pdf.

quinta-feira, 28 de novembro de 2013

Multitarefa sem ambiente gráfico

Muita gente não sabe, mas é possível trabalhar com várias tarefas ao mesmo tempo no Linux sem usar o ambiente gráfico. Vou mostrar neste pequeno artigo como trabalhar com várias aplicações diferentes ao mesmo tempo, no modo texto, e como alternar entre elas.

Primeiramente, vamos abrir um editor de texto qualquer.

$ nano text.php


Agora tecle CTRL + Z.


Reparem que o serviço foi parado. Ele ainda está na memória, mas está congelado, conforme podemos ver com o comando ps


Reparem no número entre []. Esse é o número da tarefa que colocamos em segundo plano. Vamos iniciar uma segunda tarefa em segundo plano. Para isso, usamos "&" ao final do comando.


Para alterarmos entre as tarefas, basta usar o comando "fg" seguido do número da tarefa. Podemos também colocar uma tarefa em segundo plano com o comando "bg". Por exemplo, para fazer um download, podemos chamar o comando "links" para navegar através do site e começar o download. Após, tecle "CTRL + Z". A tarefa vai ser congelada. Execute então "bg" e a tarefa vai continuar em segundo plano. Para voltarmos ao "links" basta digitar "fg" seguido do número da tarefa.

Uso isso quando vou conectar máquinas via vnc. Após a conexão, digito "CTRL + Z" no terminal e depois "bg", liberando o terminal para outras tarefas.






terça-feira, 26 de novembro de 2013

Conversão de arquivos de midia com ffmpeg

Se você está com problemas para assitir, ouvir, ou converter arquivos de mídia, como audio e video, experimente o ffmpeg.


O ffmpeg é uma espécie de faz-tudo para audio e video. Ele consegue converter de e para os mais variados formatos de video/audio. Seu uso é simples:

# ffmpeg -i arquivo_origem arquivo_final

O software identifica o formato de origem e converte para o formato especificado na extensão do nome do arquivo. No exemplo abaixo eu converti um arquivo wmv para avi.

# ffmpeg -i Californiadreaming.wmv California.avi

Se você possui vários clipes que gostaria de ouvir em seu mp3, o ffmpeg também pode converter arquivos de video para vários formatos de audio.

# ffmpeg -i Californiadreaming.wmv California.mp3

Mas não se engane com a simplicidade da ferramenta. Ele possui opções que não acabam mais. No exemplo abaixo eu converti o video para o formato FullHD.

# ffmpeg -i Californiadreaming.wmv California.vob -s hd1080

O formato 4k (6400x4096) também já é suportado através da opção -s whuxga.

O ffmpeg já vem em muitas distribuições, pois é o backend de várias aplicações gráficas. Mas, caso não esteja instalada, basta usar o comando:

$ apt-get intall ffmpeg

Para mais opções, veja a página de manual.

$ man ffmpeg