Sistemas Operacionais

Ti - Tecnologia da Informação

1 Introdução aos Sistemas Operacionais

Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas executado pelo processador, de forma semelhante aos programas dos usuários. Sua principal função é controlar o funcionamento de um computador, gerenciando a utilização e o compartilhamento dos seus diversos recursos, como processadores, memórias e dispositivos de entrada e saída.

Sem o sistema operacional, um usuário para interagir com o computador deveria conhecer profundamente diversos detalhes sobre hardware do equipamento, o que tornaria seu trabalho lento e com grandes possibilidades de erros. O sistema operacional tem como objetivo funcionar como uma interface entre o usuário e o computador, tornando sua utilização mais simples, rápida e segura.

A grande diferença entre um sistema operacional e aplicações convencionais é a maneira como suas rotinas são executadas em função do tempo. Um sistema operacional não é executado de forma linear como na maioria das aplicações, com início, meio e fim. Suas rotinas são executadas concorrentemente em função d eventos assíncronos, ou seja, eventos que podem ocorrer a qualquer momento. O nome sistema operacional, apesar de ser o mais empregado atualmente, não é o único para designar esse conjunto de rotinas. Denominação como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado.

Kernel

O Kernel é o núcleo do sistema. É responsável pelas operações de baixo nível tais como: gerenciamento de memória, gerenciamento de processos, suporte ao sistema de arquivos, periféricos e dispositivos. Pode ser compilado para se adequar melhor a um determinado tipo de máquina.

Shell

O Shell é o elo entre o usuário e o sistema. Imagine o Shell como sendo um intérprete entre pessoas que falam linguas diferentes. Ele traduz os comandos digitados pelo usuário para a linguagem usada pelo kernel e vice-versa. Sem o Shell a interação entre usuário e o kernel seria bastante complexa. Ele também é uma linguagem de programação completa.

Script

Script é um arquivo que contém comandos do shell que em uma situação normal poderiam ser executados a partir do prompt. Esses comandos são executados sequencialmente dependendo de condições estruturais e d laço como “ if ... then” (se ... então) e “ do while” (faça enquanto). Um script também pode usar variáveis. A entrada pode ser recebida através do prompt de comando ou de outros arquivos.

2 História do Linux

Origem no UNIX que foi desenvolvido nos anos 70. O UNIX é muito utilizado hoje no ambiente corporativo, educacional e agora no ambiente desktop. Linux é uma cópia do Unix feito por Linus Torvalds, junto com um grupo de hackers pela Internet. Pretende-se que ele siga conforme com o padrão POSIX, padrão usado pelas estações UNIX.

Linus Torvalds que na época era um estudante de ciência da computação na Finlândia criou um clone do sistema Minix (sistema operacional desenvolvido por Andrew Tannenbaun que era semelhante ao UNIX) que o chamou de Linux. Hoje ele ainda detém o controle do Kernel do sistema. Em março de 1992 surge a versão 1.0 do Linux. Estima-se que sua base de usuários se situe hoje em torno de 10 milhões. Ele ainda não se enquadra como sendo um sistema operacional UNIX. Ele inclui proteção entre processos (crash protection), carregamento por demanda, redes TCP/IP, além de nomes de arquivos com até 255 caracteres, multi-tarefa real, suporte a UNICODE, shared libraries, memória virtual, etc.

Linux como sistema operacional

Linux se refere ao Kernel O conjunto de aplicativos que são executados no Kernel se chamam distribuição.

A função do Kernel é ser a interface entre o Hardware e os sistemas de gerenciamento de tarefas e aplicativos. O Kernel do Linux é mais leve que o de outros sistemas operacionais para servidores. São 12 milhões de linhas de código, enquanto outras versões do Unix têm 30 milhões e o Windows NT, 50 milhões. ”Isso significa que o Linux é três vezes mais rápido que outros Unix e até cinco vezes mais rápido que o Windows NT”.

Características do Sistema

  • Multitarefa (Várias aplicações podem ser executadas ao mesmo tempo)
  • Multiusuário (Varios usuários podem utilizar o sistema ao mesmo tempo)
  • É gratuito, atualizações frequentes e é desenvolvido voluntariamente por programadores experientes e colaboradores que visam a constante melhoria do sistema.
  • Convive harmoniosamente no mesmo computador com outros sistemas operacionais
  • Não exige um computador potente para rodar
  • Não é necessário licença para o seu uso.
  • Maior estabilidade em relação ao Windows
  • Maior confiabilidade.

  • Não precisa ser reinicializado devido a instalação de programas ou configuração de periféricos.
  • Acessa discos formatados por outros sistemas operacionais
  • Suporte a linguagens de programação.
  • Não existem vírus no linux
  • Roda aplicações windows através do WINE
  • Ambiente Shell
  • Suporte a diversos dispositivos e periféricos disponíveis no mercado
  • Código fonte aberto, isso significa que se você for um programador, pode modificá-lo para se adequar a necessidades específicas, algo impossível de ser conseguido com o Windows.

3 Termos de Licenciamento

Inicialmente, Torvalds lançou o Linux sob uma licença que proibia qualquer uso comercial. Isso foi mudado de imediato para a Licença Pública Geral GNU. Essa licença permite a distribuição e mesmo a venda de versões possivelmente modificadas do Linux mas requer que todas as cópias sejam lançadas dentro da mesma licença e acompanhadas do código fonte.

GNU General Public License

GNU General Public License (Licença Pública Geral), GNU GPL ou simplesmente GPL, é a designação da licença para software livre idealizada por Richard Stallman no final da década de 1980, no âmbito do projecto GNU da Free Software Foundation (FSF).

A GPL é a licença com maior utilização por parte de projectos de software livre, em grande parte devido à sua adoção para o Linux.

Multiusuário: Permite que vários usuários possam rodar o sistema operacional, e não possui restrições quanto à licença. Permite vários usuários simultâneos, utilizando integralmente os recursos de multitarefa. A vantagem disso é que o Linux pode ser distribuído como um servidor de aplicativos. Usuários podem acessar um servidor Linux através da rede local e executar aplicativos no próprio servidor.

Multiplataforma: O Linux roda em diversos tipos de computadores, sejam eles RISC ou CISC. 

Multitarefa: Permite que diversos programas rodem ao mesmo tempo, ou seja, você pode estar imprimindo uma carta para sua vovó enquanto trabalha na planilha de vendas, por exemplo. Sem contar os inúmeros serviços disponibilizados pelo Sistema que estão rodando em background e você provavelmente nem sabe.

Multiprocessador: Permite o uso de mais de um processador. Já é discutida, há muitos anos, a capacidade do Linux de poder reconhecer mais de um processador e inclusive trabalhar com SMP, clusters de máquinas, na qual uma máquina central controla os processadores das outras para formar uma só máquina.

Protocolos: Pode trabalhar com diversos protocolos de rede (incluindo o TCP/IP que é nativo Unix).

Processo - Resumidamente... um programa em execução. As informações sobre vários processos em execução ficam armazenadas na tabela de processos. O Sistema Operacional controla o tempo de execução de cada processo, e ele é responsável por iniciar, parar/suspender e terminar a execução de processos. Os usuários também pode interferir na administração de processos.

Todo processo tem um processo “pai” que o chamou, portanto o processo tem nome, número de identificação, grupo ao qual pertence, etc. e está inserido na árvore hierárquica de processos. O processo pai é chamado de init.

Sistema de arquivos - É uma forma de armazenamento de arquivos em estruturas (na maneira hierárquica) de diretórios. Assim, o usuário não precisa necessita conhecer detalhes técnicos do meio de armazenamento. Ele apenas precisa necessita conhecer a estrutura (árvore) de diretórios para poder navegar dentro dela e acessar suas informações

Sistema de cores dos arquivos Linux.

Os arquivos Linux ao ser exibido pelo comando ls, podem exibir uma cor diferente apontando o tipo de cada arquivo.

Consoles virtuais: Permite que o usuário tenha mais de um console para trabalhar, sendo que em cada console você pode ter diversas tarefas sendo executadas em background e mais em foreground (segundo plano e primeiro plano).

4 O que é uma distribuição

Ao "kernel" é freqüentemente acrescentado uma série de aplicações, formando um sistema ou distribuição Linux. Distribuição nada mais é que um pacote do kernel do sistema operacional mais os programas que o acompanham. Este pacote, incluindo as ferramentas necessárias para sua instalação, é chamado de distribuição. Uma distribuição atende a uma determinada necessidade. As distribuições podem ser produzidas em diferentes versões do Kernel, podem incluir diferentes conjuntos de aplicativos, utilitários, ferramentas e módulos de driver , e podem oferecer diferentes programas de instalação e atualização para facilitar o gerenciamento do sistema.

 

Exemplos de distribuição

Red Hat – Famoso por suas ferramentas de instalação e atualização do sistema operacional e por seu sistema bem projetado de instalação, desinstalação e controle de pacotes de aplicativos de software.

Slackware – Era a distribuição mais popular. Não vem com RPM. Ganha em performance, mas peca ma interatividade. Usado mais para servidores de rede.

Caldera OpenLink – O OpenLink 1.3 inclui o “K” Desktop Environment, uma licença não-comercial do StarOffice for Linux, Suporte Netware, uma licença do DR-DOS para compatibilidade DOS.

S.u.S.E Linux – É uma conhecida distribuição de Linux, disponível principalmente na Europa e oferecida nas versões em inglês e alemão.

Debian / GNU – Não possui uma organização comercial patrocinadora. É produzida por uma equipe de voluntários. Utiliza seu próprio sistema de gerenciamento de pacotes.

Conta de Acesso

Similar a conta de um banco, a conta de acesso é a maneira pela qual você se identifica no sistema. É através dela que o sistema sabe que você tem direitos de fazer uma coisa ou outra e garantir que somente você alterará seus arquivos. Isso é de suma importância porque dessa forma, você não poderá (mesmo que acidentalmente) danificar o sistema, acessando áreas vitais para o funcionamento do mesmo.

A conta de acesso é composta de Login e Senha. Tanto o login quanto a senha podem ser alfanuméricos, a senha inclusive deveria ser alfanumérica por medidas de segurança. Mesmo que só você utilize o linux, terá que usar uma conta para acessar o sistema, devido ao fato de que essa é uma característica do próprio linux desde a sua concepção (e de qualquer sistema multiusuário) e por ser ele um sistema voltado para ambientes em rede.

Existe uma conta que tem o controle total do sistema denominada root, comumente chamada de superusuário. Com ela podemos fazer qualquer coisa que um usuário normal não poderia, inclusive danificar o sistema, se não soubermos exatamente o que estamos fazendo. Por isso todo o cuidado é pouco, e justamente por isso, essa conta não deveria ser usada no dia a dia. Deveria ter sua senha guardada e usada em situações de real necessidade, tais como tarefas de configuração e administração do sistema.

Sistema de Arquivos

Um sistema de arquivos é a maneira pela qual os dados são organizados, armazenados e controlados em qualquer midia além de ser a forma como o sistema operacional representa essas informações. Ele é criado durante a formatação de uma partição.O sistema de arquivos mais utilizado no linux é o ext (extended filesystem).Podemos representar o sistema de arquivos do linux segundo a seguinte estrutura:

/ - (todos os arquivos e diretórios do sistema)
/boot – (arquivos de inicialização)
/bin – (executáveis principais)
/dev – (referência aos dispositivos)
/etc – (executáveis essenciais ao sistema, arquivos de configuração)
/usr – (comandos, bibliotecas, aplicativos)
/lib – (biblioteca básica do sistema)
/tmp – (arquivos temporários)
/home – (diretório de usuários e suas configurações)

/ - (todos os arquivos e diretórios do sistema)
/boot – (arquivos de inicialização)
/bin – (executáveis principais)
/dev – (referência aos dispositivos)
/etc – (executáveis essenciais ao sistema, arquivos de configuração)
/usr – (comandos, bibliotecas, aplicativos)
/lib – (biblioteca básica do sistema)
/tmp – (arquivos temporários)
/home – (diretório de usuários e suas configurações)

O prompt

Quando o prompt que preceder de um comando for $, o comando pode executado por qualquer usuário. Quando o prompt que preceder um comando for #, o comando pode ser excutado somente pelo super usuário o Root.

Comandos

No MS-DOS os comandos não poderiam ser criados pelos usuários, ou sejam, eram limitados e geralmente estáticos. No mundo Unix e por extensão, no Linux, o conceito é diferente. Um comando é qualquer arquivo executável.

O prompt

Quando o prompt que preceder de um comando for $, o comando pode executado por qualquer usuário. Quando o prompt que preceder um comando for #, o comando pode ser excutado somente pelo super usuário o Root.

Comandos internos.

Comandos

No MS-DOS os comandos não poderiam ser criados pelos usuários, ou sejam, eram limitados e geralmente estáticos. No mundo Unix e por extensão, no Linux, o conceito é diferente. Um comando é qualquer arquivo executável.

Comandos externos.

Comandos internos.

São comandos que estão dentro de um shell interpretador de comandos. Quando o shell é carregado na memória , seus comandos ficam residentes nela. A grande vantagem dos comandos internos é a velocidade, pois eles não precisam ser procurados no disco rígido, nem criam processos. Exemplo: cd, alias , kill, logout, etc.

Comandos externos.

São comandos que estão localizados em diretórios específicos no disco rígido, como /bin e o /sbin. O Linux precisa consultar o disco rígido sermpre que alguns desses comandos forem solicitados. A maioria dos comandos do Linux são externos.

Exemplo: ls, cp , rm, mv , mkdir, rmdir etc.

Exemplo: ls, cp , rm, mv , mkdir, rmdir etc.