Mudanças entre as edições de "PJI2-2017-2"
Linha 1 824: | Linha 1 824: | ||
{{Collapse bottom | Aula 20}} | {{Collapse bottom | Aula 20}} | ||
+ | |||
+ | = 11/10: Projeto 2: Processos e Instalação de softwares = | ||
+ | |||
+ | {{Collapse top | Aula 21}} | ||
+ | |||
+ | Aula passada vimos como usuários e grupos podem ser usados para organizar e proteger o acesso a recursos mantidos pelo sistema operacional (arquivos, programas, dispositivos de entrada e saída, ...). Hoje estudaremos o que são processos, como obter informações sobre eles e como terminá-los. Além disso, veremos também como processos podem usar suas entrada e saída padrão para receber dado para processar e apresentar resultados, e também para se comunicarem. | ||
+ | |||
+ | |||
+ | === Processos === | ||
+ | |||
+ | Já vimos que sistemas operacionais modernos, como Linux, FreeBSD, Windows, e Android, são capazes de executar múltiplos programas ao mesmo tempo. No caso dos sistemas operacionais Unix, e o Linux pertence a essa família, processos são '''programas em execução'''. Um programa contém instruções e dados armazenados em um arquivo. Ao ser executado um arquivo, cria-se um processo. O sistema operacional carrega as instruções e dados em memória RAM, e faz o processador executá-las. Múltiplos processos podem ser criados a partir do mesmo arquivo de programa, sendo executados de forma independente. Os detalhes de como manter todos os processos em memória, e revezar suas execuções de forma a parecer que são simultâneos, são responsabilidade do sistema operacional. | ||
+ | |||
+ | |||
+ | Vários utilitários (programas auxiliares) existem para obter informações do sistema operacional sobre processos e memória. Alguns trabalham em modo texto, como: | ||
+ | |||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/ps.1.html ps]:''' lista os processos existentes | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/pstree.1.html pstree]:''' lista os processos existentes mas de forma hierárquica | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/top.1.html top]:''' lista os processos mais ativos, junto com informações globais sobre uso dos recursos no sistema operacional (memória, processador, memória virtual, quantidade de processos, carga de trabalho) | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/atop.1.html atop]:''' o mesmo que '''top''', mas com maior detalhamento do uso de recursos mantidos pelo sistema operacional | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/mpstat.1.html mpstat]:''' mostra estatísticas de uso do processador | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/free.1.html free]:''' mostra o uso de memória | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man8/vmstat.8.html vmstat]:''' mostra o uso de memória, discos e processador no último intervalo de tempo. | ||
+ | |||
+ | |||
+ | [[imagem:Pji-procs.png]] | ||
+ | <br>''Alguns processos mostrados com o comando '''ps au''''' | ||
+ | |||
+ | |||
+ | Existem também utilitários no modo gráfico. Por exemplo, no Ubuntu há o "Monitor do sistema". No Debian existe também esse aplicativo se o ambiente gráfico em uso for o Gnome. | ||
+ | |||
+ | |||
+ | '''Para nosso propósito, é importante saber que:''' | ||
+ | * Cada processo possui um usuário e grupo dono, que são obtidos do usuário que o criou. Essas duas informações são usadas para fazer o controle de acesso a arquivos e diretórios, comparando-os com suas permissões. | ||
+ | * Cada processo possui um número chamado de PID (''Process IDentifier'') que o identifica no sistema. | ||
+ | * A memória RAM utilizada por um processo é deu uso exclusivo: nenhum processo consegue acessar (ler ou modificar) a memória de outro processo. | ||
+ | * Processos podem ser pausados ou mesmo terminados. Há dois programas para terminar processos: | ||
+ | ** [http://manpages.ubuntu.com/manpages/trusty/man1/kill.1.html kill]: termina um ou mais processos informados por seus PID. Uso básico: <syntaxhighlight lang=bash> | ||
+ | # Solicita ao processo com PID 1234 que termine (esse processo pode ignorar e continuar executando) | ||
+ | kill 1234 | ||
+ | |||
+ | # Mata sumariamente o processo 1234 | ||
+ | kill -9 1234 | ||
+ | </syntaxhighlight> | ||
+ | ** [http://manpages.ubuntu.com/manpages/trusty/man1/killall.1.html killall]: termina um ou mais processos informados por seus nomes, por seus usuários donos, entre outras possibilidades. Uso básico: <syntaxhighlight lang=bash> | ||
+ | # Solicita ao processo chamado firefox que termine (ele pode ignorar) | ||
+ | killall firefox | ||
+ | |||
+ | # Mata sumariamente o processo firefox | ||
+ | killall -9 firefox | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Atividade === | ||
+ | |||
+ | # Experimente matar alguns processos, seja pelo PID ou pelos seus nomes, e ver o que acontece ... Lembre que para isso se usam os programas [http://manpages.ubuntu.com/manpages/trusty/man1/kill.1.html kill] ou [http://manpages.ubuntu.com/manpages/trusty/man1/killall.1.html killall]. | ||
+ | # (RaspberryPI) Copie [http://tele.sj.ifsc.edu.br/~msobral/pji/teimoso este programa] para seu computador. Em seguida execute-o: <syntaxhighlight lang=bash> | ||
+ | ./teimoso | ||
+ | </syntaxhighlight> ... e tente matá-lo. | ||
+ | #* (PC ou Virtualbox) Copie [http://tele.sj.ifsc.edu.br/~msobral/pji/teimoso.c este programa] para seu computador. Em seguida compile-o: <syntaxhighlight lang=bash> | ||
+ | gcc -o teimoso teimoso.c | ||
+ | </syntaxhighlight> ... e então execute-o: <syntaxhighlight lang=bash> | ||
+ | ./teimoso | ||
+ | </syntaxhighlight>Tente em seguida matá-lo ! | ||
+ | |||
+ | === Instalação de software === | ||
+ | |||
+ | A instalação de software pode ser feita de diferentes maneiras: | ||
+ | * ''A partir do software em formato de código-fonte:'' envolve transferir o código-fonte do seu repositório, e então compilá-lo. Isso requer um maior conhecimento técnico, e é uma habilidade esperada para um Técnico que atue na área de Telecomunicações. | ||
+ | * ''A partir do software já preparado (compilado):'' essa forma é mais simples, pois basicamente implica obter o software compilado e copiá-lo para dentro do seu sistema. É também a prática mais comum, por ser mais rápida, fácil e menos trabalhosa. Todas as distribuições Linux (e também o FreeBSD, entre outras variantes de Unix) provêem alguma forma de instalar softwares dessa maneira. Esses sistemas criam o conceito de '''pacote de software''', que é um arquivo especial contendo todos os arquivos do software a ser instalado, e todas as informações necessárias para que a instalação tenha sucesso (versão, dependências, e outras). | ||
+ | |||
+ | No escopo desta disciplina de Projeto Integrador, são usados '''pacotes de software'''. Mas nada impede que se demonstre como seria realizar uma instalação a partir do código-fonte, caso exista a curiosidade. | ||
+ | |||
+ | No Ubuntu Linux (e também nas distribuições originadas no Debian), o sistema de pacotes de software se chama ''dpkg'' (Debian Package). Existem diferentes formas de instalar e remover sofware, dentre elas: | ||
+ | # '''Diretamente a partir dos arquivos de pacote de software:''' esses arquivos têm extensão ''.deb'', e devem ser instalados por meio do programa [http://manpages.ubuntu.com/manpages/trusty/man1/dpkg.1.html dpkg]. Os arquivos ''.deb'' devem ser obtidos manualmente pelo usuário, podendo ser copiados de DVDs do sistema, ou obtidos de servidores na rede. Para removê-los, deve-se usar também o ''dpkg''. | ||
+ | # '''Obtendo automaticamente pacotes de software de repositórios:''' essa forma de administrar os pacotes é muito mais fácil, pois os pacotes de software são obtidos de servidores de pacotes na rede. Ela se baseia num sistema de gerenciamento de pacotes chamado de APT, e pode ser realizada por meio dos aplicativos [http://manpages.ubuntu.com/manpages/trusty/en/man8/apt-get.8.html apt-get] ou [http://manpages.ubuntu.com/manpages/precise/en/man8/aptitude.8.html aptitude] (este é ainda mais fácil). Existem também versões gráficas para esses gerenciadores de pacotes. | ||
+ | |||
+ | === Instalação manual com ''dpkg'' === | ||
+ | |||
+ | Para instalar pacotes de software manualmente, primeiro devem-se obter os respectivos arquivos de instalação. Cada pacote de software está contido em um arquivo com extensão ''.deb''. Esses arquivos podem ser obtidos dos CD e DVD de instalação, ou de repositórios na Internet. Exemplos: | ||
+ | * [http://ubuntu.c3sl.ufpr.br/ubuntu/ um repositório do Ubuntu no Brasil] | ||
+ | * [http://archive.raspbian.org/raspbian/ Repositório para o Raspbian (Debian para o RaspberryPi)] | ||
+ | |||
+ | |||
+ | Cada arquivo de instalação deve ser instalado da seguinte forma: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | dpkg -i nome_do_pacote.deb | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Se o pacote de software não puder ser instalado, uma mensagem de erro é apresentada. Uma causa para esse problema é existirem dependências em relação a outros pacotes de software, os quais devem então ser instalados previamente. | ||
+ | |||
+ | |||
+ | A remoção de um pacote de software pode ser feita assim: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | dpkg -r nome_do_pacote | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Se o pacote a ser removido for dependência para outros pacotes instalados, a remoção será abortada. | ||
+ | |||
+ | |||
+ | A listagem de todos os pacotes instalados pode ser obtida com este comando: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | dpkg-query -l | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | A listagem dos arquivos instalados por um pacote é mostrada com este outro comando: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | dpkg-query -L nome_do_pacote | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Informações detalhadas sobre um pacote podem ser mostradas assim: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | dpkg-query -p nome_do_pacote | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Obtenção automática de software === | ||
+ | |||
+ | Os pacotes de softwares dos sistemas operacionais Ubuntu e Debian são organizados e disponibilizados em repositórios, que são servidores na Internet onde há cópias dos arquivos de instalação desses pacotes. Os repositórios são configurados durante a própria instalação do sistema, ficando registrados no arquivo [http://manpages.ubuntu.com/manpages/trusty/man5/sources.list.5.html /etc/apt/sources.list]. Esse arquivo pode ser modificado para incluir ou remover repositórios, quando necessário. | ||
+ | |||
+ | |||
+ | Um resumo dos comandos que podem ser usados com [http://manpages.ubuntu.com/manpages/trusty/en/man8/apt-get.8.html apt-get]: | ||
+ | * '''apt-get update''': atualiza o catálogo de pacotes de software conhecidos. Isso implica consultar os repositórios configurados e transferir as listas de pacotes lá existentes. Isso é importante para ter acesso a versões atualizadas dos pacotes de software. | ||
+ | * '''apt-get install nome_do_pacote''': instala o pacote de software chamado ''nome_do_pacote''. Se houver dependências de outros pacotes, eles também serão instalados. | ||
+ | * '''apt-get remove nome_do_pacote''': remove o pacote de software chamado ''nome_do_pacote''. se outros pacotes dependerem desse pacote, eles também serão removidos. | ||
+ | * '''apt-get clean''': remove as cópias dos arquivos de pacotes de software transferidos e não mais necessários. | ||
+ | * '''apt-get upgrade''': atualiza todos os pacotes de software para suas versões mais recentes, caso existam. | ||
+ | |||
+ | |||
+ | Um resumo dos comandos que podem ser usados com [http://manpages.ubuntu.com/manpages/trusty/en/man8/aptitude.8.html aptitude]: | ||
+ | * '''aptitude update''': mesmo que ''apt-get update'' | ||
+ | * '''aptitude install nome_do_pacote''': mesmo que ''apt-get install'' | ||
+ | * '''aptitude remove nome_do_pacote''': mesmo que ''apt-get remove'' | ||
+ | * '''aptitude search nome''': lista todos os pacotes de software conhecidos cujos nomes contenham ''nome'' | ||
+ | |||
+ | === Atividade === | ||
+ | |||
+ | ''Execute os passos seguintes tanto com instalação manual quanto automática de software.'' | ||
+ | # Instale estes softwares: | ||
+ | #* mplayer | ||
+ | #* mencoder | ||
+ | #* handbrake | ||
+ | #* pppoe | ||
+ | #* hostapd | ||
+ | #* vlan | ||
+ | # Após instalá-los, obtenha suas descrições. Veja também as descrições destes outros softwares já instalados: | ||
+ | #* bash | ||
+ | #* iproute2 | ||
+ | #* iptables | ||
+ | #* tcpdump | ||
+ | # Liste todos os softwares instalados. | ||
+ | # Remova os softwares instalados nos passos anteriores | ||
+ | # Existe um projeto de software chamado ownCloud que, entre outras coisas, implementa um serviço parecido com Dropbox. Veja [https://software.opensuse.org/download/package?project=isv:ownCloud:desktop&package=owncloud-client este guia de instalação do ownCloud], e note que isso implica adicionar um repositório ao seu sistema operacional. Experimente seguir as instruções de instalação ali contidas. | ||
+ | # Descubra como se podem instalar softwares em modo gráfico. | ||
+ | |||
+ | {{Collapse bottom | Aula 21}} |
Edição das 20h31min de 9 de outubro de 2017
Endereço encurtado: http://bit.ly/pji2-20172
Projeto Integrador II: Diário de Aula 2017-2
Professores: Marcelo Maia Sobral ( Facebook) e Jorge Loureiro (jorge.loureiro@ifsc.edu.br)
Encontros: 2a feira/19:00, 4a feira/19:00
Atendimento paralelo: 4a e 6a feira 18:30 h
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)
Objetivo Geral
Implantar rede de dados e telefônica de pequeno porte, típica de um pequeno escritório.
Ementa
Introdução e histórico das telecomunicações e da Internet. Uso de serviços e aplicações oferecidos pelas redes de telecomunicações. Conceitos sobre redes de computadores: comutação de pacotes versus comutação de circuitos, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico: telefonia fixa e móvel, centrais de comutação, telefonia IP e convergência. Integração de serviços de voz convencionais e VoIP.
Bibliografia
- FOROUZAN, Behrouz A.; FEGAN, Sophia Chung. Comunicação de dados e redes de computadores. Tradução de Ariovaldo Griesi. 4. ed. São Paulo: McGraw-Hill, 2008. 1134 p., il. ISBN 9788586804885.
- KUROSE, J. e ROSS, K. Redes de Computadores e a Internet: Uma abordagem top-down. Tradução da 3a edição, Addison Wesley, 2006.
- COLCHER, Sérgio. VOIP: voz sobre IP. Rio de Janeiro: Elsevier, 2005.
Material de apoio
- Linux
- Redes
- Outros
Alguns textos interessantes
- A história dos telefones celulares
- Telebrasil (Associação Brasileira de Telecomunicações)
- Telecom no Brasil: um panorama
- Estatísticas sobre telecomunicações no Brasil
- Principais grupos de telecomunicações no Brasil
- Telecomunicações: O Novo Cenário (BNDES)
- Desafios e Oportunidades do Setor de Telecomunicações no Brasil (IPEA)
- Netflix abocanha 34% de todo o tráfego da internet na América do Norte
- Tráfego total VoIP na Internet
- Internet no Brasil 2014 (dados e fontes)
- Internet: como estão as velocidades nos principais países
- Apresentação sobre redes de computadores
- O Mundo Submarino da Internet
- Rede Ipê: a Rede Nacional de Pesquisa (RNP)
- Openwrt no RaspberryPi
Oportunidades para Técnicos em Telecomunicações
- Ofertas de vagas para técnico em Telecom
- Ofertas de vagas para técnico em Telecom no SINE
- Salário médio do Técnico em Telecomunicações no Brasil
Documentários sobre telecomunicações
- História das Telecomunicações
- Inventos: Telefones Celulares (video Discovery)
- Documentário É Logo Ali: parte 1 e parte 2
- Video da Petrobras
Curiosidades
- Telex: um serviço já extinto (?!)
- Submarine Cable Map
- Mapa de Ataques
- Panorama do Tráfego - RNP
- Uma semana na vida do Administrador de Suporte do "Inferno" (humor)
- Vaga de Técnico em Redes na RNP: um exemplo de oferta de emprego
- Empoderar, dar autonomia, não esconder o código
- Carrier Grade Linux (CGL): Linux para Telecomunicações
Avaliações
As avaliações serão de dois tipos:
- Projetos: feitos em equipe, serão avaliados de acordo com o cumprimento dos objetivos previamente determinados. Na apresentação do projeto, uma entrevista será feita para definir o conceito concedido a cada membro da equipe.
- Testes: feitos individualmente, serão aplicados semanalmente no início da aula. O conteúdo para esses testes serão textos informados com uma semana de antecedência, assim como as técnicas e assuntos vistos em aula. A avaliação de cada teste será dada com um dos conceitos S (suficiente) e I (insuficiente).
O conceito final será calculado da seguinte forma:
- 9 a 10: ao menos dois projetos A e um projeto B
- 7 a 9: ao menos dois projetos B em um projeto C
- 6: ao menos C em todos projetos
Além disso, os testes ajustam o conceito final da seguinte maneira:
- Incrementa: se pelo menos 75% dos testes S, incrementa conceito final em um nível (ex: B sobe para A)
- Mantém: se pelo menos 40% dos testes S, mantém conceito final
- Decrementa: se menos de 40% dos testes S, decrementa conceito final em um nível (ex: A reduz para B)
Projetos
Nome | Projeto 1 | Projeto 2 | Conceito | Conceito após ajuste |
---|
- OBS: 0* = Indefinido (por ausência à avaliação)
Testes
Nome | T1 | T2 | T3 | T4 | T5 | T6 | T7 | Ajuste |
---|
Obs: I* = não fez o teste
Equipes
Equipe | Membros |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 |
31/07: Conceitos básicos e início do projeto 1
Aula 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A disciplina se compõe de três etapas:
Hoje inicia-se a etapa 1. Ao longo dela serão estudados alguns conceitos sobre o sistema operacional Linux, e serão praticados exercícios e resolvidos pequenos desafios relacionados com procedimentos usuais do dia-a-dia. Ao final da etapa, um pequeno projeto será realizado para consolidar o conhecimento e avaliar o progresso da turma.
Apresentação do Projeto 1O projeto 1 tem por objetivo:
Começando o projeto
Identificação de softwares para centro de midiaA investigação da turma teve como fruto um conjunto de possíveis softwares para usar no projeto. A escolha de um desses softwares depende dele ser capaz de atender os requisitos listados na descrição do projeto. Assim, a tabela abaixo pretende sistematizar o cumprimento dos requisitos por esses softwares.
Uma visão geral (dos professores) sobre o projeto 1A realização do projeto 1 envolve a compreensão de um conjunto de conceitos. O mapa conceitual abaixo procura resumir as ideias envolvidas, e como elas se relacionam. Esse mapa pode ser melhorado ao longo do projeto ! |
02/08: Projeto 1: escolhendo e instalando o media center
Aula 2 |
---|
Na aula de hoje, será realizado o seguinte:
Instalação do centro de midiaNa aula anterior vocês procuraram por softwares que pudessem satisfazer as necessidades apontadas no projeto. Muitos softwares existem, dentre eles Kodi, Miro, Universal Media Server e Plex (devem existir ainda outros ...). Com base na tabela comparativa feita na aula passada, cada equipe deve escolher um deles para instalá-lo. Nosso objetivo é cada equipe ter um media center básico funcionando ao final da aula. Instalando o Kodi
Apesar do guia acima parecer curto e fácil, ele implica alguns conhecimentos para ser realizado a contento - e entendido ! Uma compreensão sobre o que é o sistema operacional Linux, quais seus elementos básicos, e como ele pode ser utilizado, são necessários para essa tarefa. Mas veremos isso à medida que instalarmos o Kodi. Algumas atividades para o uso do sistema operacionalAo longo do projeto 1 (e também do projeto 2) diversas atividades precisarão ser realizadas com o sistema operacional. Algumas delas são bastante corriqueiras, e por isso acabam sendo realizadas desde as primeiras vezes em que se usa o sistema. Elas envolvem:
ExercíciosPara exemplificar as atividades típicas de uso do sistema operacional, faça o seguinte:
|
07/08: Projeto 1: Instalando fontes de mídia locais
Aula 3 |
---|
Na aula de hoje, será realizado o seguinte:
Instalação de fontes de midia locais no KodiCrie três fontes locais de midia no Kodi: uma para videos, outra para musicas e uma terceira para imagens. Em seguida copie arquivos de midia para seu computador e organize-os para que possam ser acessados por meio do Kodi. Caso não tenha em mãos esses arquivos de midia, use o seguinte:
Visualizando o conteúdo dos arquivosCada arquivo guarda um certo tipo de informação. Para poder visualizá-lo corretamente, deve-se usar um programa capaz de entender seu conteúdo, e mostrá-lo da forma esperada. Por exemplo, arquivos de video, música e imagem são reproduzidos pelo Kodi e outros programas. Arquivos de texto são visualizados e editados com editores de texto, e assim por diante. De forma geral, (quase) sempre existe ao menos um programa que sabe mostrar o conteúdo de um certo tipo de arquivo. Por convenção, o tipo de um arquivo é informado por sua extensão, que é a parte final do seu nome que vem após o . (ex: video.avi tem extensão .avi).
Os programas encontrados devem poder ser usados tanto no modo gráfico quanto em linha de comando (se possível).
Exercício
Caracterização de arquivos e diretóriosArquivos são uma abstração corriqueira em sistemas operacionais. Um arquivo possui um conteúdo, codificado em um conjunto de bytes. Assim, um arquivo a rigor contém bytes que representam algum tipo de informação (texto, planilha, video, áudio, imagem, programa, ...). A interpretação desses bytes fica por conta de programas especializados, os quais são capazes de lerem e gravarem conteúdos específicos (ex: libreoffice para arquivos com documentos de texto e planilhas, Firefox e Google Chrome para arquivos de hipertexto). Isso simplifica o tratamento de arquivos pelo sistema operacional: para ele, são apenas bytes.
Além de conteúdo, cada arquivo possui alguns atributos. Talvez o mais aparente seja seu nome, que serve como identificação para que se possa acessá-lo. Outros atributos associados a arquivos são:
Alguns atributos de arquivos podem ser visualizados com o programa utilitário ls, se for usada sua opção -l (listagem longa). O exemplo a seguir mostra o resultado da execução do comando ls -l /etc/issue: -rw-r--r-- 1 root root 26 Fev 7 21:55 /etc/issue
As informações apresentadas podem ser interpretadas desta forma:
/etc/issue: caminho do arquivo, que inclui o subdiretório onde se localiza (/etc) e seu nome (issue). Manipulação de arquivos e diretóriosUma tarefa usual em um sistema operacional é localizar arquivos. Essa procura pode ser baseada no nome ou parte do nome de arquivo, na data de criação ou última modificação, no nome do usuário ou grupo dono, ou outros atributos do arquivo. Pode ser inclusive baseada numa combinação dessas informações. Por exemplo, pode ser necessário procurar todos os arquivos de música ou video, ou então todos os programas (arquivos executáveis) que pertençam ao superusuário (usuário root). Existem programas capazes de fazer tais buscas tanto no ambiente gráfico quanto no modo texto. As buscas a serem realizadas são:
Para iniciar, vamos usar programas gráficos para fazer buscas. Usando o ambiente gráficoO primeiro programa gráfico a ser usado é o caja (ou nautilus em outras versões do Ubuntu que não o Mate), o gerenciador de arquivos disponível no Ubuntu Linux. Para usá-lo para fazer buscas selecione a opção de pesquisa:
Usando a linha de comando (modo texto)O caja funciona como um gerenciador de arquivos e diretórios, possibilitando investigar que arquivos existem em cada diretório, entre outras coisas. Com ele é simples listar o conteúdo de um ou mais diretórios, bastando navegar por sua interface. Mas na linha de comando não há essa facilidade. Nela devem-se usar alguns programas para obter um resultado parecido. Para começar a usar a linha de comando, devem-se conhecer e saber usar programas para navegar por diretórios, listar diretórios, procurar arquivos e diretórios e copiar arquivos. Árvore de diretóriosAntes de iniciarmos o estudo de comandos dos Linux é necessário entendermos como funciona a sua organização de arquivos e diretórios. Isso é importante para conseguirmos especificar adequadamente o caminho de arquivos e diretórios que desejamos manipular quando formos utilizar os mais diversos comandos. Na figura acima é mostrado um exemplo de como são organizados arquivos e diretórios no Linux. Como é possível notar arquivos e diretórios são organizados de forma hierárquica, formando o que se chama de Árvore de Diretórios. No Linux há um diretório de nível superior chamado root que é identificado como apenas uma barra (/). Abaixo deste diretório principal estão organizados hierarquicamente todos os demais diretórios e arquivos existentes. Os diretórios que estão contidos em / são chamados de sub-diretórios. No exemplo mostrado na Figura acima podemos perceber que em / está o sub-diretório home, dentro de home está o sub-diretórios user1 e dentro de user1 estão os sub-diretórios doc e videos.
Por exemplo, o caminho absoluto do diretório doc que aparece na figura é /home/user1/doc. Já se o diretório atual do usuário for /home, o caminho relativo do diretório doc é user1/doc. Diretório atualNa linha de comando existe o conceito de diretório atual ou corrente. Quando se acessa esse tipo de interface, existe um diretório em que operações sobre arquivos são realizadas. Para descobrir o diretório atual usa-se o programa pwd, como mostrado a seguir: msobral@turing:~$ pwd
/home/aluno
Listagem de diretórioNo exemplo anterior, o diretório atual é /home/aluno. Qualquer operação sobre arquivos ou diretórios será feita tendo como base esse diretório. A operação mais simples é a listagem de diretório, que se faz com o programa ls. Aproveitando o exemplo acima, a listagem do diretório atual teria este resultado: msobral@turing:~$ ls
001.jpg iperf-2.0.5.tar.gz prova4-2011-1.odt
002.jpg juliano.tgz prova4-2011-1-rec.odt
003.jpg klaus prr.log
004.jpg livros public_html
005.jpg Makefile.in quartus.cap
006.jpg nhrp.tar radiusd_test.py
007.jpg nohup.out rco2
008.jpg passwd.web rmu
msobral@turing:~$
Como já visto em uma seção anterior, o programa ls pode apresentar mais informações sobre arquivos e subdiretórios se for executado com a opção -l (listagem longa). Experimente executar o ls com esta opação. Para conhecer outras opções e obter mais detalhes, leia a página de manual do comando: man ls
... ou acesse isto. Mudança de diretórioA listagem apresentada revela vários arquivos e subdiretórios existentes no diretório atual. Sabendo que public_html é um subdiretório, pode-se desejar mudar o diretório atual de forma a entrar nesse subdiretório. Isso pode ser facilmente realizado com o programa cd: aluno@turing:~$ cd public_html
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
Diretório atual e diretório acimaO diretório imediatamente acima é referido com .. (dois pontos). Esse é um atalho que possibilita subir um nível de diretório sem conhecer o nome do diretório imediatamente superior. Assim, para voltar ao diretório imediatamente anterior ao diretório atual pode-se fazer isto: aluno@turing:~/public_html$ cd ..
aluno@turing:~$ pwd
/home/aluno
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
aluno@turing:~/public_html$ cd .
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
... nada acontecerá (o diretório atual não será modificado). Criação e remoção de diretórioUm diretório pode ser criado com o comando mkdir. O uso desse comando pede apenas um argumento, que é o nome ou caminho do diretório a ser criado: aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ mkdir teste
aluno@M2:~$ cd teste
aluno@M2:~$ pwd
/home/aluno/teste
Para remover um diretório usa-se o comando rmdir. Esse diretório deve estar vazio para o comando consiga removê-lo: aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ rmdir teste
aluno@M2:~$ cd teste
cd: teste: Arquivo ou diretório não encontrado
aluno@M2:~$ rmdir Downloads
rmdir: falhou em remover “Downloads”: Diretório não vazio
Cópia de arquivosA cópia de arquivos na linha de comando envolve usar o programa cp. Com ele podem-se copiar um ou mais arquivos para um diretório de destino. Por exemplo, para copiar o arquivo 001.jpg para dentro do diretório public_html pode-se fazer o seguinte: aluno@M2:~$ cp 001.jpg public_html
O diretório de destino é sempre o último argumento passado ao programa cp. A cópia de múltiplos arquivos pode ser feita listando-os todos antes do diretório de destino: aluno@M2:~$ cp 001.jpg 002.jpg 003.jpg public_html
aluno@M2:~$ cp *.jpg public_html
aluno@M2:~$ cp 00*.jpg public_html
... em que todos os arquivos cujos nomes iniciem com 00 e terminem com .jpg serão copiados. Renomeação de arquivosArquivos podem ser renomeados com o comando mv. Ele pode ser usado de forma muito parecida com o comando cp. A diferença está na remoção do arquivo original, como se ele sumisse de seu diretório de origem e aparecesse no diretório de destino. aluno@M2:~$ mv mulher_de_40.mp3 Musicas
aluno@M2:~$ ls Musicas
mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
aluno@M2:~$ mv mulher_de_40.mp3 musica_romantica.mp3
aluno@M2:~$ ls musica_romantica.mp3
musica_romantica.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
Remoção de arquivosArquivos podem ser removidos com o comando rm. Cuidado ao utilizá-lo ! Uma vez removido, um arquivo não pode ser recuperado ! aluno@M2:~$ rm mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
Curingas (wildcards)Curingas são caracteres especiais usados para selecionar vários arquivos ou diretórios de uma só vez. Os curingas podem ser usados em qualquer comando para especificar nomes de arquivos e diretórios. Dois curingas bastante usados são:
Curingas são muito úteis para operações sobre arquivos e diretórios. Por exemplo, para copiar todos os arquivos de música MP3 pode-se usar o curinga *' da seguinte forma: aluno@M2:~$ cp *.mp3 Musica
aluno@M2:~$ mv *.mp? Videos
Procura por arquivosA procura de arquivos e diretórios pode ser realizada na linha de comando com o programa find. Por exemplo, para localizar todos os arquivos ou diretórios chamados default, e que estejam abaixo de /etc: aluno@D1:~$ find /etc -name default -print
/etc/default
/etc/calendar/default
/etc/X11/xinit/xinput.d/default
aluno@D1:~$
find diretório [opões]
... e muitas outras (consulte o manual do find). Exercícios
|
09/08: Projeto 1: continuação das atividades sobre linha de comando
Aula 4 |
---|
14/08: Projeto 1: continuação das atividades sobre linha de comando
Aula 5 |
---|
16/08: Projeto 1: transmitindo a midia pela rede
Aula 6 |
---|
Na aula de hoje, será realizado o seguinte:
Permissões de acesso a arquivos e diretóriosAs permissões de acesso a arquivos e diretórios permitem proteger o sistema de arquivos do Linux do acesso indevido por pessoas ou programas não autorizados. O princípio da segurança está baseado no conceito de usuário dono ou proprietário, grupo e demais usuários. Um arquivo sempre possui um usuário que é o seu proprietário. Quando um usuário cria um arquivo ou diretório, ele passa a ser o seu dono. No entanto, o arquivo poderá ser repassado a outro usuário. O grupo permite atribuir permissões de acesso a arquivos e diretórios comuns a um grupo de usuários. Por fim, demais usuários (outros) são usuários que não são donos nem pertencem ao grupo do arquivo ou diretório. Um usuário do sistema é identificado pelo seu nome de login, ao qual existe associado
um número chamado UID (''user ID''). Uma coleção de usuários pode pertencer a um grupo. Um grupo
também possui um nome e um identificador numérico (''GID'').
aluno@M2:~$ cd Downloads
aluno@M2:~$ ls -l
-rw-r--r-- 1 root root 2520813 Jun 5 2013 rt5572sta.tgz
-rwxrwxr-x 1 aluno aluno 453 Jun 27 2013 transmissor
-rw-rw-r-- 1 aluno aluno 69118 Jul 16 2013 vento.png
-rw-r--r-- 1 aluno aluno 7336 Abr 10 2014 vlan_simples(1).py
-rw-rw-r-- 1 aluno aluno 39864 Fev 19 2014 voip-pstn.png
drwxrwxr-x 3 aluno aluno 4096 Dez 16 2013 wan
-rw-rw-r-- 1 aluno aluno 5454 Jul 30 2013 wan-2013-1.conf
-rw-rw-r-- 1 aluno aluno 933 Dez 5 2013 wan-2013-1.netkit
-rw-rw-r-- 1 aluno aluno 3969 Jul 29 2013 wan-2013-1_vTeste.conf
-rw-rw-r-- 1 aluno aluno 995 Dez 5 2013 wan-2013-2.netkit
aluno@M2:~$
Exercício
Um pequeno desafio
Transmitindo a midia pela rede
Fontes de midia remotas podem ser cadastradas no centro de midia para fácil acesso. Sendo assim:
Atividade
|
21/08: Projeto 1: editando arquivos de texto
Aula 7 |
---|
Na aula anterior foram experimentadas fontes de midia remotas no Kodi. Com isso, videos armazenados em outros computadores podem ser acessados diretamente através da rede, sem necessidade de transferi-los previamente para o computador local. Essa forma de acessar midia pode ser usada também para video online, tal como o de câmeras IP. Para acessar uma câmera IP no Kodi, deve-se criar um arquivo especial dentro de uma fonte de midia local. Dentro desse arquivo deve-se escrever URL da câmera na rede. O nome do arquivo deve ter extensão .strm (abreviação de stream). Existe uma câmera IP no laboratório, a qual pode ser acessada nesta URL: rtsp://aluno:aluno@192.168.1.248:554/. Assim, para criar tal arquivo deve-se saber como editar um arquivo de texto.
|
23/08: Continuação
Aula 8 |
---|
Continuação das atividades sobre editores de texto. Ajustes finos no KodiO kodi é um programa cuja configuração e demais arquivos de trabalho residem em um diretório especial. Esse diretório é criado pelo próprio kodi para armazenar todos os arquivos necessários a suas operações. Ele se chama .kodi' e se localiza no diretório pessoal do usuário que executa o kodi. Investigue o subdiretório .kodi. Identifique a estrutura de subdiretórios ali contida, e também os arquivos armazenados.
A segunda atividade envolve o uso de um editor de texto, seja em modo gráfico ou em modo texto. Por fim, devem-se obter informações sobre o formato de texto dos arquivos de configuração do kodi (dica: esse formato é identificado pela extensão do nome desses arquivos).
Compartilhando videos entre Kodi
Desafios
Para conseguir ativar essas funcionalidades no seu media center, são necessários alguns conceitos básicos sobre comunicação de dados e redes de computadores. Não custa revisá-los ... Atividade extraUma câmera de video também pode ser acessada por meio do Kodi, que apresenta sua imagem na tela. No laboratório existe uma câmera IP, que pode ser acessada com esta URL:
Acesse essa câmera com seu Kodi. Algumas dicas podem ser obtidas aqui.
|
28/08: Backups
Aula 9 |
---|
A aula de hoje tem este objetivo:
Atividade
|
30/08: Projeto 1: backups (continuação)
Aula 10 |
---|
Hoje serão vistos os compactadores existentes no Linux, e realizados alguns exercícios sobre eles. Em seguida, será apresentada a atividade para fins de avaliação da primeira etapa da disciplina. AtividadeFaça os exercícios abaixo usando tanto o ambiente gráfico, por meio do gerenciador de arquivos, quanto os compactadores no modo texto:
|
4/09: Projeto 1: conclusão
Aula 11 |
---|
A etapa 1 envolveu usar um centro de midia para proporcionar um primeiro contato com o sistema operacional Linux. Foram apresentadas as duas interfaces de usuário, sendo elas a interface gráfica (GUI) e a linha de comando (CLI ou, simplesmente, shell). Aprenderam-se conceitos básicos, tais como diretórios, arquivos e permissões, e usaram-se aplicativos gráficos e programas pela linha de comando para manipulá-los. Isso deve ser suficiente para que se consiga usar o sistema operacional e os aplicativos nele disponíveis. A conclusão da etapa 1 envolve implantar um serviço de compartilhamento de arquivos para disponibilização de midia remota. Esse serviço tem por finalidade oferecer acesso remoto a arquivos de video e audio para centros de midia. Além disso, deve ser possível acrescentar e remover remotamente os arquivos de midia compartilhados. Esses tipos de transferência de arquivos podem ser descritas assim:
Quando as transferências são feitas para fins de modificação no conjunto de arquivos existentes, o acesso deve ser autenticado por meio de um usuário e sua senha. Pode haver mais de um usuário com permissão de modificar os arquivos compartilhados. Ao acessar o serviço, um usuário tem acesso a seu diretório pessoal de arquivos compartilhados. Assim, cada usuário pode compartilhar suas fontes de video e audio para centros de midia. Acessos feitos por centros de midia são anônimos, não exigindo um usuário e senha válidos. Esse tipo de acesso possibilita o acesso a diretórios que contêm os arquivos de midia compartilhados. Cada diretório compartilhado deve possuir apenas um tipo de arquivo de midia: video ou audio. Assim, um usuário que deseje compartilhar tais tipos de arquivos deve estruturar seus diretórios compartilhados de forma a oferecer diretórios compartilhados de video ou audio distintos. O tipo de serviço que melhor atende essa necessidade se chama FTP. Existem vários programas que implementam esse serviço para o Linux, e assim um deles devem ser escolhido e instalado. A lista a seguir apresenta algumas opções para servidores FTP (procure informações sobre eles na web):
Atividades
|
6/09: Projeto 1: conclusão
Aula 12 |
---|
11/09: Projeto 1: conclusão e apresentação
Aula 13 |
---|
18/09: Etapa 2: uma rede residencial com acesso a Internet
Aula 14 | ||
---|---|---|
A etapa 1 envolveu ter um primeiro contato com o sistema operacional Linux. Foram apresentadas as duas interfaces de usuário, sendo elas a interface gráfica (GUI) e a linha de comando (CLI ou, simplesmente, shell). Aprenderam-se conceitos básicos, tais como diretórios, arquivos e permissões, e usaram-se aplicativos gráficos e programas pela linha de comando para manipulá-los. Isso deve ser suficiente para que se consiga usar o sistema operacional e os aplicativos nele disponíveis. Para finalizar a etapa 1 cada aluno implementou um repositório FTP para disponibilização de arquivos de midia para serem acessados pelo Kodi. A etapa 1 do projeto integrador partiu do princípio de que toda a infraestrutura necessária estaria pronta, portanto ele foi desenvolvido sobre um computador devidamente instalado e operacional, e também usando uma rede de computadores devidamente configurada. Porém, em um caso real, possivelmente essa infraestrutura não exista. A etapa 2 trata de, partindo do zero, implantar uma rede residencial com acesso a Internet. Essa rede deve ter ao menos um computador, uma rede sem-fio e um enlace ADSL para acesso a Internet. Essa nova etapa implica implantar o seguinte cenário:
Plano geral de trabalho da Etapa 2
Particionamento do discoDeve-se instalar o sistema operacional com particionamento manual do disco. As partições devem ser:
|
20/09: Etapa 2: preparação de um computador
Aula 15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Obtendo o computadorO computador de cada equipe precisa ser especificado e então montado. Os componentes necessários para cada computador precisam ser identificados e escolhidos, para então montá-los. Por isso, primeiro precisamos enumerar que componentes são esses. Para ajudar essa tarefa, primeiro vamos entender a estrutura geral de um computador do tipo PC.
Tabela de componentes dos computadoresProcure no seu computador os componentes da tabela abaixo. Identifique o fabricante e modelo, e demais informações úteis.
Videos ilustrativos
Uso de RaspberryPi como computadorRaspberryPi é um projeto com o propósito de disponibilizar computadores de baixo custo e alto desempenho para que pessoas possam aprender, resolver problemas e se divertirem. O computador RaspberryPi, chamado daqui em diante de Rpi, tem tamanho de um cartão de crédito, bastando teclado e mouse USB, monitor com entrada HDMI e fonte de alimentação para ser utilizado. Ele possui 1 GB RAM e processador ARM de quatro núcleos com clock de 1.2 GHz. Para acesso à rede ele possui interfaces de rede ethernet e Wifi, além de Bluetooth.
Instalação do sistema operacional no RpiA instalação do sistema operacional segue praticamente o mesmo procedimento da aula anterior. Porém desta vez será necessário gravar a imagem do sistema operacional em um cartão de memória microSD, que funcionará como o disco rígido do Rpi. De acordo com as instruções contidas no site do Rpi, a instalação deve ser feita assim:
ExercíciosOs conceitos e termos técnicos vêm se acumulando gradativamente. Como exercício de compreensão, explique o que significa:
Tarefa para dia 25/09Você recebeu a tarefa de especificar um computador a ser comprado em sua empresa. Esse computador deve ser usado para rodar programas de escritório. A empresa optou por adquirir os componentes em separado, de forma a montar o computador. Sendo assim, selecione todos os componentes desse computador, informando fabricante, modelo e preço. Use componentes disponíveis em mercado atualmente. Inclua figuras para ilustrar as peças do computador que você escolheu. A entrega da especificação deve ser feita por meio desta atividade no Moodle. |
25/09: Projeto 2: ajuste fino da instalação do sistema operacional
Aula 16 | ||
---|---|---|
Configuração da rede no computador da equipeO projeto 2 envolve não somente instalar e fazer o ajuste fino do computador da equipe, mas também implantar a rede através da qual ele se comunica com outros dispositivos e com a Internet.
192.168.1.1
Os octetos desse endereço são: 192, 168, 1 e 1. Exercícios:
Atividade
Arquivo /etc/network/interfacesO arquivo /etc/network/interfaces contém declarações para configurar as interfaces de rede. Um exemplo de configuração básica contida nesse arquivo pode ser vista a seguir: auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
Esse exemplo pode ser interpretado assim:
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 172.18.80.251
netmask 255.255.128.0
gateway 172.18.0.254
dns-nameservers 191.36.8.2 191.36.8.3
O manual do arquivo /etc/network/interfaces apresenta muitos outros detalhes sobre possíveis configurações de rede. Acesso remoto ao computadorUm dos objetivos do projeto é adquirir familiaridade com a operação do sistema operacional. Após a instalação do seu computador, pode-se aproveitar a oportunidade para experimentar algumas ações comuns de serem feitas nesse tipo de sistema. Dentre elas, o acesso e administração remota de um computador é de grande utilidade.
O acesso remoto a um terminal de texto atualmente se faz com um aplicativo chamado SSH (Secure Shell). Seu uso básico é bastante simples, bastando informar o endereço IP do computador onde se deseja fazer o acesso. Além disso, é necessário possuir uma conta de usuário nesse computador.
OBS:
|
27/09: Projeto 2: Usuários e grupos
Aula 17 |
---|
Usuários e gruposUm usuário Linux é uma entidade que possui uma identificação no sistema onde os principais parâmetros são: login, senha, e número de identificação. Estas informações permitem ao Linux controlar como o acesso é garantido aos usuários e o que eles podem fazer depois de obter a permissão de acesso. Um grupo é um conjunto de usuários. Cada grupo também possui identificação única no sistema, um nome e um número. O administradores de sistemas normalmente fazem controle de acesso por meio dos grupos. Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações:
As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de bases de dados de usuários). Dentre elas, a mais simples é composta pelo arquivo /etc/passwd: root:x:0:0:root:/root:/bin/bash sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash Acima um exemplo de arquivo /etc/passwd Cada linha desse arquivo define uma conta de usuário no seguinte formato: nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell O campo senha em /etc/passwd pode assumir os valores:
O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:
Um exemplo do arquivo /etc/shadow segue abaixo: root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922:::::: suse-ncc:!:13922:0:99999:7::: uucp:*:13922:::::: wwwrun:*:13922:::::: roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7::: Exercício: quando a senha do usuário roberto irá expirar ? Um grupo é um conjunto de usuários definido da seguinte forma:
Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo /etc/group a mais simples delas: root:x:0: trusted:x:42: tty:x:5: utmp:x:22: uucp:x:14: video:x:33:roberto www:x:8:roberto users:x:100: radiusd:!:108: vboxusers:!:1000: Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em /etc/passwd), ou que aparecem listados em /etc/group. Gerenciamento de usuários e gruposPara gerenciar usuários e grupos podem-se editar diretamente os arquivos /etc/passwd, /etc/shadow e /etc/group, porém existem utilitários que facilitam essa tarefa:
AtividadeEsta parte da atividade cada aluno executa individualmente em sua máquina, fazendo uso da devida máquina virtual.
|
02/10: Projeto 2: Usuários e grupos
... continuação.
Aula 18 |
---|
04/10: Projeto 2: Permissões
Aula 19 |
---|
Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa. Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos. O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes. Quando se executa ls -l em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte: > ls -l total 403196 drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/ -rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2 -rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2 -rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe -rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe > As colunas que aparecem na listagem são:
O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10). A figura a seguir destaca as classes de permissões mostradas em uma listagem de diretório.
A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório. A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários:
Há também o utilitário umask, que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos:
Atividade
|
09/10: Projeto 2: acrescentando discos ao computador
Aula 20 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Particionamento do discoDeve-se instalar o sistema operacional com particionamento manual do disco. As partições devem ser:
Partições e sistemas de arquivos
Imagine que um novo disco rígido foi instalado no seu computador. O que é necessário fazer para usá-lo ? O mesmo vale para o uso de um pendrive, ou a leitura de um DVD ou CD. Essas midias armazenam arquivos, e, desta forma, possuem um sistema de arquivos. Mas como integrá-lo ao sistema operacional ?
Guia rápido sobre criação de partiçõesO particionamento de disco APÓS a instalação do sistema operacional pode ser necessária em algum momento. O procedimento a ser visto em boa parte pode ser aplicado também ao caso da instalação de um segundo (ou terceiro ...) disco ao computador. Basicamente deve-se fazer o seguinte:
Atividades |
11/10: Projeto 2: Processos e Instalação de softwares
Aula 21 |
---|
Aula passada vimos como usuários e grupos podem ser usados para organizar e proteger o acesso a recursos mantidos pelo sistema operacional (arquivos, programas, dispositivos de entrada e saída, ...). Hoje estudaremos o que são processos, como obter informações sobre eles e como terminá-los. Além disso, veremos também como processos podem usar suas entrada e saída padrão para receber dado para processar e apresentar resultados, e também para se comunicarem.
ProcessosJá vimos que sistemas operacionais modernos, como Linux, FreeBSD, Windows, e Android, são capazes de executar múltiplos programas ao mesmo tempo. No caso dos sistemas operacionais Unix, e o Linux pertence a essa família, processos são programas em execução. Um programa contém instruções e dados armazenados em um arquivo. Ao ser executado um arquivo, cria-se um processo. O sistema operacional carrega as instruções e dados em memória RAM, e faz o processador executá-las. Múltiplos processos podem ser criados a partir do mesmo arquivo de programa, sendo executados de forma independente. Os detalhes de como manter todos os processos em memória, e revezar suas execuções de forma a parecer que são simultâneos, são responsabilidade do sistema operacional.
Atividade
Instalação de softwareA instalação de software pode ser feita de diferentes maneiras:
No escopo desta disciplina de Projeto Integrador, são usados pacotes de software. Mas nada impede que se demonstre como seria realizar uma instalação a partir do código-fonte, caso exista a curiosidade. No Ubuntu Linux (e também nas distribuições originadas no Debian), o sistema de pacotes de software se chama dpkg (Debian Package). Existem diferentes formas de instalar e remover sofware, dentre elas:
Instalação manual com dpkgPara instalar pacotes de software manualmente, primeiro devem-se obter os respectivos arquivos de instalação. Cada pacote de software está contido em um arquivo com extensão .deb. Esses arquivos podem ser obtidos dos CD e DVD de instalação, ou de repositórios na Internet. Exemplos:
dpkg -i nome_do_pacote.deb
Se o pacote de software não puder ser instalado, uma mensagem de erro é apresentada. Uma causa para esse problema é existirem dependências em relação a outros pacotes de software, os quais devem então ser instalados previamente.
dpkg -r nome_do_pacote
Se o pacote a ser removido for dependência para outros pacotes instalados, a remoção será abortada.
dpkg-query -l
A listagem dos arquivos instalados por um pacote é mostrada com este outro comando: dpkg-query -L nome_do_pacote
dpkg-query -p nome_do_pacote
Obtenção automática de softwareOs pacotes de softwares dos sistemas operacionais Ubuntu e Debian são organizados e disponibilizados em repositórios, que são servidores na Internet onde há cópias dos arquivos de instalação desses pacotes. Os repositórios são configurados durante a própria instalação do sistema, ficando registrados no arquivo /etc/apt/sources.list. Esse arquivo pode ser modificado para incluir ou remover repositórios, quando necessário.
AtividadeExecute os passos seguintes tanto com instalação manual quanto automática de software.
|