Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
unix:o_ambiente_de_trabalho [2019/02/19 20:32] – maziero | unix:o_ambiente_de_trabalho [2019/02/19 20:38] (atual) – [O shell básico] maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== UNIX: O ambiente de trabalho ====== | ||
+ | |||
+ | ===== Sessão de trabalho ===== | ||
+ | |||
+ | O uso de UNIX se baseia na noção de //sessão de trabalho//. Cada usuário é designado por um //nome de login//, ou simplesmente //login//, com uma senha secreta associada. Uma sessão de trabalho típica consiste das seguintes etapas: | ||
+ | |||
+ | * O usuário identifica-se, | ||
+ | * A sessão de trabalho inicia, com o lançamento do shell (modo texto) ou do ambiente (modo gráfico). | ||
+ | * Uso do sistema (lançamento de comandos e aplicações). | ||
+ | * Fim da sessão (operação de //logout// ou // | ||
+ | |||
+ | O UNIX pode gerenciar diversas sessões simultâneas de usuários distintos na mesma máquina. Cada um terá uma visão independente e transparente dos recursos disponíveis, | ||
+ | |||
+ | ===== Interfaces gráficas ===== | ||
+ | |||
+ | No UNIX a interface gráfica é completamente separada do núcleo do sistema operacional. Isso permite uma grande versatilidade em relação aos ambientes gráficos disponíveis. A interface gráfica é construída em dois níveis: | ||
+ | |||
+ | * O servidor gráfico X-Window, que oferece as funcionalidades gráficas básicas, gerencia entidades básicas como regiões de tela e trata eventos relacionados à interface (como operações de mouse e teclado). | ||
+ | * O ambiente de trabalho, composto por vários processos, que implementam a decoração das janelas, menus, ícones, desktops virtuais, etc. | ||
+ | |||
+ | {{xwindows.png}} | ||
+ | |||
+ | Algumas características importantes diferenciam a arquitetura gráfica do UNIX daquela implantada em outros sistemas: | ||
+ | |||
+ | * O **ambiente gráfico é implementado fora do núcleo**. Com isso eventuais falhas na interface gráfica não comprometem a estabilidade do sistema. | ||
+ | * A comunicação entre o servidor gráfico, o ambiente e as aplicações é feita através de **sockets TCP/IP**, usando um protocolo especial chamado **X-Protocol**. Com isso é possível estabelecer conexões gráficas entre aplicações e servidores gráficos em máquinas separadas. | ||
+ | * Os processos que implementam o ambiente de trabalham são executados com o identificador do usuário (UID), com isso várias sessões gráficas distintas podem ser suportadas na mesma máquina, em displays distintos. | ||
+ | * Existem dezenas de possibilidades de ambientes gráficos distintos, à escolha do usuário. As aplicações gráficas irão executar sobre todos eles, sem necessidade de versões específicas para um ou outro ambiente. | ||
+ | |||
+ | Os ambientes gráficos usados em nosso curso são o [[http:// | ||
+ | |||
+ | ===== Documentação on-line ===== | ||
+ | |||
+ | O sistema UNIX implementa um sistema de documentação //on-line// simples, mas bastante útil e eficiente, chamado **páginas de manual** (//man pages//). As páginas de manual estão estruturadas em sessões: | ||
+ | |||
+ | * Sessão 1: Comandos do usuário. | ||
+ | * Sessão 2: Chamadas ao sistema operacional (em linguagem C) | ||
+ | * Sessão 3: Bibliotecas e funções standard (idem) | ||
+ | * Sessão 4: Descrição de dispositivos e formatos de arquivos de dados | ||
+ | * Sessão 5: Formato de arquivos de configuração | ||
+ | * Sessão 6: Jogos | ||
+ | * Sessão 7: Diversos | ||
+ | * Sessão 8: Comandos de administração do sistema | ||
+ | |||
+ | O acesso às páginas de manual é normalmente efetuado através do comando man. Assim, man ls apresenta a página de manual do comando ls, enquanto man man apresenta a página de manual do próprio comando man. | ||
+ | |||
+ | Os ambientes gráficos oferecem ferramentas gráficas para a consulta às páginas de manual, geralmente acessíveis através de um ícone na barra de ferramentas. | ||
+ | |||
+ | ===== Usuários e grupos ===== | ||
+ | |||
+ | A noção de usuário está muito presente em UNIX: | ||
+ | |||
+ | * Cada usuário registrado possui um nome de login, uma senha e um identificador numérico associado (UID). | ||
+ | * Os usuários são organizados em grupos. | ||
+ | * Um usuário sempre pertence a um grupo primário e pode pertencer a outros grupos secundários. | ||
+ | * Cada grupo é identificado por um nome e um identificador de grupo (GID). | ||
+ | * O comando '' | ||
+ | * O comando '' | ||
+ | |||
+ | A informação de usuário e grupo é usada pelo sistema para gerenciar o acesso aos recursos (arquivos e diretórios) e para a gerência dos processos de usuários distintos. | ||
+ | |||
+ | ===== O usuário root e outros usuários especiais ===== | ||
+ | |||
+ | O usuário com UID = 0 é chamado | ||
+ | |||
+ | * Acesso a todos os arquivos e diretórios | ||
+ | * Reboot/ | ||
+ | * Lançamento e cancelamento de qualquer processo | ||
+ | * Montagem de diretórios de rede e de dispositivos externos | ||
+ | |||
+ | Assim, torna-se óbvio que a senha de root é de grande importância para a segurança do sistema. | ||
+ | |||
+ | Além do root, outros usuários são definidos para a implantação de serviços específicos. Esse é o caso dos usuários **" | ||
+ | |||
+ | ===== O shell básico ===== | ||
+ | |||
+ | O shell é um programa que permite o uso do sistema através de uma interface em linha de comandos. Existem diversos estilos de shell, sendo os mais comuns o //Bourne Shell// (sh) e o //C-Shell //(csh). Neste curso usaremos o BASH (//Bourne Again SHell//), escolhido por ser o shell padrão na maior parte dos sistemas UNIX. | ||
+ | |||
+ | Apesar da interface em linha de comandos ser um conceito considerado antiquado, o shell oferece mecanismos para tornar a vida do usuário mais simples e produtiva. Além disso, é uma ferramenta de valor inestimável para operações em máquinas remotas. | ||
+ | |||
+ | ===== O sistema de arquivos ===== | ||
+ | |||
+ | O sistema de arquivos do UNIX possui as seguintes características fundamentais: | ||
+ | |||
+ | * É estruturado na forma de uma **árvore única**, iniciando pelo diretório "/", | ||
+ | * Há suporte para arquivos, diretórios e links (atalhos). | ||
+ | * Os **arquivos podem ter qualquer nome**, usando quaisquer caracteres, com distinção entre maiúsculas e minúsculas. Os nomes são normalmente limitados a 255 caracteres. | ||
+ | * O caractere separador de diretórios é o "/" | ||
+ | * Arquivos e diretórios cujos nomes começam com " | ||
+ | * As extensões são normalmente usadas apenas para facilitar a vida do usuário, mas não são importantes para o sistema operacional, | ||
+ | * Os arquivos e diretórios possuem permissões de acesso controláveis por seus proprietários. | ||
+ | |||
+ | ===== Principais diretórios ===== | ||
+ | |||
+ | Os diretórios de um sistema de arquivos UNIX têm uma estrutura pré-definida, | ||
+ | |||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | ===== O diretório HOME ===== | ||
+ | |||
+ | Cada usuário possui um diretório especial, chamado " | ||
+ | |||
+ | * arquivos e diretórios pessoais de trabalho | ||
+ | * e-mails já lidos (folders pessoais) | ||
+ | * arquivos de configuração individuais | ||
+ | * configuração das aplicações usadas | ||
+ | |||
+ | O diretório **home** do usuário é o seu local de início de sessão de trabalho (via shell ou gráfica). O usuário possui plenos poderes de acesso ao seu diretório home (e seus sub-diretórios), | ||