Histórico do Solaris-Informática e Computadores

|

Conheça nesta matéria um pouco mais a respeito do Solaris um equipamento que fez história e tem uma grande importância no mundo da tecnologia.


Quem não é da área de informática/computadores não deve estar entendendo muita coisa referente aos últimos post’s que tenho deixado aqui no TudoLink afinal, estes post’s são artigos, trabalhos e pesquisas que fiz durante a minha graduação que conclui em 2006, e como liguei o HD antigo da época de faculdade e encontrei estes trabalhos, achei interessante estar postando o mais interessante aqui, afinal pode ajudar quem esta realizando graduação em algum curso da área de tecnologia.

Histórico do Solaris
O Solaris é um Unix implementado pela Sun Microsystems. O Unix surgiu em 1969 como um projeto da AT&T e hoje já está popularizado em todo mundo. O grande atrativo desse sistema é que ele pode ser utilizado em todas arquiteturas, desde PC até mainframes, provendo para o usuário uma consistente interface e resultados esperados.

Um pessoa que se senta em uma máquina baseada em Unix razoavelmente espera a mesma interface e resposta para uma seqüência de comandos dados em uma Shell, por exemplo. Ainda com o advento do POSIX (Portable Operating System Interface), COSE (Common Operating System Environment), SVID (System V Interface Description), e outros padrões, a garantia dessa interace e resposta cresce ainda mais.
SunOS era o antigo nome do Solaris.

Arquitetura do Sistema de Arquivos
Uma das principais características de um sistema operacional Unix é que o sistema por si só não tem conhecimento algum sobre os dispositivos de hardware ou pseudo-dispostivos. Isso significa que quando um programa faz uma chamada de sistema open(2), o sistema operacional não sabe se o open é para um arquivo, arquivo de disco, um dispositivo de caracteres, ou algum outro dispositivo periférico. Essa transparência é conseguida graças as técinicas de orientação à objetos dentro do kernel. Garantindo assim maior flexibilidade do sistema.

A estrutura Vnode (Nó virtual):
A estrutura vnode em SunOS (todas as versões desde 4.0.x) é o foco de todas as atividades de I/O bem como de memória virtual. A vnode é usados para mapear páginas de memória dentro do espaço de endereçamento de um processoe para permitir acesso para os diferentes tipos de sistemas de arquivos. O termo vnode é uma abstração para o termo inode (índice de nó). Enquanto, um inode é usado para mapear processos para arquivos Unix, um vnode pode mapear um processo para um objeto em qualquer tipo de sistema de arquivo. Desta forma, uma chamada de sistema não precisa entender qual objeto esta sendo manipulado, somente como fazer uma chamada orientada à objetos usando a interface vnode.

Localizando arquivos:
Na estrutura vnode existem dois campos que ajudam a localizar sistemas de arquivos, v_vfsp e v_vfsmountedhere. Se um vnode está representando um diretório que é um ponto de montagem para um sistema de arquivos, v_vfsp apontará para o sistema de arquivos sendo montado e v_vfsmountedhere apontará para o sistema de arquivos onde existe o ponto de montagem.
Quando um processo faz a chamada de sistema open(2), o sistema operacional deve encontrar e abrir esse arquivo. Para isso o Solaris se utiliza de duas rotinas: vfs_root() e vop_lookup(). A primeira delas da estrutura vfs e a segunda da estrutura vnode.

Descritores de arquivos:
A chamada de sistema open(2) retorna um descritor de arquivo. Um descritor de arquivo é a estrutura onde podemos encontrar todas as informações relevantes do arquivo. É no descritor de arquivo que ficam guardadas informações como: tamanho, proteção, último acesso, e etc.
O descritor de arquivo é do tipo int e é usado como um índice dentro da tabela de descritors de arquivos abertos. Nas primeiras versões a tabela era estática, ou seja tinha tamanho fixo. O problema com esta solução é que a tabela poderia se encher e o usuário não poderia abrir mais arquivos. Atualmente, isso não ocorre mais. Descritores de arquivo são alocados em blocos de 24. A tabela de descritores de arquivos abertos é uma lista de blocos ligados.

#define NFPCHUNK 24
struct ufchunk {
struct file *uf_ofile[ NFPCHUNK ];
struct uf_pofile[ NFPCHUNK ];
struct ufchunk *uf_next;
};


