Mudanças entre as edições de "Sistemas Operacionais (técnico)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
{{Código |}}
+
{{Código | SOP12501}}
 
{{Carga Horária |2|40}}<br>  
 
{{Carga Horária |2|40}}<br>  
{{Pré-Req || | |}}<br>
+
<!-- {{Pré-Req || | |}}<br> -->
 
{{Pós-UE  |[[Redes de Computadores]] | | |}}
 
{{Pós-UE  |[[Redes de Computadores]] | | |}}
  
Linha 483: Linha 483:
 
{{Professor|2010-2|[[Eraldo Silveira e Silva]]}}
 
{{Professor|2010-2|[[Eraldo Silveira e Silva]]}}
 
{{Professor|2013-2|[[Juliana Camilo Inácio]]}}
 
{{Professor|2013-2|[[Juliana Camilo Inácio]]}}
 +
{{Professor|2014-1|[[Bruno Fontana da Silva]]}}
 
{{Curso_Tec_26}}
 
{{Curso_Tec_26}}

Edição atual tal como às 20h03min de 1 de março de 2014

CÓDIGO DA UNIDADE CURRICULAR - SOP12501
CARGA HORÁRIA: 2 horas/semana = 40 horas.
UNIDADES CURRICULARES CLIENTES: Redes de Computadores , , ,

Competências

Habilidades

Bases Tecnológicas

Diários de Aula

Aula 9 - Ainda Permissões de acesso a arquivos e diretórios - Uso da umask e exercícios complementares

Objetivos

  • Uso da umask;
  • Exercícios adicionais.

Uso da umask

A umask é uma palavra binária que permite definir quais são as permissões que serão dadas na criação de um arquivo ou de um diretório. A regra geral para formação destas permissões é:

  • Para arquivo: 666 AND (NOT umask);
  • Para diretório: 777 AND (NOT umask);

Ou seja, suponha que vamos criar um arquivo. A umask pode ser verificada com o comando:

umask

Normalmente esta máscara é 022. Se você criar um arquivo ele terá as seguintes permissões:

666 AND (NOT 022) = 666 AND 755 = 644

Ou seja, direito de rw para usuário, r para grupo e outros.

Para diretórios seria:

777 AND (NOT 022) = 777 AND 755 = 755

Ou seja, direito de rwx para usuário, rx para grupo e outros.

Se você usar o comando:

umask -S

será possível visualizar estas permissõeses de forma simbólica.

Usando a umask

  1. Modifique a umask para que todos os arquivos criados para outros tenham direito de leitura e escrita (e execução para diretórios). Basta aplicar o comando umask e a máscara a ser aplicada;
  2. Crie um arquivo qualquer:
  3. touch teste.txt
  4. Crie um diretório qualquer qualquer:
  5. mkdir teste
  6. Confira os resultados:
  7. ls -l
  8. Volte a umask ao valor inicial

Exercícios adicionais

Usando uma máquina virtual, como na aula anterior, criar 4 usuários: joao, maria, jose e lara. Os usuários joao, maria e lara pertencem a um grupo projX, que também deve ser criado (se ainda não existir).

Algumas restrições de permissão

O usuário joao possui os seguintes diretórios: docs_outros, docs_pessoais e docs_projX. Ele colocou as seguintes restrições de acesso:

  1. Em docs_pessoais somente joao pode criar e ver arquivos e diretórios, todos os demais grupos e usuários não tem permissão alguma. Em docs_projX, somente joao e os integrantes do grupo projX podem criar arquivos e entrar no diretório;
  2. Em docs_outros qualquer um pode entrar e listar o diretório mas não pode criar ou renomear arquivos no mesmo;

Testando permissões

  1. Logue como joao e crie os arquivos alfa.txt e beta.txt no diretório docs_pessoais com direito de acesso a somente leitura para outros. Dê acesso a leitura e escrita para proprietário e grupo.
  2. Logue como maria e teste os direitos de acesso aos diretórios criados por joao.
  3. Logue como jose e tente entrar nos diretórios criados por joao. Qual deles permite este acesso?
  4. Faça lara criar um arquivo em docs_projX;


Aula 10 - Entradas e Saídas Padrão

Objetivos

  1. Conceituar e trabalhar entradas e saída padrão, saída de erros padrão e pipes;
  2. Trabalhar os comandos cut, find, wc, grep, head e tail.

Redirecionamento de entrada e saídas

Sempre existem 3 arquivos "abertos" por default para um determinado processo. São eles a entrada padrão (stdin, normalmente associada ao teclado), stdout (normalmente associada a tela) e a saída padrão de erros (stderr, normalmente associada a tela). Estes arquivos podem ser modificados resultando no que se chama de redirecionamento das entradas e saídas do processo.

Cada arquivo aberto, associado a um processo, possui um descritor identificado por um número que se constitui em um índice de uma tabela de arquivos abertos associados ao processo. Segue-se um resumo da forma de realizar redirecionamento.

Redireção de stdout (arquivo lista é sobrescrito):

ls > lista

Redireção de stdout fazendo um append ao arquivo de saída:

ls >> lista

Cria/sobreescreve um arquivo de tamanho zero, similar ao touch

> lixo

Resumo das redireções das saídas:

  • 1>filename # Redireciona stdout para o arquivo filename
  • 1>>filename # Redireciona e acrescenta a stdout para o arquivo filename
  • 2>filename # Redireciona stderr para o arquivo filename
  • 2>>filename # Redireciona e faz append da stderr para o arquivo filename
  • &>filename # Redireciona ambos stdout and stderr para o arquivo filename

Exercícios

  1. Listar o diretório corrente, de forma detalhada e em ordem crescente de modificação, redirecionando a saída para um arquivo ListaOrdenada:
  2. ls -l > ListaOrdenada
  3. Acrescentar ao final (append) do arquivo ListaOrdenada, a data atual:
  4. date >> ListaOrdenada
  5. Criar um arquivo chamado teste1, com a frase “Alo Mundo”, usando o comando echo e redirecionamento de saída:
  6. echo Alo Mundo > teste1
  7. Criar um arquivo vazio usando somente > arquivo:
  8. > ArquivoVazio

    Acho que esta é a forma mais rápida de criar um arquivo vazio!

  9. Aplicar um comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída para lixo1:
  10. ls /eetc > lixo1
  11. Conferir o conteúdo de lixo1:
  12. cat lixo1
  13. Repetir o comando ls ao diretório /eetc (intecionalmente errado) redirecionando a saída de erro para lixo2:
  14. ls /eetc 2> lixo2
  15. Conferir o conteúdo de lixo2:
  16. cat lixo2
  17. Ordenar o arquivo passwd:
  18. sort < /etc/passwd > PasswdOrdenado

Pipes

A filosofia do unix/linux é resolver pequenos problemas com comandos simples. É possível no entanto resolver problemas mais complexos encadeando saídas em entradas, usando pipes.

  1. Listar de forma controlada (rolando a tela) o diretório /etc:
  2. ls -l /etc | more
  3. Procurar arquivos com terminação .conf no diretório /etc, usando o comando find e redirecionar a saída de erro para /dev/null (equivalente a uma lixeira mas sem volta!):
  4. find /etc -name passwd 2> /dev/null
  5. Repetir o exercício anterior fazendo um pipe para o comando wc (com flag -l para contar o número de linhas) a fim de verificar o número de ocorrências dos arquivos procurados:
  6. find /etc -name passwd | wc -l
  7. Eliminar a saída de erros do comando anterior:
  8. find /etc -name passwd 2> /dev/null | wc -l
  9. Usar um pipe com cat e wc para determinar quantas linhas existe no arquivo /etc/passwd:
  10. cat /etc/passwd | wc -l
  11. Repetir o exercício anterior para verificar quantos caracteres contem o arquivo:
  12. cat /etc/passwd | wc
  13. Listar o campo 1 do arquivo passwd:
  14. cat /etc/passwd | cut -f 1 -d :
  15. Conferir com o comando man o uso do comando cut:
  16. man cut

Outros Exercícios

  1. O comando grep pode ser usado para verificar ocorrências de palavras em (padrões) em um arquivo. Por exemplo:
  2. grep aluno /etc/passwd
  3. Componha um comando usando cut, grep e wc para verificar quantos userid possuem a cadeia "un";
  4. Gere um arquivo contendo somente os campos userid e nome completo de usuários que constam do arquivo passwd;
  5. Pesquisar o comando head e gerar um arquivo chamado DezLinhas contendo as 10 primeiras linhas do arquivo /etc/passwd;
  6. Repetir o exercício anterior para as 5 primeiras linhas;
  7. Pesquisar o comando tail e gerar um arquivo chamado DezUltimas com com as 10 últimas linhas do arquivo /etc/passwd mas ordene estas linhas com o comando sort (use pipes).

Aula 11 - Gerenciamento de Processos

Objetivos

  1. Consolidar o conceito de processo;
  2. Usar o comando ps para verificar os processos do sistema;
  3. Encerrar, suspender e reativar processos suspensos.

Estados de Processos no Linux

Os estados possíveis de um processo no linux são:

  • R se executando (running) ou na fila de execução;
  • D dormindo na espera por algum evento;
  • S dormindo na espera por algum por algum evento ou sinal (interruptible sleep);
  • T (stopped) Parado (por um sinal ou sendo depurado);
  • Z processo Zombie (foi terminado mas ainda presente no sistema).

Uma forma de outros processos ou do próprio sistema operacional se comunicar com processos é transmitir sinais para o mesmo. Existem vários tipos de sinais. Um dos mais famosos é o SIGKILL que "mata" o processo. O sinal SIGSTOP para um processo e o sinal SIGCONT faz com que um processo parado continue a sua execução.

Para ver todos os processos do sistema pode-se fazer:

ps aux | more

Note a coluna PID. Ela indica o número identificador do processo. Em STAT pode-se observar o estado do processo. Existe uma relação de paternidade entre processos e é possível verificar uma árvore de processos com pstree. O comando top é uma espécide ps em tempo real.

Roteiro

  1. Logar no sistema, na interface gráfica, como aluno;
  2. Abrir um console de trabalho: Aplicações -> Acessórios -> Console
  3. Verificar o terminal que você está:
  4. tty

    O comando tty mostra o nome do terminal que será associado a entrada padrão dos processos que sobre ele se executarem.

  5. Executar o comando yes:
  6. yes Testando

    Este comando, quando executado, se torna um processo cuja função é imprimir constantemente na saída padrão a cadeia de caracteres passada como parâmetro

  7. Para encerrar o processo que está ocupando o terminal faça:
  8. CTRL-c ou (CTRL-c)

    Observe que o processo foi "morto". O CTRL-c envia um sinal SIGKILL para o processo.

  9. Coloque novamente o processo em execução, mas agora em background:
  10. yes Testando > /dev/null &
  11. Trazer o processo novamente para o terminal (colocar em foreground):
  12. fg
  13. Suspenda o processo com:
  14. CTRL-Z ou (CTRL-SHIFT-z)

    Suspender o processo é parar o processo mas mantendo-o no sistema com todos os recursos menos a cpu.

  15. Coloque em execução mais algumas instâncias do processo yes:
  16. yes Testando > /dev/null & yes Testando > /dev/null &
  17. Neste momento existem 3 processos yes, sendo que dois em execução e um suspenso. Conferir os processos que você lançou com:
  18. ps u

    Este comando lista todos os processos atrelados aos diversos terminais e que pertencem ao usuário. Note que o próprio bash aparece. Um para cada terminal.

  19. Abra duas abas de console e para cada uma delas verifique o terminal que se encontra:
  20. tty
  21. Execute em cada uma delas (menos na primeira) um processo yes:
  22. yes Testando
  23. Volte para o primeiro terminal e liste todos os processos que estão atrelados aos terminais, usando a forma longa:
  24. ps l
  25. Faça também com comando topp para verificar os processos em execução:
  26. top
  27. Vamos "matar" um processo yes do terminal 2:
  28. kill -KILL <numero_pid>

    Cada processo tem um identificador: PID. O PID deve ser fornecido no comando kill. Note que o comando kill envia sinais para um processo.

  29. Vamos usar o comando kill para suspender e continuar a execução do processo yes no terminal 3.
  30. kill -STOP <numero_pid>
  31. Ver os processos:
  32. ps -l

    Observe o código STAT. Os processos em execução estão com R (running), os parados com T (stopped). Os processos dormindo com S (sleeping)

  33. Coloque o processo em execução novamente:
  34. kill -CONT <numero_pid>

Alguns exercícios adicionais

  1. Execute o firefox a partir da interface gráfica. Descubra o PID do processo firefox e depois "mate-o";
  2. O processo init é o pai de todos os processos. Qual é o PID deste processo? Tente matar o processo init.
  3. Faça um ps aux e descubra quais são os três processos que mais consomem CPU.
  4. Pesquise o uso do comando killall e envie para o professor, via e-mail.

Aula 12 - Gerenciamento de Processos (revisão) e comandos úteis de empacotamento e compressão

Objetivos

  1. Comandos adicionais de gerenciamento de processos;
  2. Utilitários para empacotamento (tar) e compressão de arquivos (gzip e bzip2);

Roteiro - Parte 1

  1. Abrir um terminal e verificar o nome do mesmo:
  2. tty
  3. Executar o comando yes em background:
  4. yes Alo > /dev/null &
  5. Matar o processo pelo nome do executável:
  6. killall yes
  7. Ver processos se executando em tempo real:
  8. top
  9. Abrir outra aba e colocar o processo yes em execução
  10. yes
  11. Voltar a aba original e conferir a saída do top
  12. Sair do top com q

  13. Localizar um determinado processo em execução:
  14. ps aux | grep bash
  15. Ver a árvore hierárquica de processos:
  16. pstree -p

    note a relação de paternidade dos bashes

  17. Executando múltiplos comandos em uma linha:
  18. id;date id && date

Arquivamento e Compressão de Arquivos

Existem vários comandos para comprimir/descomprimir arquivos bem como para criar um arquivo único:

  • comando tar: usado para empacotar arquivos e diretórios dentro de um único arquivo chamado de tarball. É um comando interessante para realizar backups pois preserva a estrutura de diretórios bem como os atributois de arquivos.
  • comandos gzip e bzip2 para a compressão de arquivos;

Roteiro - Parte 2

  1. Criar um diretório
  2. mkdir teste
  3. Entrar para o diretório:
  4. cd teste
  5. Criar arquivos e diretórios dentro do diretório teste:
  6. touch alfa.txt mkdir beta touch beta/delta.txt
  7. Mudar o atributo do diretório beta:
  8. chmod 777 beta
  9. Conferir o atributo dos arquivos com
  10. ls -l
  11. Arquivar tudo em um só arquivo chamado arquivo.tar:
  12. tar -cf arquivo.tar alfa.txt beta

    O flag -c cria o arquivo (arquivo.tar) e o flag -f serve para fornece o nome do arquivo

  13. Remover os arquivos criados:
  14. rm alfa.txt rm -r beta
  15. Conferir a remoção:
  16. ls -l
  17. Restaurar arquivos:
  18. tar -xvf arquivo.tar

    O flag -x extrai arquivos e o flag -v verifica o andamento do procedimento

  19. Remover arquivo tar e conferir restauração:
  20. rm arquivo.tar ls -l
  21. Verifique os atributos dos arquivos restaurados usando ls -l. Eles foram preservados?
  22. Refazer o arquivamento dos arquivos e diretórios criados anteriormente mas agora acrescente o flag -p para preservar os atributos dos arquivos. Restaure os arquivos e confira se os atributos foram preservados.

Arquivar comprimindo

Na seção anterior, o comando tar empacotou arquivos em um arquivo único mas não compactou-os. Para comprimir um arquivo existem vários utilitários que usam algoritmos diferentes. Vamos ver o gzip e o bzip2.

  1. Copiar o arquivo passwd para o diretório corrente e compactá-lo com gzip:
  2. cp /etc/passwd ./ ls -lh #Isto serve para ver tamanho original do arquivo gzip passwd ls -lh

    O arquivo original é removido ficando apenas o comprimido! Note a terminação gz. Se usar o flag -c mantém o arquivo.

  3. Descomprimir o arquivo:
  4. gunzip passwd.gz
  5. Comprimir com bzip2:
  6. bzip2 passwd ls -lh #Isto serve para comparar o tamanho com o gerado pelo gzip. bunzip2 passwd.bz2 ls -lh
  7. Arquivar comprimindo:
  8. tar -cvjf arquivo.tar.bz2 alfa.txt passwd beta

    O flag -j comprime usando o comando bzip2 e o flag -z usa a compressão com gzip.

  9. Remover arquivos e conferir:
  10. rm alfa.txt rm -r beta ls -l
  11. Descomprimir arquivos:
  12. tar -xvjf arquivo.tar.gz
  13. Repetir a compressão usando o flag -z para comprimir com gzip;

Vendo espaço no sistema de arquivos

  1. Verificar o tamanho de arquivos:
  2. cd # vai para o diretório de entrada du -h # lista arquivos e seus tamanhos du -sh # tamanho total do diretório
  3. verificar espaços nos sistemas de arquivos:
  4. df -h

Trabalhos à apresentar

Cada apresentação tem 30 minutos e tem que ter uma pequena oficina.

O que é. Para que serve. Principais características. Equivalente do Windows. Tutorial de uso.

  1. Ferramentas de Escritório: OpenOffice Editor de Texto;
  2. Ferramentas de Escritório: OpenOffice Apresentação;
  3. Ferramentas de Escritório: OpenOffice Planilha Eletrônica;
  4. Área de Trabalho do Ubuntu: customização e Compiz;
  5. Ferramentas de Desenho: gnomepaint, dia e editor gráfico do OpenOffice;
  6. Browsers: Firefox e alternativas ao Firefox;
  7. Instalando aplicativos no Ubuntu: aptitude (apt-get) , Central de Programas do Ubuntu, Synaptic.
  8. Solução para leitura de pdf: acroread, okular e evince;
  9. Soluções de Áudio/Vídeo (Multimídia) Players: Totem, Amarok e Gravador de Som;
  10. Solução para execução de aplicações windows: wine;

Preparação para a avaliação

  1. Logar no sistema, na interface gráfica, como aluno;
  2. Abrir um console de trabalho: Aplicações ==> Acessórios ==> Console;
  3. Confira com pwd o diretório de trabalho;
  4. Crie um diretório e entre para o mesmo:
  5. mkdir aval2 cd aval2
  6. Coloque o seu nome através de um comando da forma:
  7. echo Joao da Silva
  8. Antes de cada exercício marque o número do mesmo. Por exemplo, para o exercício 1 faça:
  9. echo ex 1
  10. Não faça nada além do necessário para a execução do exercício.
  11. Aguarde a instrução para o início e ao finalizar NÃO desligue a máquina e deixe o terminal aberto para que o professor possa examinar.

Questões

  1. Com o comando echo e redirecionando a saída padrão CRIAR um arquivo chamado lista.txt com o seguinte conteúdo:
  2. maria:fase 1:tele:redes
  3. Ainda usando o comando echo ACRESCENTAR ao arquivo lista.txt o conteúdo:
  4. joao:fase 2:rac:ar condicionado
  5. Fazer um pipe com comandos cut, grep e wc no arquivo lista.txt para determinar o número de linhas do referido arquivo que contém alunos do curso de tele (campo 3 do arquivo);
  6. Executar o comando yes (sem parâmetros) em backgroud desviando a saída padrão para /dev/null;
  7. Trazer o processo novamente para o terminal (colocar em FOREGROUND);
  8. Abrir uma outra aba de terminal (não esqueça de colocar o echo ex) e enviar um sinal para PARAR o processo yes;
  9. Usando pipes, redirecionamento de saída e os comandos ps e grep gerar um arquivo contendo uma linha que mostra o processo yes e seu estado de PARADO (T);
  10. Enviar um sinal para CONTINUAR o processo anterior;
  11. Fazer um pipe com os comandos ps e wc para determinar o número total de processos que se executam no sistema;
  12. Matar o processo yes criado no outro terminal;

Finalizando

Deixe o terminal exatamente como está e a FOLHA da prova sobre a mesa. OBRIGADO!

Semestre 2013/2

Aula 01 (20/08/13): Apresentação da Disciplina.

Aula 02 (21/08/13): História da Computação e vídeos.

Aula 03 (27/08/13): Conhecendo o Computador Introdução ao Hardware

Aula 04 (28/08/13): Software Livre ; Material Auxiliar:(Apostila SL Shalata) (Cartilha SL); Atividade: (01)

Aula 05 (03/09/13): Exercícios 01, 02

Aula 07 (10/09/13): Correção dos exercícios. Introdução ao LINUX (Sistemas Operacionais, Carta Linus)

Aula 08 (11/09/13): Interface Gráfica do Ubuntu

Aula 09 (17/09/13): Criação de Máquina Virtual e Instalação do Ubuntu (Roteiro 01).

Aula 10 (18/09/13): Introdução Linux modo texto (Conceito de: Kernel e Shell, estrutura de diretórios, usuário e superusuário, diretório raiz, caminho absoluto e relativo; e comandos básicos: cd, .., ~), (Estrutura Diretórios Linux), notas de aula passadas no quadro. (Exercício Complementar),(Gabarito Exercício Complementar)

Aula 12 (25/09/13): Continuação Linux modo texto (Comandos básicos: ls, pwd, mkdir, touch, cp, cp -r, mv, man, --help, history, history -c). Notas de aula passadas no quadro. (Roteiro 02)

Aula 13 (01/10/13): Término do roteiro 02 e comandos: cat, more, rm, rm -r e rmdir.

Aula 14 (02/10/13): Exercícios (01, 02).

Aula 15 (08/10/13): Editor VI (Slides Editor VI), (Roteiro 03).

Aula 16 (09/10/13): Término do roteiro 03 e exercícios pendentes.

Aula 17 (15/10/13): Continuação Linux modo texto (cut, find, >, >>, *, ?, |, [],date, cal, w, ln).

Aula 18 (16/10/13): Inicialização do roteiro prático 04 (Roteiro 04). Exercícios Complementares: 1, 2, 3, 4, 5.

Aula 19 (22/10/13): Desenvolvimento do roteiro 04 e exercícios.

Aula 20 (23/10/13): Desenvolvimento do roteiro 04 e exercícios. Material auxiliar para estudo: Comandos Básicos

Aula 21 (29/10/13): Desenvolvimento do roteiro 04 e exercícios.

Aula 22 (30/10/13): Término do roteiro 04 e exercícios.

Aula 23 (05/11/13): Avaliação 1. Conteúdo: Linux Modo texto (todos os comandos vistos e editor VI). Permitido: Consulta apenas ao caderno. Não será permitida a consulta as folhas de exercício e roteiros. Sala 07.

Aula 24 (06/11/13): Cedida ao Prof. Alexandre Moreira.

Aula 25 (12/11/13): Entrega e Correção da Avaliação 1. Administração de Usuários e Grupos. Notas de aula passadas no quadro. (Roteiro 05)

Aula 26 (13/11/13): (Continuação) Administração de Usuários e Grupos. Notas de aula passadas no quadro.

Aula 27 (19/11/13): Desenvolvimento Exercícios para entregar.

Aula 28 (20/11/13): Desenvolvimento Exercícios para entregar.

Aula 29 (26/11/13): Permissionamento de arquivos e diretórios. Notas de aula passadas no quadro. (Roteiro 06)

Aula 30 (27/11/13): Instalação de Pacotes e Descompactadores. Arquivo Compactado para Download. Roteiro 07

Aula 31 (03/12/13): Particionamento e Formatação do Disco Rígido. Notas de aula passadas no quadro. Material Auxiliar, Roteiro 08

Aula 32 (04/12/13): Exercícios

Aula 33 (10/12/13): Avaliação 2.

Aula 34 (11/12/13): Recuperação da Avaliação 1.

Aula 35 (17/12/13): Recuperação da Avaliação 2.

Aula 36 (18/12/13): Recuperação Semestral.

Professores da Unidade Curricular


Grade do Curso Técnico de Telecomunicações com ênfase em Telefonia
Grade do Curso Técnico de Telecomunicações com ênfase em Redes de Computadores