Julgue os itens a seguir referentes a conceitos de software livre e licenças de uso, distribuição e modificação. 1.Todo software livre deve ser desenvolvido para uso por pessoa física em ambiente com sistema operacional da família Linux, devendo haver restrições de uso a serem impostas por fornecedor no caso de outros sistemas operacionais. 3.Toda licença de software livre deve estabelecer a liberdade de que esse software seja, a qualquer momento, convertido em software proprietário e, a partir desse momento, passem a ser respeitados os direitos de propriedade intelectual do código-fonte do software convertido. 5.Um software livre é considerado software de código aberto quando o seu código-fonte está disponível em sítio da Internet com designação .org, podendo, assim, ser continuamente atualizado, aperfeiçoado e estendido às necessidades dos usuários, que, para executá-lo, devem compilá-lo em seus computadores pessoais. Essa característica garante a superioridade do software livre em face dos seus concorrentes comerciais proprietários. 2. O código-fonte de um software livre pode ser adaptado ou aperfeiçoado pelo usuário, para necessidades próprias, e o resultado de aperfeiçoamentos desse software pode ser liberado e redistribuído para outros usuários, sem necessidade de permissão do fornecedor do código original. 4.Quando a licença de um software livre contém cláusula denominada copyleft, significa que esse software, além de livre, é também de domínio público e, dessa forma, empresas interessadas em comercializar versões não-gratuitas do referido software poderão fazê-lo, desde que não haja alterações nas funcionalidades originais do software. GABARITO 1- F 2- V 3- F 4- F 5- F 1 SOFTWARE LIVRE • A liberdade de executar o programa, para qualquer propósito. • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um prérequisito para esta liberdade. • A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie deles (liberdade nº 3). O acesso ao código-fonte é um pré-requisito para esta liberdade. . • Shell • Este é um programa que recebe, interpreta e executa os comandos de usuário, aparecendo na tela como uma linha de comandos, representada por um prompt, que aguarda na tela os comandos do usuário. • Cada distro tem o seu propósito. Podem ser feitas especificamente para computadores desktops, laptops, servidores de redes, servidores de aplicações, servidores de banco de dados, telefones celulares e outros. • Das inúmeras distribuições existentes as de maior destaque são: Debian, Fedora, Mandriva, Red Hat, SuSE, Ubuntu, Kurumin entre outras. Kernel • Kernel de um sistema operacional é entendido como o núcleo deste ou, numa tradução literal, cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo. É no kernel que estão definidas funções para operação com periféricos (mouse, discos, impressoras), gerenciamento de memória, entre outros.Sendo assim, o kernel é um conjunto de programas que fornece para os programas de usuário (aplicativos) uma interface para utilizar os recursos do sistema. Distribuição Linux • Uma Distribuição Linux (ou simplesmente distro) é composta do kernel do Linux e mais uma série de aplicativos com vários propósitos. Muitas pessoas e empresas ao redor do mundo criam e distribuem - gratuitamente ou cobrando por isso suas distros. Algumas distribuições são maiores que outras, cujos tamanhos podem variar desde um disquete a vários DVDs, passando por Pen drives e CDs. Distribuições Live CD • Live CD é um CD que contém um sistema operacional que não precisa ser instalado no disco rígido do computador uma vez que o sistema operacional completo é executado diretamente a partir do CD e da memória RAM. A maioria dessas distribuições também permitem que se instale o sistema operacional no disco rígido com as mesmas configurações do sistema que roda no CD, caso o usuário deseje. 2 Ambiente Gráfico (GUI) • É um software feito para facilitar e tornar prática a utilização do computador através de representações visuais do Sistema Operacional. Para Windows temos apenas o ambiente gráfico padrão. Para Linux temos vários ambientes gráficos, entre eles, o KDE e o Gnome. ÁRVORE DE DIRETÓRIOS DO LINUX • /dev • Contém arquivos relacionados aos dispositivos de hardware existentes. Os arquivos deste diretório são também conhecidos como device drives e são usados para acessar dispositivos eletrônicos do sistema (recursos como discos, modems, memória, entre outros). Por exemplo, assim como é possível ler dados de um arquivo, é possível, também, ler dados de um disquete acessando /dev/fd0. • Principais diretórios e seus conteúdos: • / - Diretório raiz do sistema de arquivos. É abaixo dele que se situam todos os outros. • /bin - O diretório bin, contém programas (executáveis) que são necessários durante o boot (inicialização) do sistema, mas que também podem ser usados pelos usuários. • /boot - armazena a imagem do Kernel e arquivos estáticos necessários à carga do sistema. • /etc • Este diretório é um dos mais importantes. Contém dados de configuração, tais como: roteiros (scripts) de inicialização do sistema em seus vários níveis e outros como a tabela de sistemas de arquivo, configuração da inicialização do sistema para cada nível, configurações de login para todos os usuários, configuração da fila de impressão e um número considerável de arquivos para configuração de rede e outros aspectos do sistema, incluindo a interface gráfica. 3 • /root • Este diretório contém todas as informações e configurações do Super-usuário (Usuário Administrador). • /home • Este diretório contém os diretórios pessoais dos usuários finais. Quando este diretório home - se torna excessivamente grande, ele pode ser subdividido, na forma de grupos de usuários, para facilitar sua manutenção. Exemplos: /home/prof, /home/alunos. • /usr • Contém a maior parte dos dados de programas instalados. É o maior diretório do sistema. Contém arquivos de comandos, programas, bibliotecas, manuais e outros arquivos estáveis, isto é, que não precisem ser modificados durante a operação normal do sistema. O Linux possibilita ao administrador da rede instalar aplicativos no /usr de apenas uma máquina e compartilhar esse diretório com outras máquinas da rede. • ls: Serve para listar os arquivos e diretórios dentro da pasta atual. • Para incluir os arquivos ocultos, use "ls -a". Para ver mais detalhes sobre cada arquivo, incluindo o tamanho, permissões de acesso e dono, use "ls -lh". Para incluir os ocultos, adicione o "a", como em "ls -lha". • Obs: No Linux, os arquivos que começam com um “.” são entendidos como arquivos ocultos. • /lib • Este diretório contém bibliotecas do sistema. O nome lib vem de library, biblioteca em inglês. • /sbin • Esse diretório contém arquivos executáveis e ferramentas para a administração do sistema. Comandos básicos do Linux • cd: Serve para navegar entre os diretórios. Ao abrir o terminal, você começa dentro do seu diretório home (como "/home/kurumin"). Para acessar um diretório específico, especifique-o como parâmetro, como em "cd /etc". Para subir um diretório use "cd ..". Sempre que quiser confirmar em qual diretório está, use o comando "pwd". • man: Como disse, ninguém pode dizer que sabe tudo sobre todos os comandos do terminal. Para facilitar as coisas, cada comando possui um manual, onde são citados todos os parâmetros e vários exemplos. Todos estes manuais são acessados através de um comando único, o "man". Para ver as (muitas) opções do "ls", por exemplo, use "man ls". 4 • cp: Este é o comando usado para copiar arquivos de uma pasta a outra. Inclua o nome do arquivo e a pasta para onde ele vai. Para copiar toda a pasta, você precisaria incluir o comando "-r", que explica que ele deve copiar recursivamente, incluindo todos os arquivos e subdiretórios. • mv: O mv serve tanto mover arquivos de um lugar para o outro. Você pode usar o mv também para mover e renomear pastas. • mkdir: Este serve para criar novos diretórios. • rmdir: Esta é uma variação do mkdir, que permite remover diretórios. A diferença entre ele e o "rm -rf" é que o rmdir só remove diretórios vazios. • clear: Limpa a tela, uma forma de colocar a ordem na casa antes de executar novos comandos. • shutdown -r now : Reinicializa a máquina. • Who: Mostra quem está atualmente conectado no computador via rede. • Passwd: Permite que se troque a senha de determinado usuário. O super usuário pode trocar a senha de qualquer outro. O usuário comum, porém, pode trocar somente a sua senha. • Uname -a : Mostra versão do kernel do Linux. • Free - exibe a memória usada e a livre. • rm: O rm serve para remover tanto arquivos quanto diretórios, de acordo com os parâmetros usados. Para remover um arquivo simples, basta usá-lo diretamente, como em "rm arquivo". Para que ele remova sem pedir a confirmação, adicione o parâmetro "-f", como em "rm -f arquivo". Para remover uma pasta e todos os arquivos e diretórios dentro dela, adicione o parâmetro "-r", como em "rm -rf arquivos/". • Ponto-e-vírgula: Você também pode executar uma fila de comandos de uma vez. Basta separá-los por ponto-e-vírgula, como em “ls; pwd”. • shutdown -h now: Serve para desligar o sistema, mas permite que você especifique um horário. É muito útil se você deixar o micro ligado à noite fazendo alguma coisa ou baixando um arquivo, mas quiser que ele desligue sozinho depois de um certo tempo. Substitua now (agora) por um tempo em minutos que o sistema esperará antes de desligar, usando o parâmetro "+" como em shutdown -h +50. • du: O du permite ver uma lista com o espaço ocupado por cada pasta dentro do diretório atual. É uma forma rápida de encontrar grandes arquivos ou pastas que estão consumindo muito espaço. Em geral usamos "du -h", onde o -h faz com que ele exiba o tamanho dos arquivos de forma "humana", escrevendo "2,8G" ao invés de "2876322", por exemplo. Além disso, é possível saber quantos subdiretórios pertencem ao diretório atual. 5 • split: Esse comando serve para quebrar arquivos em vários pedaços. Muito útil quando você precisa gravar arquivos grandes em vários disquetes ou CDs, por exemplo. Imagine que você queira quebrar um arquivo de 3 GB chamado "arquivo.avi" em vários arquivos de 650 MB cada um, de forma a conseguir gravá-lo em vários CDs. • • • • locate: Este comando permite encontrar arquivos de forma instantânea. Assim como mecanismos de busca, como o Google, o locate não sai procurando em todo o HD até achar o arquivo solicitado. Ele procura apenas dentro de uma base de dados, que contém os nomes de todos os arquivos. Esta base é gerada ao rodar o comando "updatedb", sua cara metade. • chmod: No Linux, existe em conceito muito bem aplicado de permissões. Essas permissões são utilizadas para proteger o sistema de modo que apenas pessoas autorizadas possam acessar determinadas áreas. O comando chmod permite que se altere as permissões de um ou mais arquivos/diretórios. É importante ressaltar que o usuário deve ter permissões para fazer alterações, ou seja, dever root, dono do arquivo ou estar do dono do arquivo com permissões de escrita. touch – O comando touch cria arquivos vazios. Para criá-los basta digitar o comando seguido do nome do arquivo de sejado. Além disso, esse comando também pode ser utilizado para alterar a data e a hora de modificação de um arquivo ou pasta . date - O comando date mostra a data e a hora atual do sistema. df: O comando df mostra o espaço livre/ocupado de cada partição. Pode ser utilizado junto com várias opções, se for utilizado sozinho, mostrará o espaço usado e disponível de todos os sistemas de arquivos atualmente montados. • find: O find também permite localizar arquivos, mas funciona da forma tradicional, realmente vasculhando os diretórios em busca dos arquivos, ao invés de usar uma base de dados, como o locate. • cat: Serve para ver o conteúdo de um arquivo. Por exemplo, "cat carta" mostra o conteúdo do arquivo "carta". Este comando serve bem para ver o conteúdo de arquivos de texto pequenos, sem precisar abrir um editor mais sofisticado. • kill: No Linux, cada programa que é executado no sistema, seja um comando ou um programa o sistema interpretará como um processo e cada processo terá um número no sistema. O comando kill é usado para forçar o encerramento de um processo. É muito útil quando um programa pára de responder ou por algum outro motivo não é possível finalizálo pelos meios normalmente utilizados. 6 • su: No Linux, existe uma separação clara entre o root e os demais usuários do sistema. O root é o único que pode alterar a configuração do sistema e usar a maior parte das ferramentas de configuração. Os usuários normais, por sua vez, podem usar os programas instalados e modificar arquivos dentro do seu diretório home. Esta organização permite que várias pessoas usem o mesmo micro (o que é vital no caso dos servidores), sem que um possa alterar as configurações do outro, nem muito menos mudar as configurações do sistema. • Por um lado, isso torna o sistema muito mais robusto, mas por outro faz com que algumas tarefas sejam mais complexas, pois você precisará primeiro se logar como root, para depois executar o comando. O su permite que você "vire" root a qualquer momento, passando a abrir os programas, modificar arquivos e usar todas as ferramentas sem limitações. • Digite "su" e forneça a senha de root. O "$" do terminal vira um "#", alertando que a partir daí você tem plenos poderes. 7