Solaris uma abordagem Sucinta e Objetiva

MAICON DE MENEZES OLIVEIRA1

1UFPEL – Universidade Federal Fictícia Brasileira DCC – Departamento de Ciência da Computação CEP 96010-610 - Pelotas (RS) [email protected]

Resumo: Este artigo é uma abordagem objetiva e sucinta sobre a criação, desenvolvimento e algumas das principais características do sistema operacional Solaris criado pela antiga , que atualmente é uma subsidiária da Oracle. Solaris é conhecido por sua acessibilidade, especialmente nos sistemas de SPARC, também por dar origem a muitas características inovadoras como DTrace e ZFS. Este sistema suporta arquiteturas baseadas nos processadores x86 e SPARC, e segue a especificação POSIX. Embora seja desenvolvido historicamente como um software proprietário, a maioria de seu código-fonte hoje em dia está disponível como o sistema Open Solaris.

Neste trabalho tem-se a oportunidade de conhecer a forma como os conceitos e funções básicas de sistemas operacionais são aplicados no SOLARIS – gerência de processos e memória, controle de entrada e saída de dados, sistema de arquivos.

Palavras Chaves: Solaris, Sistema Operacional, SunOS, Oracle, Open Solaris.

1. Introdução Quando o assunto é computador, o sistema 2. Desenvolvimento operacional tem uma importância muito grande, uma 2.1. Histórico vez que este é responsável por gerenciar todos os recursos do hardware e fornecer estrutura lógica para O SOLARIS é um sistema operacional totalmente os programas aplicativos a serem escritos e utilizados. baseado em e em suas primeiras versões Esta tarefa é ainda mais sensível no caso dos grandes (baseadas no código do BSD) ele chamava-se SunOS, servidores. Oferecer um sistema eficiente, estável e tendo o seu nome alterado para Solaris 2 quando seguro é um grande desafio e SOLARIS tem se passou a ser baseado no System V. mostrado ao longo dos anos um sistema operacional Para falarmos sobre sua origem é necessário com grande peso no mercado. Voltado para grandes citarmos alguns pontos importantes do histórico de empresas, com um conjunto de softwares para desenvolvimento do UNIX. No final dos anos 60, Ken desenvolvimento e gerenciamento de informações e Thompson do Bell laboratories, queria criar um comunicação entre aplicativos. Ele foi criado para sistema operacional que suportasse e coordenasse os obter uma alta performance em aplicações esforços de uma equipe de programadores em um cliente/servidor, o SOLARIS permite acesso ambiente de pesquisa. Dessa forma surge o sistema UNIX, cuja primeira versão foi escrito em Assembler transparente e ilimitado a sistemas, servidores, para o PDP 7. dispositivos periféricos, base de dados remota e uma série de outros recursos, com escalabilidade para Em 1978, Dennis Ritchie produziu a sétima versão suportar várias aplicações e configurações. Moderno e do UNIX, que por ter sido reescrito em linguagem C, bastante eficaz, ele tem sido uma boa solução para tornou possível transportá-lo de uma arquitetura para computadores em rede, especialmente em grandes outra sem muitas dificuldades, A partir desta data, o empresas. A seguir veremos as principais código fonte foi licenciado para outros estabelecimentos comerciais e de pesquisas, passando características que tornam o Solaris um sistema tão a ocorrer o desenvolvimento de versões distintas em competente. paralelo. Nos anos 80, o sistema tornou-se popular entre 2.2.1. Sistemas de arquivos baseados pesquisadores e usuários comerciais. Várias versões em disco: foram desenvolvidas, entre elas o Xenix e o SCO- Unix da SCO. Com a fundação da Sun em 1982, surgiu mais uma linha de desenvolvimento, o SunOS. Veja abaixo alguns dos sistemas de arquivos baseados Nessa época, viu-se a necessidade de unificar as várias em disco que o Solaris dá suporte: versões de sistemas UNIX existentes com a intenção • ufs- Sistema de arquivos UNIX. Sun baseia esse de torná-lo realmente um sistema aberto padrão. sistema de arquivos no Berkley Software Distribution Com o comprometimento de vários fabricantes em (BSD) 4.2 Fast File System. adotá-lo, foi desenvolvido um UNIX único, conhecido • hsfs- Sistema de arquivos High Sierra. Hsfs é como System V Release 4 (SVR4), aproveitando o tipicamente usado em CD-ROM. Hsfs provê toda a que havia de melhor em cada linha. semântica de UFS exceto escrita e links. Já baseado nesse novo sistema, a Sun • pcfs- Sistema de arquivos de computador pessoal. Microsystems lança o SunOS 5.x, e em 1992, surge à Como o nome implica, sistema de arquivos pcfs dá primeira versão do SOLARIS, que era muito suporte a leitura e escrita de discos formatados MS- semelhante ao SunOS. DOS.

2.2. Sistema de arquivos 2.2.2. Sistemas de arquivos distribuídos: Sistema de arquivos é uma estrutura lógica que possibilita o armazenamento e recuperação de arquivos. Em sistemas baseados no Unix, arquivos são Solaris também dá suporte à noção de sistemas de contidos em diretórios (ou pastas), os quais são arquivos distribuídos. Um sistema de arquivos conectados em uma árvore que começa no diretório distribuído é um sistema que pode ser compartilhado raiz (designado por /). Mesmo os arquivos que se via rede e que parece estar local na sua estação de encontram em dispositivos de armazenamento trabalho. A intenção é que o usuário ou administrador diferentes (discos rígidos, disquetes, CDs, DVDs, não tenha que aprender um novo conjunto de sistemas de arquivos em rede) precisam ser comandos para cada novo sistema de arquivos conectados à árvore para que seu conteúdo possa ser distribuídos. Alguns dos sistemas de arquivos acessado. Cada dispositivo de armazenamento possui distribuídos que o Solaris dá suporte: a sua própria árvore de diretórios. • nfs- Sistema de arquivos em rede (network). O processo de conectar a árvore de diretórios de um • rfs- Sistema de arquivos remotos. dispositivo de armazenamento à árvore de diretórios raiz é chamado de "montar dispositivo de armazenamento" (montagem) e é realizada por meio do comando mount. A montagem associa o dispositivo 2.2.3. Sistemas de pseudo-arquivos: a um subdiretório, ou seja, o sistema por si só não tem conhecimento algum sobre os dispositivos de Um pseudo-arquivo é usado para ganhar acesso a hardware ou pseudo-dispostivos. Isso significa que informações do kernel usando estilo UFS de nomes de quando um programa faz uma chamada de sistema arquivos e chamadas de sistema sem usar qualquer open (2), o sistema operacional não sabe se o open é espaço de disco adicional. Tipicamente, isso é para um arquivo, arquivo de disco, um dispositivo de executado usando recursos da Memória Virtual (VM) caracteres, ou algum outro dispositivo periférico. Essa do kernel ou espaço de swap. transparência é conseguida graças às técnicas de Abaixo veja alguns sistemas de arquivos que o Solaris orientação a objetos dentro do kernel. Garantindo dá suporte: assim maior flexibilidade do sistema. • tmpfs- Sistemas de arquivos temporários. • proc- Sistema de arquivos de processos. No sistema Solaris existem três tipos básicos de • lofs- Sistema de arquivos loopback (amarrado pelo sistemas de arquivos: passado). Lofs é usado para criar um sistema de • baseados em disco; arquivos virtual que é uma cópia de outro sistema de • distribuídos; arquivos ou para cobrir um sistema de arquivos • sistemas de pseudo-arquivos; existente.

2.3. Gerenciamento de memória 2.4. Controle de Processos

Um processo, na visão mais simples, é uma instância O Cabe ao kernel do SOLARIS à responsabilidade de um programa em execução. Um programa, para ser pelas diversas funções de gerência de memória, como executado, deve ser carregado em memória; a área de controlar partes da memória em uso e que partes memória utilizada é dividida em três partes: código ociosas, ou seja, partes da memória que não estejam (text), dados inicializados (data) e pilha (stack). alocando processos quando eles necessitarem, além é O SOLARIS é um sistema multiprogramável, onde claro de desalocar os processos quando eles cada usuário pode ter vários processos ativos terminarem, e gerenciar a troca entre a memória simultaneamente. Em um grande sistema, podem principal e o “swap” (área de troca) quando a memória chegar a existir milhares de processos ativos ao principal é muito pequena para armazenar todos os mesmo tempo. O Kernel do sistema é responsável processos. pelo controle desses processos, fornecendo primitivas que cuidam, por exemplo, da criação e da gerência de Em sistemas de tempo compartilhado, o processos. gerenciador de memória é responsável pela suspensão Inicialmente, quando se dá a ativação do sistema, é e retomada de um processo em intervalos de tempos criado o processo 0, que por sua vez cria o processo 1, distintos. Na espera pela execução, os processos ficam conhecido como init. Este é ancestral de todos os na memória até que seja identificado o processo ativo outros processos. que, a partir desse momento, terá sua execução Os processos são criados pela primitiva de sistema retomada. O gerenciador também reconhece os fork. Essa função, ao ser chamada por um processo em processos que estão em estado de espera por execução (processo-pai), cria uma cópia igual desse entrada/saída para que estes não sejam incluídos na processo (processo-filho), um processo-pai pode ter partilha de tempo de execução. vários processos-filhos e estes também podem ter seus processos-filhos. A partir daí, tanto o processo-pai, O escalonamento de memória do SOLARIS define quanto o processo-filho têm seu próprio espaço de as prioridades dos processos, cujo cálculo é referente endereçamento. Dessa forma, as variáveis de um não ao tempo de execução acumulado. Os processos que são visíveis ao outro e vice-versa. em execução acumularam muito tempo terão Os processos são identificados mediante um prioridade menor que processos que ainda não foram código de identificação, pid, que é fornecido pelo executados. processo-pai ao processo-filho. A comunicação entre os processos é feita por um mecanismo de troca de No SOLARIS, além do swapping – técnica que mensagens que utiliza canais de comunicação seleciona alguns processos para retirar da memória chamados pipes. Através dos pipes, a saída de um caso está esteja cheia, é implementada a gerência de comando é direcionada para a entrada de outro sem a memória virtual com paginação por demanda. Nesse utilização de arquivos temporários. esquema, páginas do processo são trazidas do disco Os processos no SOLARIS possuem duas para a memória somente quando são referenciadas. estruturas-chave: a tabela de processos, que contém Periodicamente o sistema é ativado para verificar se a informações como número do processo, modo e quantidade de páginas livres é insuficiente. Nesse prioridade, entre outras; e a estrutura de usuário, caso, o sistema inicia o trabalho de liberação de contendo informações que não são necessárias quando páginas para recompor a lista de páginas livres. o processo não estiver fisicamente na memória Quando necessário, o SOLARIS usa o algoritmo de principal. procura circular para a liberação de páginas. A gerência de processo do SOLARIS é usada para Inicialmente todas as páginas estão marcadas como mostrar os processos que estão sendo executados em não utilizadas (bit de acesso igual à zero). Sempre que uma determinada estação de trabalho, além de parar e uma página é referenciada, o seu bit de acesso é ligado reinicializar processos e investigar e depurar processos (igual a um). De tempos em tempos o sistema varre a irregulares (processos que não estão realizando o lista de páginas, verificando o bit de acesso de cada trabalho esperado). uma. As páginas que não foram utilizadas são O gerenciador usa monitores e semáforos como liberadas para lista de páginas livres. No caso de mecanismos de exclusão mútua, e escalonamento páginas contendo dados, sistema verifica também se a circular com múltiplas filas, para indicar a prioridade página foi modificada, para neste caso gravá-la em de cada processo. disco. Processos sendo executados no modo usuário tem menor prioridade que os processos no modo kernel.

2.5. Estrutura 3. Discussão

3.1. Open Solaris Um sistema Unix consiste, basicamente, de duas partes: O projeto Open Solaris é um esforço de núcleo - o núcleo do sistema operacional, a parte desenvolvimento aberto baseado no código fonte do que relaciona-se diretamente com o hardware, e que Sistema Operacional Solaris. Os objetivos do projeto executa num espaço de memória privilegiado. Agenda são inovação, colaboração e na extensão da tecnologia processos gerencia a memória, controla o acesso a Open Solaris. Inicialmente, o projeto Open Solaris arquivos e a dispositivos de hardware (estes, por meio incluiu o código fonte do núcleo, sistema de dos controladores de disposito - drivers - e comunicação, bibliotecas e comandos do Solaris. interrupções). O acesso ao núcleo é feito por Muitos dos repositórios de código fonte do Solaris chamadas de sistema, que são funções fornecidas pelo podem ser encontrados no .org, incluindo núcleo; essas funções são disponibilizadas para as colaboradores não afiliados a Sun. aplicações por bibliotecas de sistema C (libc). programas de sistema - são aplicações, que Após a Oracle adquirir a Sun Microsystems em executam em espaços de memória não privilegiados, e janeiro de 2010 o projeto Open Solaris foi que fazem a interface entre o usuário e o núcleo. descontinuado. Atualmente o projeto .org, Consistem, principalmente, de: da seguimento a proposta do Open Solaris. Conjunto de bibliotecas C (libc) Shell - um ambiente que permite que o usuário digite comandos. Programas utilitários diversos - são programas 3.2. Solaris no Desktop usados para manipular arquivos, controlar processos, etc. O projeto Open Solaris foi uma tentativa de revitalizar Ambiente gráfico (GUI) graphics - o interesse pelo Solaris liberando seu código fonte ao eventualmente utiliza-se também um ambiente gráfico publico. Isto funcionou razoavelmente bem até a para facilitar a interação do usuário com o sistema. Oracle adquirir a Sun e muitos projetos baseados no código do Open Solaris nasceram. O Schillix, de Jörg Em um sistema Unix, o espaço de memória utilizado Schilling, foi o primeiro live CD baseado em Open pelo núcleo é denominado espaço do núcleo ou Solaris, feito especialmente para desenvolvedores, supervisor (em inglês: kernel space); a área de porém a equipe de desenvolvimento da Sun memória para os outros programas é denominada Microsystems da Índia e seu live CD BeleniX (com espaço do usuário (). Essa separação é um detecção de hardware, interface gráfica e uma mecanismo de proteção que impede que programas variedade de aplicações desktop) convenceram os comuns interfiram com o sistema operacional. céticos que ideia de rodar o Solaris em desktops era viável. O Nexenta possivelmente tenha sido o mais ousado projeto para desktop Solaris; anunciado em Novembro de 2005. O objetivo dessa distribuição semicomercial era disponibilizar um sistema operacional completo combinando o kernel do Open Solaris e a interface de usuário com os utilitários Debian e pacotes do Ubuntu. Foram lançadas sete versões alfa - todas na forma de um live-CD instalável com o GNOME, instalador Ubuntu e varias aplicações open source populares disponíveis para instalação pela Internet. A última versão alfa foi lançada em Maio de

2007.

Figura 1: Estrutura de Sistemas UNIX. 4. Considerações Finais

Com uma plataforma robusta e eficiente o Solaris foi por muito tempo a maior referência em sistemas operacionais de grande porte, porém com o rápido avanço do Linux e crescimento da aceitação como uma alternativa mais viável para UNIX, o principal sistema da Sun perdeu mercado, fazendo com que a empresa buscasse novas alternativas para manter o interesse por sua plataforma. O Solaris disputa agora contra outros sistemas operacionais gratuitos. Após a aquisição da Sun pela Oracle o Solaris estabilizou-se e é ainda hoje um dos Sistemas Operacionais de Servidor mais vendido e recomendado da história.

Este Sistema operacional é uma das melhores opções para servidores aplicações comerciais de larga escala, por ser confiável para grandes datacenters e outros sistemas críticos, e também pela sua segurança reforçada, seu sistema de arquivos, recursos de auto- reparo para solução de problemas, os quais os desenvolvedores da Sun codificaram no kernel e nos aplicativos do Solaris durante anos.

Entretanto quando o assunto é desktop experiências recente demostra, que ainda a um longo caminho a percorrer até que seja possível tornar este sistema agradável e adequado ao ambiente dos desktops. Outro fator a salientar é que sendo um sistema proprietário o SOLARIS não atende bem a requisitos necessários em sistemas distribuídos de alta performance, apesar de ser possível implementar esta solução com razoável sucesso utilizando este sistema operacional.

5. Referências http://pt.wikipedia.org/ http://www.oracle.com http://distrowatch.com http://www.computerworld.com.pt http://www.hardware.com.br