Sistema de arquivos

SunOS suporta diversos sistemas de arquivos graças a interface Virtual File System (VFS) descrita anteriormente. SunOS dá suporte há três tipos básicos de sistemas de arquivos:
• baseados em disco;
• distribuídos;
• sistemas de pseudo-arquivos;

Sistemas de arquivos baseados em disco:
Veja abaixo alguns dos sistemas de arquivos baseados em disco que o Solaris dá suporte:
• ufs- Sistema de arquivos UNIX. Sun baseia esse sistema de arquivos no Berkley Software Distribution (BSD) 4.2 Fast File System.
• hsfs- Sistema de arquivos High Sierra. Hsfs é tipicamente usado em CD-ROM. Hsfs provê toda a semântica de UFS exceto escrita e links.
• pcfs- Sistema de arquivos de computador pessoal. Como o nome implica, sistema de arquivos pcfs dá suporte a leitura e escrita de discos formatados MS-DOS.

Sistemas de arquivos distribuídos:
Solaris também dá suporte a noção de sistemas de arquivos distribuídos. Um sistema de arquivos distribuído é um sistema que pode ser compartilhado via rede e que parece estar local na sua estação de trabalho. A intenção é que o usuário ou administrador não tenha que aprender um novo conjunto de comandos para cada novo sistema de arquivos distribuídos. Alguns dos sistemas de arquivos distribuídos que o Solaris dá suporte:
• nfs- Sistema de arquivos em rede (network).
• rfs- Sistema de arquivos remotos.

Sistemas de pseudo-arquivos:
Um pseudo-arquivo é usado para ganhar acesso a informações do kernel usando estilo UFS de nomes de arquivos e chamadas de sistema sem usar qualquer espaço de disco adicional. Tipicamente, isso é executado usando recursos da Memória Virtual (VM) do kernel ou espaço de swap.

Abaixo veja alguns sistemas de arquivos que o Solaris dá suporte:
• tmpfs- Sistemas de arquivos temporários.
• proc- Sistema de arquivos de processos.
• lofs- Sistema de arquivos loopback (amarrado pelo passado). Lofs é usado para criar um sistema de arquivos virtual que é uma cópia de outro sistema de arquivos ou para cobrir um sistema de arquivos existente.

Grande arquivos no Solaris:
Chegamos, finalmente, ao ponto que queríamos sobre o sistema de arquivos do Solaris. Demos uma grande visão sobre o sistema de arquivos e agora podemos explicar como o Solaris dá suporte a grandes arquivos.

Como explicado anteriormente, no sistema ufs uma estrutura vnode aponta para um inode. E é nesse inode que fica armazenado os blocos que pertencem ao arquivo.

O número máximo de blocos vezes o tamanho de cada bloco que um inode pode referenciar é o obrigatoriamente o tamanho máximo que um arquivo no Solaris pode assumir. Lembrando que no sistema ufs cada bloco possui o mesmo tamanho.

Assim, para descobrir um tamanho máximo de um arquivo no Solaris temos que entender a estrutura inode.

Cálculo do tamanho máximo de um arquivo:
Basta calcular o número de blocos que o inode pode referenciar para que encontremos o tamanho máximo de um arquivo. No Solaris cada bloco possui 4K. Assim, os ponteiros diretos referenciam: 48K (4K x 12).

Os ponteiros indiretos apontam para outro bloco que está cheio de ponteiros para blocos de dados. Cada ponteiro ocupa 4 bytes, então um bloco contém 1K ponteiros. Isso provê acesso a arquivos de até 4 Mb mais 48 K [ (4K x 12) + (1024 x 4K) ].

Os ponteiros duplos indiretos apontam para blocos de ponteiros, que por sua vez apontam para blocos de ponteiros e que finalmente apontam para blocos de dados. Assim é possível ter arquivos de 4 Gb mais 4Mb mais 48 K

[ (1024 x 1024 x 4k) + (1024 x 4K) + (4K x 12) ]

Conclusão:

A grande vantagem do sistema Solaris é por ele poder ser utilizado em varias arquiteturas, e graças a Virtual File System suporta diversos sistemas de arquivos.

Bibliografia:

http://www.vsfnw.hpg.com.br
http://www.sd.id.ethz.ch
http://www.i2d.com.br



Navegue:
7 Comentários

Comente

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *