TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho Disciplina de Sistemas Operacionais

Por:   •  14/9/2022  •  Artigo  •  771 Palavras (4 Páginas)  •  104 Visualizações

Página 1 de 4

Trabalho Prático (mini-shell) – 2ª Unidade

Disciplina de Sistemas Operacionais 

TRABALHO PRÁTICO 1

Desenvolvendo um mini-shell

 

OBJETIVOS: Este trabalho visa o desenvolvimento de um interpretador de comandos  internos fornecendo aos alunos um primeiro contato com programação avançada em UNIX tendo como base a linguagem C.

 

EQUIPE: O trabalho deve ser desenvolvido por no máximo TRÊS alunos e apresentado ao professor. Deve ser entregue um relatório com todo o desenvolvimento do trabalho.

 

PONTUAÇÃO: No máximo três pontos e meio, dependendo do trabalho desenvolvido.

 

DESCRIÇÃO: O interpretador de comandos deve apresentar um sinal de prontidão (prompt) ao utilizador e aguardar que este introduza um comando, que é então interpretado pelo shell. Este processo se repetirá até que o utilizador digite exit.

 

            ciclo {

                        afixa prompt;

                        lê linha;

                        interpreta a linha e executa o comando

                                   (se for “exit”, o programa termina)

            }

 

           COMANDOS:

 

  • mkdir argumento: Criar um diretório (ex.: mkdir /home/pedro/xpto)
  • ls argumento: Listar arquivos e diretórios (usar variantes ls –a e ls –l)
  • pwd: Retorna a árvore de diretórios corrente
  • cd argumento: Entrar em um diretório (usar variantes cd nomediretorio e cd..)
  • mv argumento1 argumento2: Mover diretórios ou arquivos
  • rm argumento: Remover arquivos e diretórios
  • cp argumento 1 argumento 2: Copiar arquivos e diretórios
  • cat argumento 1: Mostrar o conteúdo de um arquivo
  • sort: ordena dados (usar ls | sort)
  • exit: Sair do prompt

 

OBSERVAÇÕES:

 

         Não esquecer de trabalhar com funções de chamadas de sistema;

         Se uma chamada de sistema falhar, o programa em execução deve apresentar uma mensagem de erro apropriada;

         Se for digitado um comando que não seja reconhecido, apresentar uma mensagem indicando para o utilizador.

 

ORIENTAÇÕES PARA DESENVOLVIMENTO DO TRABALHO:

 

    Pode-se começar o desenvolvimento do ciclo isolando cada uma das palavras digitadas e reconhecer alguns comandos, indicados na primeira palavra. Ex.: comando arg1 arg2...

O interpretador deve separar cada uma das palavras pelos espaços em branco ou tabulações, usando um vetor de strings.

Linhas em branco devem ser ignoradas.

Comece por implementar o ciclo acima e o código que analisa cada linha de comando isolando cada palavra. Deve ser capaz de construir um vector de strings, onde cada posição desse vector tem (aponta) uma palavra, à semelhança do argv na função main do C/C++. Sugere-se assim que leia para um vector toda a linha de comando (veja fgets) e siga uma das duas abordagens seguintes: 

...

Baixar como (para membros premium)  txt (4.2 Kb)   pdf (119.2 Kb)   docx (10.8 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com