Mudanças entre as edições de "Sistemas Operacionais e Introdução a Programação (diário 2009-2)"
Linha 52: | Linha 52: | ||
==26/08: Revisão de Sistemas Operacionais== | ==26/08: Revisão de Sistemas Operacionais== | ||
Assumindo como cenário o sistema operacional GNU/Linux para auxiliar nas respostas: | Assumindo como cenário o sistema operacional GNU/Linux para auxiliar nas respostas: | ||
− | + | ====Por que as permissões em arquivos são tão importantes?==== | |
− | + | Pelo fato de o sistema prover um ambiente multi-usuário, é preciso que haja limites para cada um dos usuários desse sistema, não só para controlar o acesso a arquivos pessoais mas também a informação referente ao próprio S.O. - acesso ao arquivo de senhas, por exemplo. | |
# Como se dá o controle de acesso a arquivos abertos por processos? | # Como se dá o controle de acesso a arquivos abertos por processos? |
Edição das 13h43min de 27 de agosto de 2009
27/07: NÃO HOUVE
29/07: NÃO HOUVE
03/08: NÃO HOUVE
05/08: NÃO HOUVE
10/08: História dos Sistemas Operacionais e das Linguagens de Programação
- Tópicos: história, evolução dos sistemas operacionais e das linguagens de programação.
- Referências externas:
12/08: Usuários e Grupos
- Tópicos: usuários e grupos, relação nome vs. número de identificação, permissões e propriedades.
- Para consulta: dicionário de comandos *nix.
- Referência externa: Guia Foca Linux - versão iniciante: cap. 11.
Atividades
- Quem pode executar o comando /usr/bin/firefox? O usuário aluno pode modificar tais permissões?
- Para o comando acima mencionado, informe quais as permissões e propriedades necessárias para permitir que apenas usuários do grupo "internet" possam executá-lo.
- Se um dado arquivo tiver as permissões 000 (formato octal de representação), mesmo assim o usuário root tem permissão de leitura. Por quê?
- A partir do diretório raiz (/), quais são todos os diretórios em que o usuário aluno pode criar arquivos e subdiretórios? Para cada caso, informe que propriedades e permissões garantem tal direito.
- Um certo programa, chamado firefox-3.6, foi descarregado da Internet pelo usuário aluno, mas ele não pode ser executado. Que permissões garantem que ele possa ser executado por tal usuário?
- Qual a lista completa de usuário e grupos do sistema operacional Linux? A resposta está em dois arquivos que utilizamos como exemplo... eles estão no diretório /etc.
17/08: Processos
- Tópicos: árvore de processos, escalonamento de processos e seus estados.
- Referência externa: Cap. 2 do livro Sistemas Operacionais Modernos - particularmente os tópicos vistos em aula.
19/08: Sistemas de Arquivos
- Tópicos: arquivos e diretórios, hard link e soft link, sistema de arquivos corrente e pontos de montagem.
- Referência externa:
- Prof. Sobral: transparência 3.
- Cap. 6 do livro Sistemas Operacionais Modernos - particularmente os tópicos vistos em aula.
Atividades
- Quantos processos chamados bash estão rodando no sistema?
- Se todos os processos bash forem encerrados, todas as sessões de usuário (logins) também o serão? Por quê?
- O comando top pode mostrar todos os processos de um certo usuário, como por exemplo aluno? O comando ps também? Por que um processo precisa ter um usuário associado a ele?
- É possível identificar, através do comando top, quais processos estão em estado bloqueado?
- É possível criar um soft link de outro soft link? Eles conterão o mesmo conteúdo?
- Se o conteúdo de um certo arquivo é acessado pelo seu soft link, por que este arquivo (original) tem a data de modificação alterada?
- Um arquivo pode ter, como conteúdo, um sistema de arquivos? Explique como isso é possível, e qual o processo de ler este conteúdo.
- Crie um soft link com o nome /tmp/diretorioNovo/arquivoNovo para o arquivo /etc/passwd. Em caso de dúvida, consulte a lista de comandos.
- É possível bloquear o uso do comando ls - armazenado no diretório /bin - apenas retirando as permissões de execução? Por quê? Exemplifique com o usuário aluno.
24/08: Linguagens de Programação
- Tópicos: linguagens de programação, execução de programas.
26/08: Revisão de Sistemas Operacionais
Assumindo como cenário o sistema operacional GNU/Linux para auxiliar nas respostas:
Por que as permissões em arquivos são tão importantes?
Pelo fato de o sistema prover um ambiente multi-usuário, é preciso que haja limites para cada um dos usuários desse sistema, não só para controlar o acesso a arquivos pessoais mas também a informação referente ao próprio S.O. - acesso ao arquivo de senhas, por exemplo.
- Como se dá o controle de acesso a arquivos abertos por processos?
- As permissões a arquivos, sejam eles executáveis ou não, se dão por uma lista de controle de acesso: usuário (dono do arquivo), grupo e outros. Se o usuário possui a permissão por ele desejada (leitura, escrita ou execução), terá o respectivo acesso ao arquivo. Isso acontecerá para um executável (permissão de execução), por exemplo. E como um processo está sempre associado a um usuário (ou por padrão outorgados ao root), ainda assim tem-se a relação usuário-permissões, as quais serão utilizadas para abrir arquivos. Exemplo: o comando cat que lerá o arquivo /etc/passwd
- Todo processo tem um dono? Por quê?
- Todo arquivo tem um dono, e todo processo também. Parte desta resposta já fora apresentada na questão anterior, mas cabe complementar: é preciso estabelecer 'limites para os usuários e seus processos e arquivos, a fim de que não haja abuso ou mesmo a inoperância do sistema como um todo por causa de falhas humanas e/ou má fé.
Quais são os estados de um processo? O que um processo entrar para o estado bloqueado? Qual a relação entre escalonamento preemptivo e prioridade de processos? É possível haver vários sistemas de arquivos montados ao mesmo tempo, de forma hierárquica? Por quê? O que é swap e qual a sua função? O que é um interpretador de comandos? Cite um exemplo e um cenário onde ele apareça. O que é kernel? Por que ele é tão importante? Cite pelo menos 3 funções dele. Qual a diferença entre arquivo executável e processo? Processos consomem recursos como processamento, memória e barramento: comente e mostre em uma captura de tela.