Copy Link
Add to Bookmark
Report

11: Unix Basic's

eZine's profile picture
Published in 
Masters of Shadow
 · 1 Apr 2023

Grnde parte dos zines q eu tenho visto, usam e abusam das velhas expressoes do tipo: - "Se voce quer fazer algo decente, use Unix"
- "Delete o DOS da sua maquina e instale Unix seu lamer" por ai vai (...)
Alguns ate tentaram fazer uma lista de comandos... Lamers!! De Que adianta falar e usar, sem ao menos entender porq e como a coisa funciona?

Historia

Ao contrario do qe voce possa pensar, o Unix nao e um sistema operacional; ele e uma familia d sistemas operacionais

Descrito pela primeira vez em 1974 por Thompson e Ritchie, ele rapidamente tornou-se um dos sistemas mais difundidos no mundo. Existem muitas versoes do Unix, um exemplo seria o AIX, feito pela IBM. As versoes diferem ligeiramente de umas para outras, mas na epoca, eram feitas para rodarem em computadores diferentes, como o PDP-11, o UNISYS 1100 series, VAX-11/780, IBM 370, computadores pessoais e estacoes de trabalho baseadas nos microprocessadores Motorola MC68000, INTEL8086 e outros As duas versoes mais populares do Unix, sao o System V, q e produzido pela AT&T, e o sistema BSD, desenvolvido pela Universidade, em Berkley, e popularizado pela SUN Microsystems Abaixo, vamos nos ate basicamente ao Unix System V.

Arquitetura

   _____________ 
<| Aplicativos |> Usuarios ou softwares aplicativos
-------------
|
_____________
<|Interpretador|> O interpretador de comando do Unix, aceita comandos d
<| de comandos |> um aplicativo, interpreta-os e chama o nucleo do Unix
<| do Unix |> para processa-los
-------------
|
_____________
<| N˙cleo do |> O Nucleo do Unix e residente na meoÛria, ele executa
<| do Unix |> funcoes frequentemente necessarias, como escalonamen
------------- to, alocacao de memoria, e resposta as solicitacoes
| do usuario. |
_____________
<| Maquina |> O Unix pode ser implantado numa variedade de maquinas
------------- como os computadores VAX-11, IBM370, Amdahl 470, ar-
quiteturas baseadas no Motorola MC68000 e Intel 8086.

O esquema acima mostra o projeto em iiveis, caracteristico do Unix No nivel superior, estao os usuarios ou softwares explicativos. As solicitacoes dos processos sao manipuladas pelo segundo nivel, chamado interpretador de comandos do Unix (Unix shell). Ele aceita e interpreta comandos chama o nucleo do Unix (Unix Kernel) para executa-los O nucleo do sistema fica residente na memoria e executa funcoes padroes, como escalonamento, alocacao da memoria e sincronizacao O interpretador d comando(Shell), pode ler comandos de um terminal ou d um arquivo chamado shell script. Os comandos presentes nesse arquivo, sao rodados digitando-se o nome do arquivo(como os .BAT do DOS).

Sistema de Arquivos

Assim como o MS-DOS, o Unix tambem fornece a cada usuario uma vista hierarquica dos arquivos e diretorios. Cada usuario tem um diretorio-raiz, o qual pode conter arquivos e outros subdiretorios. Cada subdiretorio por sua vez, pode conter mais arquivos e subdiretorios Superficialmente, as estruturas hierarquicas d diretorio, do DOS e do Unix diferem muito pouco.Um Sistema de arquivo do Unix, consiste em 4 partes: bloco d inicializacao, superbloco, bloco de dados e uma lista de inodes. - Bloco de Inicializacao: contem um registro do bootstrap usado para ini cializar(Boot) o sistema operacional. Ele esta tipicamente no primeiro setor do disco. Se o Unix ja tiver sido inicializado a partir de outro disco, o registro de inicializacao nao sera usado. - Superbloco: contem campos que descrevem, o sistema de arquivo(seu tama nho, numero de inodes livres, numero de blocos d dados livres e a posi cao do espaco livre. - Bloco d Dados: contem os dados do arquivo. Os tamanhos de bloco variam, mas um valor tipico e 512 bytes (0,5 Kbytes). Vamos adotar esse tamanho como exemplo. - Lista de inodes: Ha um inode para cada arquivo. A lista de inodes, tam bem chamada ilist, proporciona acesso a arquivos e define a estrutura d diretorio. Os inodes tambem permitem q os usuarios, compartilhem arqui vos Basicamente, o inode localiza os blocos de dados do arquivo. Mas tenha cuidado! Isso nao significa q ele contem as posicoes de todos os blocos de dados.

Tenha em mente que os arquivos variam em tamanho, e que o Unix deve proporcionar acesso a arquivos d diferentes tamanhos. No entanto, a maneira como ele faz isso e um tanto incomum... O sistema proporciona acesso a todos os blocos de dados em um arquivo por meio de um unico inode. Proporcionar o acesso d arquivos cujos tamanhos variam desde alguns bytes ate varios megabytes, e um grande desafio Um inode tem ate 13 ponteiros. Os primeiros dez contem as posicoes dos blocos d dados d um arquivo. C houver menos, o Unix usara tantos ponteiros quantos forem necessarios. Logo, os primeiros 10 ponteiros, podem localizar 5K (10 blocos * 0,5k) de dados. Mas os arquivos podem ser muito maiores do q isso. Assim, em vez de ligar multiplos inodes, o Unix usa uma abortagem indireta

O ponteiro 11, contem uma posicao d um bloco indireto. O bloco de indireto contem ate 128 entradas e cada uma pode conter a posicao do outro bloco de dados. Assim, o bloco indireto pode especificar as posicpes ate 128 outros blocos de dados. Esse bloco de dados adicional permite que os arquivos tenham ate 5K + 64K = 69Kbytes. Mas espere, isso nao e tudo.. O 12 ponteiro inode contem a posiaoo de um segundo bloco indireto. Ele tem 128 entradas, e cada uma delas pode conter a posicao d outro bloco indireto. Assim, pode haver mais de 128 blocos d indiretos. Cada um por sua vez, pode conter as posicoes de ate 128 blocos de dados. Assim, o segundo bloco indireto permite ao Unix acessar ate mais 128 * 128 = 16.384 blocos, ou mais 8.192 Kbytes de dados Um arquivo agora pode chegar ate 69K + 8192K = 8261K, ou 8,261 megabytes Isso e mais do que a maioria dos usuarios precisa, mas nao grande o suficiente para grandes bancos de dados. Felizmente, ha mais um ponteiro de inode. Ele contem a posicao do terceiro bloco indireto

Adivinhe o que ele faz ?

O terceiro bloco indireto contem as posicoes de ate mais 128 blocos duplamente indiretos. Cada um deles, conforme descrevemos, contem as posicoes de ate mais 128 blocos indiretos, e podem localizar ate mais 16.384 blocos de dados. Como o terceiro bloco indireto pode localizar ate 128 blocos duplamente indiretos, ele pode proporcionar acesso ate 128 * 16.384 = 2.097.512 blocos de dados. Isso da um adicional de 1.048.576 bytes, ou mais de 1 gigabyte de dados Assim, os arquivos do Unix, podem ter ate 1,056837 GB. :P

Tabelas do Sistema

Os inodes, fornecem apenas uma parte do qe e necessario para acessar arquivos. Por exemplo, voce pode perguntar: Como o Unix localiza um inode para um determinado arquivo ?

A primeira etapa e examinar a tabela de descritor de arquivo. Cada usuario tem uma tabela d descritor, e essa tem uma entrada p/ cada arquivo aberto As primeiras 3 entradas, numeradas 0, 1 e 2, correspondem aos dispositivos d entrada-padrao, saida-padrao e erro. Isto e, a menos q seja especificado o contrario todas as requisicoes de entrada, saida e erro destinam-se normalmente aos arquivos corr... Um usuario, naturalmente, pode abrir mais arquivos. Se ele o fizer, o Unix criara mais entradas na tabela de descritor d arquivo. Originalmente cada entrada, aponta para uma entrada na tabela de arquivo do sistema

A tabela d arquivo do sistema contem uma entrada para cada arquivo aberto Ela difere da tabela d descritor do arquivo porque tem entradas para todos os arqs abertos p/ todos os usuarios. O Unix mantem a tabela do arquivo do sistema na memoria para um acesso mais rapido Fundamentalmente, suas entradas contem as seguintes informaÁıes: 'Posicao do inode 'Se o arquivo esta aberto para leitura, escrita ou ambos 'A posicao relativa da ultima transferrncia. Isso permite o acesso sequencial. O Unix inicializa em 0 se o arquivo for aberto para escrita

Consequentemente, as solicitacoes d leitura normalmente comeÁam no inicio do arquivo e as solicitacoes de escrita sao feitas a partir do fim do ar quivo 'O numero d entradas da tabela de descritor de arquivo que apontam p/ ela Isso permite ao nucleo saber quantos processos podem estar compartilhando um arquivo aberto.

Quando um processo quer ler ou escrever em um arquivo, tem d especi ficar o numero descritor. O Unix faz o restante do trabalho p/ localizar os dados do arquivo.

Diretorios do Unix

Ja dissemos que o Unix mantem uma estrutura de diretorios hierarquica. Porra, use a cabeca... uma questao logica seria:

" - Como os inodes definem uma estrutura de diretorio? "

Obrigado por perguntar..

Basicamente o Unix ve um diretorio exatamente como se fosse outro arquivo A diferenca esta no conteudo do bloco de dados. Em um arquivo de dados, os blocos de dados contem dados (e o maximo nao? :P ). No entanto, em um diretorio, eles contem os nomes das entradas e as posicoes de seus inodes

Ha tambem duas entradas extras no bloco de dados do diretorio. Uma e para o proprio diretorio, representada por ".", a outra e para o diretorio-pai, representado por ".." . Em casos especiais, o pai do diretorio raiz e o proprio diretorio raiz.

--/ /-- Bem, espero que voces tenham aprendido, ou pelo menos tentado..
Duvidas(inteligentes), falhas, comentarios... mail...- mos@thepentagon.com
- Subject: Kosmos, Unix.

Kosmos

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT