sábado, 25 de junho de 2011

Diferença entre UNIX e LINUX

O Unix é um sistema operacional utilizado em mainframes, ou seja, em computadores de grande porte. Para o Unix funcionar direito requer muita memória e uma placa gráfica muito boa para poder suportar os modelos 3D e com isso os preços sobem muito. A maioria das empresas automobilísticas e aeronáuticas utilizam o Unix para o desenvolvimento de Produto e Projetos.

Já o Linux é uma derivação do Minix que veio do Unix, um Sistema Operacional criado para rodar em equipamentos que não necessitam de tanto desempenho.

quarta-feira, 22 de junho de 2011

Características do Linux


O Linux é um sistema multi-usuário. Isso significa que é possível ter várias contas de usuário no mesmo sistema cada um tendo sua própria área no disco rígido sem interferir na área dos outros. É possível também definir áreas de compartilhamento e grupos de usuário, em que usuários do mesmo grupo podem ter acesso aos mesmos dados em uma área comum.

O Linux também é um sistema multitarefa, o que significa que os usuários podem executar vários aplicativos ao mesmo tempo.
Dentro do sistema, o usuário com maior poder administrativo é o root. Seu uso é recomendado apenas para tarefas administrativas, como instalação e remoção de softwares. Outros usuários podem ser criados com qualquer outro nome, durante ou depois da instalação, no terminal texto ou pelas ferramentas administrativas da distribuição.
O sistema também permite conexão simultânea de vários usuários, por rede ou localmente, abrindo vários terminais ou usando mais de um monitor e teclado/mouse adicionais.
Para conseguir isso, o sistema utiliza o conceito de sessões de usuários, que gerenciam a memória de cada processo de aplicativo carregado pelos usuários, garantindo assim que um programa iniciado por um usuário não interfira no processamento do programa de outro.
Em uma instalação Linux, o mesmo usuário pode abrir várias sessões, tanto sessões de terminal texto como sessões de terminal gráfico.
No Linux, o sistema de diretórios e arquivos começa na raiz /. Abaixo dela é possível achar os diretórios dos usuários, das configurações globais, dos programas instalados e dos dispositivos disponíveis no computador. Essa estrutura foi inspirada no Unix e é usada em quase todas as distribuições Linux.
Diferentemente de sistemas como o Microsoft Windows, que utilizam um registro para guardar as configurações de sistema e de usuário, toda a configuração do Linux é baseada em arquivos texto.
As configurações globais que valem para todos os usuários do sistema, como a de rede (endereço de ip, gatway e DNS), ficam em arquivos texto no diretório /etc. Já as configurações específicas de cada usuário, como o papel de parede, ficam dentro do diretório pessoal, localizado em /home/usuario, onde usuario é o nome do usuário usado para iniciar a sessão.
Para os usuários avançados, esta forma de configurar o sistema é bastante útil. Leva-se bastante tempo para entender os arquivos e configurar o sistema, mas é possível configurar o software minuciosamente para ser executado da maneira desejada, e em caso de panes no sistema como a falha de um disco rígido, basta reinstalar o Linux e restaurar o backup da pasta /etc e /home que tudo voltará ao normal.
Os dispositivos de hardware, como mouse, HDs e partições são representados como arquivos no sistema no diretório /dev.
O arquivo de dispositivo /dev/input/mice refere-se ao mouse. Sempre que um programa precisar do mouse ele irá procurar este arquivo.
O arquivo /dev/sda refere-se ao primeiro HD do tipo SATA, e /dev/hdb ao segundo HD do tipo IDE.
Para partições, o arquivo /dev/sda0 refere-se à primeira partição no primeiro HD do tipo SATA, enquanto o arquivo /dev/sda1 refere-se à segunda partição no primeiro HD do tipo SATA. Arquivos como /dev/sdb0 e /dev/hdb0 também são válidos.
No Windows, unidades de disco são representados por letras, como C:, D:, E: etc. No Linux essas unidades são “montadas” em diretórios vazios dentro do diretório raiz (/), chamados de pontos de montagem.
Por exemplo:
A primeira partição onde está instalado o Linux se encontra em /dev/sda0, arquivo que pode ser entendido como: a primeira partição (0) do primeiro HD do tipo SATA (sd a). Essa partição é montada no diretório raíz (/), o primeiro ponto de montagem.
Um segundo HD, /dev/sdb, pode ser instalado no computador e “montado” no diretório /home, onde ficam os arquivos dos usuários. A sua primeira partição (/dev/sdb0), deveria neste caso ser montada no diretório /home.
Assim, sempre que um usuário acessar algum subdiretório de /home estará, na realidade, acessando arquivos do segundo disco rígido.
Pontos de montagem podem ser carregados durante a inicialização do sistema, através do arquivo /etc/fstab que lista os pontos de montagem, ou manualmente. O usuário pode montar a sua partição do Windows dentro do Linux, caso o primeiro esteja instalado na mesma máquina, ou então montar dispositivos removíveis, como pen drivers e iPods, e desmontá-los ao final do uso.


Fonte: http://informatica.hsw.uol.com.br/linux2.htm

terça-feira, 21 de junho de 2011

Por que o Linux não pega vírus?

-O Linux possui um sistema de autenticação como root (administrador) que para executar qualquer ação administrativa é necessário colocar uma senha.

-O Linux não executa .exe, a não ser no wine.

Então se você quiser enviar um vírus para o Linux, se for executável não acontece nada! Se tentar enviar um arquivo com um script próprio para linux que seja vírus ele não conseguirá se instalar, pois vai pedir a senha e só se tu for muito burro e responder sim na mensagem: " deseja instalar este vírus?"

-O wine é uma espécie de emulador para rodar programas do windows no linux, se por acaso você baixar um vírus pelo wine no IE ou firefox, ele não vai conseguir fazer grandes estragos pois o wine vai pedir senha também.

- O linux é um sistema muito estável e seguro, o problema é que a maioria ainda pensa que linux é por linha de comando.

Além disso, mais de 90% dos servidores da internet usam linux, a própria Microsoft usa Linux nos seus servidores. Ou seja, sem linux a internet não existiria!
O Wine está recebendo um forte apoio do Google e logo vai rodar qualquer programa do windows no linux! Linux já roda vários programas como Photoshop, Adobe flash, dreamweaver, etc.

-Usa-se Linux todo o dia quando vai ao banco, a lotérica, usa o celular ou o mp3/4!

Acredito que 5 anos mais ou menos a Microsoft vai redirecionar suas vendas para hardware, como teclados e mouses, como aconteceu nos anos 70 quando o Bill Gates roubou o sistema de janelas do Steve Jobs (Mac) e largou muito na frente do Mac!

Os antivírus e firewalls que existem para linux é para usar linux como servidor, o linux não é afetado, mas sim as páginas que estão hospedadas nele que por imprudência dos webmasters esquecem da segurança da página!

Ainda o antivírus que vem com linux, é para limpar o windows!

Características do Unix

Sistema operacional multitarefa

Multitarefa significa executar uma ou mais tarefas ou processos simultaneamente. Na verdade, em um sistema monoprocessado, os processos são executados seqüencialmente de forma tão rápida que parecem estar sendo executados simultaneamente. O Unix escalona sua execução e reserva-lhes recursos computacionais (intervalo de tempo de processamento, espaço em memória RAM, espaço no disco rígido, etc.).
O Unix é um sistema operacional de multitarefa preemptiva. Isso significa que, quando esgota-se um determinado intervalo de tempo (chamado quantum), o Unix suspende a execução do processo, salva o seu contexto (informações necessárias para a execução do processo), para que ele possa ser retomado posteriormente, e coloca em execução o próximo processo da fila de espera. O Unix também determina quando cada processo será executado, a duração de sua execução e a sua prioridade sobre os outros.
A multitarefa, além de fazer com que o conjunto de tarefas seja executado mais rapidamente, ainda permite que o usuário e o computador fiquem livres para realizarem outras tarefas com o tempo economizado.

Sistema operacional multiutilizador

Uma característica importante do Unix é ser multiusuário (multiutilizador). Bovet e Cesati [4] definem um sistema multiusuário como "aquele capaz de executar, concorrente e independentemente, várias aplicações pertencentes a dois ou mais usuários". O Unix possibilita que vários usuários usem um mesmo computador simultaneamente, geralmente por meio de terminais. Cada terminal é composto de um monitor, um teclado e, eventualmente, um mouse. Vários terminais podem ser conectados ao mesmo computador num sistema Unix. Há alguns anos eram usadas conexões seriais, mas atualmente é mais comum o uso de redes locais, principalmente para o uso de terminais gráficos (ou terminais X), usando o protocolo XDMCP.
O Unix gerencia os pedidos que os usuários fazem, evitando que um interfira com outros. Cada usuário possui direitos de propriedade e permissões sobre arquivos. Quaisquer arquivos modificados pelo usuário conservarão esses direitos. Programas executados por um usuário comum estarão limitados em termos de quais arquivos poderão acessar.
O sistema Unix possui dois tipos de usuários: o usuário root (também conhecido como superusuário), que possui a missão de administrar o sistema, podendo manipular todos os recursos do sistema operacional; e os usuários comuns, que possuem direitos limitados.
Para que o sistema opere adequadamente em modo multiusuário, existem alguns mecanismos: (i) um sistema de autenticação para identificação de cada usuário (o programa login, p.ex., autentica o usuário verificando uma base de dados, normalmente armazenada no arquivo /etc/passwd); (ii) sistema de arquivos com permissões e propriedades sobre arquivos (os direitos anteriormente citados); (iii) proteção de memória, impedindo que um processo de usuário acesse dados ou interfira com outro processo. Esse último mecanismo é implementado com a ajuda do hardware, que consiste na divisão do ambiente de processamento e memória em modo supervisor (ou modo núcleo) e modo usuário.

Arquivos de dispositivo

Uma característica singular no Unix (e seus derivados) é a utilização intensiva do conceito de arquivo. Quase todos os dispositivos são tratados como arquivos e, como tais, seu acesso é obtido mediante a utilização das chamadas de sistema open, read, write e close.
Os dispositivos de entrada e saída são classificados como sendo de bloco (disco, p.ex.) ou de caractere (impressora, modem, etc.) e são associados a arquivos mantidos no diretório /dev (v. detalhamento mais adiante).

10 motivos para usar o Linux

Motivo 1: Um dos pontos principais do Linux é sua liberdade de escolha entre suas distribuições, além de que todas elas são totalmente gratuitas. Você não precisa ter medo de violar patentes ou algum tipo de pirataria, porque o Linux fica sobre proteção da licença GNU GPL.
Motivo 2: O sistema operacional é bem estável, muito difícil de acontecer algum travamento com seu sistema, além de ter uma performance de alto nível. Na maioria dos casos de travamento a culpa quase nunca é do sistema, e sim do hardware.
Motivo 3: Em termos de segurança, não existe outro sistema operacional tão seguro quanto o Linux. As poucas vulnerabilidades que possam existir no Linux, a arquitetura e a concepção do sistema, consegue fazer sua correção rapidamente para que não possa afetar seu computador.
Motivo 4: Em termos de rede, o Linux além de confiável, ele consegue suportar quase todos os tipos de redes existentes como, por exemplo: TCP/IPISPX/SPXISDNSLIPPPPPLIPApple Tal Protocol Suite, etc.
Motivo 5: Sua facilidade de instalação também chama atenção de seus usuários iniciantes. Ela possui uma interface bem amigável na hora de sua instalação além de conter várias línguas, incluindo o nosso português.
Motivo 6: O Linux também possui uma grande flexibilidade na hora de sua instalação, no ato da instalação você consegue fazer uma customização do seu sistema com o que realmente você vai usar e o que realmente te interessa.
Motivo 7: O Linux possui também um grande suporte com suas atualizações gratuitas para seu sistema. Fazendo seu sistema ficar sempre atualizado, e sempre com mais segurança e desempenho.
Motivo 8: Usando seu HD ao máximo, o Linux é um sistema que usa bit por bit seu HD sem deixar um bit se quer para traz.
Motivo 9: Com sua vasta espação, você encontrar milhares ou se não milhões de técnicos pela internet que possam fazer seu suporte. Isso conta com, usuários dispostos a te ajudar, os técnicos de verdade, entre outros tipos de pessoas que querem ajudar uns aos outros.
Motivo 10: E por fim, sua confiança é grande de tal forma, que empresas como HP, Shell, Cisco, IBM e até governos de alguns estados estão usando ou já estão em faze de migração para seu sistema operacional Linux.


Fonte: http://www.guiadoleigo.com.br/10-motivos-para-usar-linux

Aprenda a instalar programas do Windows no Linux

Apesar de serem plataformas distintas, é possível rodar jogos ou programas da Microsoft em seu Linux, mesmo sem ter o Windows instalado em sua máquina. Para isso, basta instalar o Wine, um aplicativo que fará todo o trabalho necessário para executar seus softwares prediletos em outros sistemas operacionais.
Antes de tudo, é necessário entender que o Wine não é um emulador de Windows. O próprio programa se propagandeia que “Wine is not an emulator” (Wine não é um emulador, em tradução livre). Na verdade, ele atua como uma camada de compatibilidade, executando os softwares de maneira muito similar à plataforma da Microsoft. E por não ser um emulador, inclusive, não é necessário abrir o Wine antes de executar qualquer aplicativo.
Por estar em outra plataforma, é importante entender que o Wine não é perfeito e não possui 100% de compatibilidade com os softwares da Microsoft. Além disso, podem haver algumas ligeiras quedas de rendimento com alguns arquivos mais pesados, como jogos, por exemplo. Entretanto, este é um dos mais eficientes aplicativos para se executar programas de outra plataforma no Linux, sendo o mais indicado por usuários mais experientes. Confira o tutorial que o TechTudo preparou para você e saiba como usá-lo:

Passo 1. Copie o Wine para o seu sistema através do link de download do Baixatudo;
Passo 2. Com o Wine já em seu Linux, descompacte-o utilizando o comando:
# tar xvfz Wine-20020122.tar.gz (ajuste o nome do arquivo para as versões mais recentes, se for o caso);
Passo 3. Instale o software utilizando os seguintes comandos:
# ./configure
# make depend && make
# make install
Pronto! O Wine já está instalado em seu computador. Entretanto, para instalar ou rodar os programas da Microsoft em seu Linux será preciso sempre digitar o seguinte comando antes de executá-los:
Wine "nome do programa que você quer rodar".
Como explicamos anteriormente, não é preciso abrir o Wine antes de executar os softwares.

Distribuições do Linux

Não existem versões no Linux e sim sistemas operacionais baseados nele. Cada um desses SO tem características diferentes, mas seguem o mesmo núcleo, usando o Kernel do Linux. Algumas dessas distribuições são:
  •  Conectiva (versão brasileira da Mandriva)
  •  Kurumin
  •  Debian BR CDD
  •  Debian
  •  Fedora
  •  Gentoo
  •  Knoppix
  •  Mandriva
  •  Red Hat
  •  Slackware
  •  SUSE
  •  Ubuntu
  •  Yellow Dog Linux (para Mac)
Dentre essas versões, a mais conhecida aqui no Brasil é o Kurumin.  O Kurumin foi uma distribuição Linux desenvolvida pela equipe do Guia do Hardware e colaboradores, com o objetivo de ser um sistema fácil de usar, voltado especialmente para iniciantes e ex-usuários do Windows. Originalmente o Kurumin foi desenvolvido com base no Knoppix, passando em seguida a utilizar também componentes do Kanotix e outros projetos, além de ser baseado nos pacotes do Debian. Todos os componentes e scripts usados são abertos, o que possibilitou também o surgimento de versões modificadas do sistema.

Apesar de ter feito um grande sucesso e ter sido durante algum tempo uma das distribuições mais usadas no país, o projeto acabou falhando em atrair um grupo de desenvolvedores interessados em participar de forma ativa do desenvolvimento. Este e outros fatores (entre eles a justificada cobrança em torno de novos recursos e melhorias) acabaram fazendo com que o projeto fosse descontinuado em janeiro de 2008. O Kurumin continuou recebendo suporte e pequenas atualizações ao longo de 2008 e início de 2009, acompanhando o ciclo de vida do Debian Etch, no qual o sistema é baseado.

O lançamento do Debian Lenny em 15/02/2009 marcou o fim do ciclo de manutenção do Kurumin 7, marcando o encerramento do suporte ao sistema. É possível também atualizar o Kurumin 7 em relação ao Lenny, de forma que você possa ter acesso às novas versões dos pacotes sem precisar mudar de sistema. Isso permite que você continue usando o Kurumin 7, atualizando-o em relação às novas versões do Debian, até que se sinta confortável em mudar de distribuição.


Entre março de 2008 e janeiro de 2009 foi feita uma desastrada tentativa de continuação por parte de Leandro Soares, que acabou ridicularizando o nome do projeto. Devido a isso, novas propostas de continuidade passaram a ser polidamente rejeitadas. Com o encerramento do projeto, recomendamos o uso do Debian Lenny e de outras distribuições bem estabelecidas, como o Ubuntu, o Kubuntu e o Mandriva.


Fontes: http://www.tecmundo.com.br/tira-duvidas/36979
http://www.hardware.com.br/kurumin/

terça-feira, 14 de junho de 2011

Curiosidades do Linux

Controvérsias quanto ao nome
Linux foi o nome dado ao núcleo de sistema operacional criado por Linus Torvalds. Por extensão, sistemas operacionais que usam o núcleo Linux são chamados genericamente de Linux. Entretanto, a Free Software Foundation afirma tais sistemas operacionais são, na verdade, sistemas GNU, e o nome mais adequado para tais sistemas é GNU/Linux, uma vez que grande parte do código-fonte dos sistemas operacionais baseados em Linux são ferramentas do projeto GNU.
Há muita controvérsia quanto ao nome. Eric Raymond afirma, no Jargon File, que a proposta da FSF só conseguiu a "aceitação de uma minoria" e é resultado de uma "disputa territorial".Linus Torvalds afirma que consideraria "justo" que tal nome fosse atribuído a uma distribuição do projeto GNU, mas que chamar os sistemas operacionais Linux como um todo de GNU/Linux seria "ridículo".Linus disse não se importar sobre qual o nome usado, considera a proposta da GNU como "válida" ("ok") mas prefere usar o termo "Linux".

Sobre o símbolo
O símbolo do software foi escolhido pelo seu criador(Linus Torvalds),que um dia estava no zoológico e foi surpreendido pela mordida de um pinguim.Fato curioso e discutido até hoje. 
Em 1996, muitos integrantes da lista de discussão "Linux-Kernel" estavam discutindo sobre a criação de um logotipo ou de um mascote que representasse o Linux. Muitas das sugestões eram paródias ao logotipo de um sistema operacional concorrente e muito conhecido (Windows). Outros eram monstros ou animais agressivos. Linus Torvalds acabou entrando nesse debate ao afirmar em uma mensagem que gostava muito de pingüins. Isso foi o suficiente para dar fim à discussão.
Depois disso, várias tentativas foram feitas numa espécie de concurso para que a imagem de um pingüim servisse aos propósitos do Linux, até que alguém sugeriu a figura de um "pingüim sustentando o mundo". Em resposta, Linus Torvalds declarou que achava interessante que esse pingüim tivesse uma imagem simples: um pingüim "gordinho" e com expressão de satisfeito, como se tivesse acabado de comer uma porção de peixes. Torvalds também não achava atraente a idéia de algo agressivo, mas sim a idéia de um pingüim simpático, do tipo em que as crianças perguntam "mamãe, posso ter um desses também?". Ainda, Torvalds também frisou que trabalhando dessa forma, as pessoas poderiam criar várias modificações desse pingüim. Isso realmente acontece. Quando questionado sobre o porquê de pingüins, Linus Torvalds respondeu que não havia uma razão em especial, mas os achava engraçados e até citou que foi bicado por um "pingüim assassino" na Austrália e ficou impressionado como a bicada de um animal aparentemente tão inofensivo podia ser tão dolorosa.

terça-feira, 10 de maio de 2011

Continuação dos Comandos do Unix

Comandos para manipulação de arquivos

cat - Mostra o conteúdo de um arquivo binário ou texto 
tac - Semelhante ao cat mas inverte a ordem
tail - Mostra as últimas linhas de um arquivo. Ex: tail -f <arquivo> Útil para visualizar arquivos de log continuamente.
head - Mostra as primeiras linhas de um arquivo. Ex: head -100 visualiza as 100 primeiras linhas do arquivo. 
less - Mostra o conteúdo de um arquivo de texto com controle 
vi - Editor de ficheiros de texto 
vim - Versão melhorada do editor supracitado 
rm - Remoção de arquivos (também remove diretórios, mas com o parâmetro -r, que significa recursividade) 
cp - Copia diretórios 'cp -r' copia recursivamente
mv - Move ou renomeia arquivos e diretórios 
chmod - Altera as permissões de arquivos ou directórios 
chown - Altera o dono de arquivos ou directórios cmd>txt - Cria um novo arquivo(txt) com o resultado do comando(cmd) cmd>>txt - Adiciona o resultado do comando(cmd) ao fim do arquivo(txt)
touch touch foo.txt > arquivo.txt - Mais rápido que o touch para criação de arquivos split - Divide um arquivo 
recode - Recodifica um arquivo ex: recode iso-8859-15..utf8 file_to_change.txt 
Comandos para administração
man - Mostra o manual do comando.adduser - Adiciona usuários. O useradd pode também ser usado.addgroup - Adiciona grupos. o group add pode também ser usado.apropos - Realiza pesquisa por palavra ou stringdmesg - Exibe as mensagens da inicialização(log)
du - Exibe estado de ocupação dos discos/partições
find - Comando de busca ex: find ~/ -cmin -3userdel - Remove usuáriosusermod - Modifica informações de um determinado usuário.groupmod - Modifica informações de um determinado grupo.chfn - Altera informação relativa a um utilizadorwho - Informa quem está logado no sistema.em algumas versões do linux, o comando w pode ser usado, e retorna informações mais detalhadas, como o shell do usuário.whoami - Informa com qual usuário você está logadopasswd - Modifica senha (password) de usuáriosumask - Define padrões de criação de arquivos e diretórios
ps - Mostra os processos correntesps -aux - Mostra todos os processos correntes no sistema
kill - Mata um processokillall - Mata todos os processos com o nome informado
su - Troca para o super-usuário root (é exigida a senha)su user - Troca para o usuário especificado em 'user' (é exigida a senha)chown - Altera o proprietário de arquivos e pastas (dono)
Comandos para administração de rede
ifconfig - mostra as interfaces de redes ativas e as informações relacionadas a cada uma delas
route - Mostra as informações referentes as rotas
mtr - Mostra rota até determinado IP
netstat - Exibe as portas e protocolos abertos no sistema.
iptraf - Analisador de trafego da rede com interface gráfica baseada em diálogos
tcpdump - Sniffer muito popular. Sniffer é uma ferramenta que "ouve" os pacotes que estão passando pela rede.
traceroute - Traça uma rota do host local até o destino mostrando os roteadores intermediários
nslookup - Consultas a serviços DNS 
dig - Consultas a serviços DNS

terça-feira, 3 de maio de 2011

Comandos do Unix

Esta é uma lista de programas de computador para o sistema operacional Unix e os sistemas compatíveis, como o Linux. Os comandos do Unix tornam-se acessíveis ao usuário a partir do momento em que ele realiza o login no sistema. Se o usuário utiliza tais comandos, então ele se encontra no modo shell, também chamado de modo texto (ou Unix tradicional). Quando estiver utilizando o modo gráfico, o usuário também poderá se utilizar de tais comandos desde que abra uma janela de terminal (Xterm).
A linha de comando do sistema operacional Unix permite a realização de inúmeras tarefas através de seus comandos, de manipulação de arquivos a verificação do tráfego em rede. Para exibir uma descrição detalhada de cada comando abra uma console ou xterm e digite man comando, onde comando é o comando em questão.

Comandos de manipulação de diretório


mkdir - Cria um diretório vazio exemplo: mkdir docs
rmdir - Exclui um diretorio (se estiver vazio)
rm -rf - Exclui um diretório e todo o seu conteúdo (cuidado com este comando)
cd - Entra num diretório (exemplo: cd docs) ou retorna para HOME
cd / - Muda para o diretório raiz
cd ~ - vai direto para o diretório home do usuário logado.
cd - - volta ao último diretório acessado
pwd - Exibe o local do diretório atual
ls - Lista o conteúdo do diretório
ls -alh - Mostra o conteúdo detalhado do diretório
ls -a - Exibe os arquivos "ocultos" do determinado diretório.
ls -ltr - Mostra os arquivos no formado longo(l) em ordem inversa(r) de data (t)
df - Mostra a utilização dos sistemas de arquivos montados
du -msh - Mostra o tamanho do diretório em Megabytes
whereis - Mostra onde se encontra determinado arquivo (binários) exemplo: whereis samba

Continua no próximo post (...)

terça-feira, 26 de abril de 2011

HISTÓRIA DO LINUX

O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual contaremos sua história agora, para que você entenda melhor a do Linux.

A origem do Unix tem ligação com o sistema operacional Multics, projetado na década de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A intenção era de que o Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador), sendo assim, o sistema mais arrojado da época. Em 1969, já exisita uma versão do Multics rodando num computador GE645.] 

Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas ele continuou seus estudos no sistema. Desde então, sua idéia não era continuar no Multics original e sim criar algo menor, mas que conservasse as idéias básicas do sistema. A partir daí, começa a saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse nome. 

Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, rescreveu todo o sistema Unix numa linguagem de alto nível, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitação por usuários externos à Bell Labs. 

Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito caro e é usado em computadores poderosos (como mainframes) por diversas multinacionais. 

Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds? 

Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do “zero” e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente. 

A partir daí, “entra em cena” Linus Torvalds. Ele era um estudante de Ciências da Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994 disponibilizou a versão 1.0. Até o momento em que este artigo estava sendo escrito, a versão atual era a 2.6. 

O Linux é um sistema operacional livre e é uma re-implementação das especificações POSIX (padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com extensões System V e BSD. Isso signfica que o Linux é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma. 


Mas porque o Linux é gratuito? 

Linus Torvalds, quando desenvolveu o Linux, não tinha a inteção de ganhar dinheiro e sim fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de desenvolvimento que foi adotado foi o de ajuda coletiva. Ou seja, ele coordena os esforços coletivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor. 

Licença GPL 

O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que estão sob ela, com o compromisso de não tornar os programas fechados e comercializados. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercialiazá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo. 

GNU 

Mas a história do Linux não termina por aqui. É necessário também saber o que é GNU. GNU é um projeto que começou em 1984 com o objetivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da idéia, resolveu deixar seu kernel dentro da mesma licença. 

Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional. 

Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU? Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há quem defenda o uso de GNU/Linux). 

Finalizando, o projeto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à “mistura” de seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro sistema.

quinta-feira, 21 de abril de 2011

Dispositivos e Partições no Linux

Nesse post tentarei colocar de uma maneira simples, rápida e fácil, dicas de como lidar com suas partições e dispositivos. Procurarei manter sempre uma comparação com o Windows para ninguém se perder.

HDs
Diferente do que acontece no Windows, no Linux vê-se todos os dispositivos como colaboradores do sistema, e estes serão encontrados no diretório /dev . Sendo assim, se seu modem estiver na COM 2, no Linux ele aparecerá no diretório /dev/ttyS1 , e assim por diante. Como estamos falando de discos, farei uma rápida tabelinha para orientação.

Bios Windows Linux
Primário MasterC:/dev/hda
Primário SlaveD:/dev/hdb
Secundário MasterE:/dev/hdc
Secundário SlaveF:/dev/hdd

Claro que neste caso estamos falando de disco IDE. Para cada particão criada em um disco, diferente do Windows que gera um novo nome para a partição, o Linux da um número a mesma. Vamos imaginar que trabalharemos com o primário master ou como chamaremos sempre a partir de agora hda. Vamos supor que temos um HD de 10Gb, o dividimos em 3 partições, uma de 256Mb pra swap, uma de 4Gb para o root ("../xml/introducao-xml//"), e o resto para o /usr. Com isso seu disco ficará da seguinte forma.
/dev/hda1
/dev/hda2
/dev/hda3
Existe ainda um porém, caso queira acessar arquivos em um sistema com formato diferente do ext2, tipo uma partição Windows (vfat), DOS (msdos), CD-ROM (iso9660, joliet), entre outros, será necessário ter um kernel compilado com suporte a esses formatos.
Por exemplo, para montar sua partição Windows (vfat) localizada em /dev/hda1 use o comando:
mount -t vfat /dev/hda1 /mnt/windows
Outro ponto importante é dizer ao mount qual o tipo de partição ele está montando com a opção "-t", os tipos padrões são:
  • vfat: para partições Windows com FAT16 ou FAT32
  • msdos: para partições DOS
  • iso9660: para alguns CD-ROMs
  • joliet: também utilizado para CD-ROMs
Fiz essa introdução, para que todos pudessem entender como é o sistema de utilização de discos no 1 .

CD-ROMs e floppys
Agora, falaremos como usar seu CD-ROM no Linux. Primeiro verifique onde está o seu CD-ROM. Digamos que esteja no hdc. Existem várias maneiras de acessá-lo. A primeira, na mão com o comando: mount -t iso9660 /dev/hdc /mnt/cdrom . A outra é, adicionando essa linha ao arquivo /etc/fstab :
/dev/hdc /cdrom iso9660 defaults,ro,user,noauto 0 0
E para montar o CD-ROM basta dar o comando: mount /mnt/cdrom ou mount /dev/hdc . O Linux verifica para ver se existe essa entrada no fstab e a monta. O comando mount só pode ser usado pelo super-usuário (root). Uma vez montado o cd-rom, qualquer usuário pode utilizá-lo, com as devidas permissões de uso. Quando o seu CD-ROM estiver montado, não será possível tirar o CD do driver, isto porque é incorreto fazê-lo enquanto o cd estiver sendo lido. Muitas pessoas falam: "Ahh, mais meu Windows faz isso!"../xml/introducao-xml/. Realmente, ele faz, mas a própria Microsoft, em um comunicado, diz que não se responsabiliza por danos causados pelo fato do CD estar sendo lido e um usuário abrir o driver. Para poder tirar o cd do driver é preciso desmontar o CD-ROM com o comando: umount /mnt/cdrom ou umount /dev/hdc . Feito isso, pode-se tirar o cd do driver.
Com o disquete também não é diferente, a diferença é onde o disquete fica no diretório /dev . Geralmente é no /dev/fd0 , pode-se montá-lo na mão ou então criar a entrada no /etc/fstab :
dev/fd0 /floppy auto defaults,user,noauto 0 0
Existem alguns programas que se dispõe a montar seus discos e outros dispositivos automaticamente, como o automount. Isso ajuda bastante se existem muitos usuários na máquina, se não quiser dar permissões de root para os mesmos. Ou pode-se adicioná-los no grupo do CD-ROM e do floppy também. O problema de programas como o automount é que ele realmente monta o dispositivo quando precisa ser utilizado, mas não sabe a hora correta de desmontá-lo, no próprio automount-HOWTO tem um script para fazer isso. Caso queira dar uma olhada vá em http://linuxdoc.org/HOWTO/mini/Automount.html .

terça-feira, 12 de abril de 2011

Permissões de arquivos no Linux

"O Linux é um sistema multiusuário". Você já deve ter ouvido esta frase muitas vezes. Isto significa que um mesmo PC ou servidor pode ser acessado por vários usuários simultâneamente.
Com isto, surge a necessidade de algum sistema de segurança que limite o que cada usuário pode fazer no sistema, para que não haja o risco de que um usuário possa destruir arquivos ou configurações do sistema ou de outros usuários.
Isto é feito através das permissões de arquivos. Clicando sobre as propriedades de qualquer arquivo no konqueror você verá uma janela com 9 campos, que permitem dar permissão de leitura, gravação e execução (que alguém traduziu para "inserir" na versão em Português :-) para o usuário dono do arquivo, para outros usuários que pertencem ao mesmo grupo que ele e finalmente a todos os demais usuários. O "dono" do arquivo é por default o usuário que criou o arquivo. Apenas este usuário pode alterar as permissões de acesso ao arquivo e pasta. Em seguida vem o grupo, que permite que vários usuários tenham acesso a um arquivo ou pasta, sem ter que apelar para o campo "outros" que daria acesso a qualquer um. Imagine que estamos configurando um servidor em uma empresa importante e neste servidor temos uma pasta chamada "projeto_apollo" com vários arquivos confidenciais que deverá ser acessada apenas pelos programadores que estão trabalhando no projeto. Desativaríamos de imediato o campo "todos" mantendo marcados apenas os campos "usuário" e "grupo". O próximo passo seria justamente criar um novo grupo de usuários ("apollo" por exemplo) e incluir neste grupo todos os usuários que fazem parte do projeto. A partir daí, todos os programadores passariam a ter acesso à pasta, já que fazem parte do grupo. Você pode criar novos grupos e adicionar usuários a eles através do programa "kuser" que faz parte do KDE e por isso é encontrado em quase todas as distribuições. Basta chama-lo pelo terminal.Basta clicar em "Grupo > Novo", fornecer o nome do novo grupo e em seguida clicar no botão "Edit" para marcar os usuários que farão parte dele. Caso o kuser não esteja instalado no seu sistema, uma segunda opção é o "userconf". No Mandrake você pode utilizar também o "userdrake". Você pode criar quantos usuários e quantos grupos quiser, e cada usuário pode fazer parte de quantos grupos for necessário. Ou seja, você pode por exemplo criar um grupo para cada pasta importante e adicionar no grupo apenas os usuários que tiverem acesso a ela. De fato, a configuração default da maioria das distribuições linux atuais é dar acesso de leitura para a maioria das pastas (com excessão naturalmente dos arquivos de senha e outros arquivos críticos) para todos os usuários, mas ao mesmo tempo dar acesso de gravação apenas para o diretório home de cada um. Ou seja, por default você, logado como usuário normal, poderá navegar por quase todos os diretórios do sistema, mas só poderá criar e alterar arquivos dentro da sua pasta de usuário. Nos outros lugares receberá sempre um aviso de acesso negado. Isso impede que os usuários possam fazer besteira no sistema, como por exemplo, tentar deletar a pasta de módulos do Kernel. Claro, como todas as regras, as permissões de acesso têm um única exceção: o root. Ele é o único que não possui restrições: pode alterar, executar ou deletar o que bem entender. Pode alterar o dono das pastas ou alterar as permissões de acesso. O root é o Deus do sistema. Você precisará usar o root sempre que for alterar as permissões de acesso a uma pasta do sistema ou criada por outro usuário, mas não use-o regularmente, a menos que esteja apenas brincando com o sistema e possa reinstala-lo a qualquer momento, pois além de poder destruir facilmente arquivos do sistema, usar o root abre as portas para várias brechas de segurança ao usar programas de IRC, abrir anexos em e-mails ou mesmo navegar na web.
A maioria dos problemas de segurança a que os usuários do Windows estão submetidos, decorre justamente do fato de utilizarem contas com privilégios equivalentes ao do root no Linux. Se você pode fazer o que quiser no sistema, os programas executados por você (incluindo trojans, scripts incluídos de páginas web executados pelo navegador, etc.) também poderão não terão restrições.
Se você se pergunta às vezes como alguns vírus como o Ninda e o Sircan podem se espalhar tão rapidamente, saiba que o problema é justamente este: a combinação de um sistema com um fraco controle de segurança, combinado combinado com o uso de contas administrativas por usuários sem noções de segurança. Voltando ao tema da criação de usuários, se você não gostou dos utilitários gráficos, pode adicionar novos usuários também usando os comandos "adduser" e "passwd"
Por exemplo:

adduser morimoto
(cria o usuário morimoto)

passwd morimoto
(altera o password do user morimoto)

O comando passwd também pode ser usado para alterar a senha. Como root você deve usar "passwd usuario" e como usuário apenas "passwd" para alterar a senha do login. Apenas o root pode adicionar novos usuários ao sistema.
Para alterar as permissões de acesso de arquivos e pastas via linha de comando você deve usar o comando chmod. A sintaxe dele parece um pouco complicada à primeira vista, mas nada que um pouco de prática não possa resolver:
# chmod 744 arquivo

Temos aqui o comando chmod propriamente dito, o arquivo ou pasta que terá suas permissões de acesso alteradas e um número de três dígitos que indica as novas permissões para o arquivo.
Os três números indicam respectivamente:
7 : Permissões para o dono do arquivo4 : Permissões para o grupo4 : Permissões para os demais usuários

Você deve lembrar que temos três permissões: leitura, gravação e execução. Como é possível representar estes três atributos através de um único número?
Bem, os programadores costumam ser muito bons em matemática e, como em outros casos, usaram um pequeno truque para resolver este problema:
Cada permissão possui um número:
4 : Leitura2 : Gravação1 : Execução

Você simplesmente soma estes números para ter o número referente ao conjunto de permissões que deseja:
0 : Sem permissão alguma, se for uma pasta o usuário sequer pode ver o conteúdo1 : Só execução (não é possível ler o arquivo ou alterá-lo, apenas executar um programa)4 : Apenas leitura6 (4+2) : Leitura + gravação7 (4+2+1): Controle total: leitura + gravação + execução

Engenhoso não é? Se você quer dar controle total do arquivo ou pasta para o dono e para o grupo, mas permissão de apenas leitura para os demais usuários, usaria o número 774; se você quisesse que todos os usuários tivessem permissão de leitura e gravação, mas sem poder executar nada, usaria o número 666, se quisesse dar controle total para todo mundo usaria 777 e assim por diante. Como disse, parece um pouco complicado, mas depois de usar o comando algumas vezes você não vai esquecer mais.
Para alterar o dono e o grupo do arquivo você deve usar o comando chown. O uso dele é simples, basta indicar qual é o novo dono e em seguida indicar o arquivo ou pasta que mudará de dono, como em:

# chown morimoto apollo

Se você quiser que a alteração se aplique a todos os arquivos e subpastas do diretório, use a opção -R (de recursivo) como em:

# chown -R morimoto apollo

Se você quiser alterar também o nome do grupo, acrescente o nome do novo grupo após o nome do dono, separando ambos por um ponto:
# chown -R morimoto.apollo apollo

Agora a pasta "apollo" passa a ser propriedade do usuário morimoto e do grupo apollo. Fizemos a mesma coisa que no exemplo anterior, mas agora usando o comando de modo texto. Você escolhe qual forma prefere.
Além dos comandos que vimos, você também pode recorrer ao mc, encontrado na maioria das distribuições. Basta chama-lo no terminal. Além de ser um gerenciador de arquivos com muitos recursos, ele permite editar arquivos de texto, mover arquivos, alterar permissões, etc.