sábado, 3 de setembro de 2016

TIPOS DE SOFTWARE E TIPOS DE LICENÇA Quais são seus tipos e quais tipos de licença



Você realmente sabe o que é um Software?

 Conheça os tipos de software. Desde o inicio a gente aprende que, tudo o que se refere às instruções passadas para o computador chamamos de SOFTWARE e que o conjunto de instruções que faz com que o computador funcione chamamos de PROGRAMA.
Geralmente os programas precisam ser instalados no Disco Rígido, em CD/DVD e muitos rodam direto de PenDrives dispensando a instalação. Bom aprender que ao chamarmos (abrirmos) um programa ele é carregado na memória (RAM), e assim passa a controlar operações especificas. Definição: Software, logiciário ou suporte lógico é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado/informação ou acontecimento.
Software também é o nome dado ao comportamento exibido por essa sequência de instruções quando executada em um computador ou máquina semelhante.
Software também é um produto e é desenvolvido pela Engenharia de software, e inclui não só o programa de computador propriamente dito, mas também manuais e especificações. Para fins contábeis e financeiros, o Software é considerado um dos Bens de capital.

SOFTWARE DE SISTEMA

 Geralmente dividido em SISTEMAS OPERACIONAIS e PROGRAMAS UTILITÁRIOS. Para começar os Sist. Operacionais são de grande importância, pois eles nos dão a opção de "dizer ao computador o que ele deve fazer".
Três exemplos bastante conhecidos do nosso público são o Mac, o Windows e o Linux. Os Programas Utilitários geralmente são softwares de menor porte com funções mais especificas tipo: Verificação de Disco, Cópias de Segurança entre outros.


SOFTWARE APLICATIVO

Neste tipo de software se enquadram todos aqueles programas que são utilizados na execução de tarefas específicas. Existem alguns exemplos, mas os mais comuns são os processadores de texto, como:
Word - que tem funções para trabalhar com os mais diversos tipos de textos, emitir etiquetas, e fazer formulários.
Excel - produz as planilhas eletrônicas que são poderosas ferramentas de cálculos que facilitam tanto aquele trabalho árduo de matemática, fazer gráficos com real representação dos dados.
Browsers ou Navegadores - softwares usados para navegar na Web, dentre eles os mais conhecidos atualmente são: Windows Internet Explorer, Firefox, Google Chrome, Opera e Safári.

LINGUAGEM DE PROGRAMAÇÃO

Este tem como finalidade desenvolvimento de outros programas e sistemas de uso genérico. Utilizando este tipo de software um programador pode desenvolver sistemas como:
·        Sistemas Contábeis
·        Administração de Empresas
·        Controle de Estoque/Venda/Compra etc.

Saas é a sigla de Software as a service, em tradução livre, Software como Serviço.
Para que todos possam entender, ele é um modelo de distribuição de software, na qual não é vendido e instalado localmente, mas sim é liberado apenas o acesso ao serviço oferecido por este software e é licenciado para a utilização através da internet.


SOFTWARES TUTORIAIS

Geralmente são usados para informar ou ensinar sobre determinado assunto, muito usados em treinamentos.
Os conceitos transmitidos através desse software se restringem ao que foi previsto por uma equipe de desenvolvimento do mesmo.

Similar ao software tutorial, mas aqui o usuário conta com maior interatividade através de resposta diante de questões que serão apresentadas.

SOFTWARE DE INVESTIGAÇÃO

Nesta categoria se enquadram todos os softwares que permitem a localização de diversas informações a respeito de diversos assuntos. As enciclopédias são normalmente classificadas nesta categoria.

SOFTWARE DE SIMULAÇÃO

Geralmente utilizados para simulações de situações da vida real. Dentre os mais conhecidos estão os simuladores de vôo e os gerenciadores de cidades, muito conhecidos pelo mundo jovem nos jogos, mas, quando pensamos em simuladores podemos errar a ligá-los somente a jogos, hoje eles são bastante usados em situações de treinamentos de pessoas para enfrentar casos no seu dia-a-dia.

Geralmente são softwares relacionados a entretenimento para proporcionar lazer e diversão. Dispõem de muitos recursos interativos e existem de todos os tipos, desde estratégias até simulações reais de muitas coisas como corridas. Alguns exemplos são:
·        Need for Speed
·        Ryzom
·        Warcraft
·        League of Legends
·        Second Life
·        The Sims

SOFTWARES ABERTOS

São aqueles que permitem que o usuário produza com liberdade e criatividade, se classificam nessa categoria aqueles softwares de apresentações, bancos de dados,e vários outros.

Definição de tipos de Software

Software proprietário: sua propriedade intelectual pertence à empresa desenvolvedora. Portanto, tanto a atualização, garantia e modificação desse software, bem como a decisão sobre o formato de distribuição ao mercado são de responsabilidade dessa empresa autora.
Note que 'proprietário' e 'comercial' não são sinônimos. As características "proprietário" e "livre" dizem respeito à propriedade e autoria.

Software livre: segundo a definição criada pela Free Software Foundation é qualquer programa de computador que pode ser usado, copiado, estudado e redistribuído com algumas restrições, em especial a manutenção do crédito aos autores originais e da mesma licença no caso de redistribuição.
Esse conceito se opõe ao software proprietário, cuja propriedade intelectual pertence a uma empresa, mas não ao software que é vendido almejando lucro (software comercial).
A distribuição do software livre é realizada em um regime jurídico de colaboração não compulsória, que prevê a manutenção desse formato de autoria e disponibilidade do produto para modificação pela comunidade nas distribuições subsequentes do software. Software livre não é a mesma coisa que software grátis

Software comercial: normalmente é comercializado por empresas ao mercado. Geralmente o usuário compra uma licença de uso - ou, no caso de software livre, serviços de implantação e manutenção.
A comercialização do software geralmente é combinada com a prestação de serviços como implementação, treinamento de uso, suporte técnico, atualizações de segurança etc.
Softwares comerciais podem ser construídos sobre plataformas de software proprietário ou software livre.

Software aberto: genericamente trata-se de software que respeita as quatro liberdades definidas pela Free Software Foundation. Esta nomenclatura e discurso foram criados com o objetivo de apresentar o software livre a empresas de uma forma mais comercial.
Software proprietário com padrões abertos: o código fonte é fechado, a propriedade intelectual é de uma empresa, mas o padrão é aberto, garantindo o funcionamento do sistema ou a manipulação de informações sobre qualquer plataforma tecnológica do mercado.
Um exemplo desse tipo de software é o sistema de emissão da Nota Fiscal Eletrônica (NFE), como o padrão é aberto, uma NFE pode ser acessada por um empresário em qualquer máquina, independente do tipo de software proprietário ou livre que ele utiliza como sistema operacional.

Software grátis: é um serviço de tecnologia gratuito ao usuário. Normalmente viabilizados por receitas geradas com publicidade, esses softwares podem ser construídos tanto sobre plataformas livres como sobre plataformas proprietárias. Exemplos: webmails, armazenamento de dados na nuvem; ferramentas para publicação de blogs/homepages (Windows Live Writer, Wordpress.com, Blogspot); ferramenta de compartilhamento de arquivos e tarefas; etc.

Software hosteado ou na nuvem ( Cloud Computing): otimiza a utilização dos recursos de processamento e armazenamento das máquinas, pois não vincula a infraestrutura a um hardware específico. Esse recurso permite aumentar e reduzir a infraestrutura de TI de acordo com as necessidades do usuário.

PHP: um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, como por exemplo a Wikipédia.



 

Referências

Tipos de Software

Acessado na data: 03/09/2016

Conheça os tipos de Software existentes no Mercado

Acessado na data: 03/09/2016

sexta-feira, 2 de setembro de 2016

PRINCIPAIS SISTEMAS DE ARQUIVO Tipos de arquivos: FAT/FAT32/NTFS/EXT4/HFS+



Introdução

Sistemas de Arquivos (File System)

Uma das formas de armazenamento de informações em microcomputadores (PC) ou em outros sistemas computacionais mais sofisticados, é a utilização de dispositivos com funções específicas para esse fim, conhecidos como discos rígidos ou HDs. Contudo por si só, esses dispositivos não tem a capacidade de organizar e gerenciar o espaço destinado ao armazenamento de dados.
Nesse ponto entram as funcionalidades do Sistema de Arquivos, também conhecido como File System, que atua como um intermediário entre o disco rígido e as informações a serem armazenadas e tem a função de gerenciar processos que determinam como os dados podem ser gravados, copiados, alterados e até apagados.

Em resumo, toda e qualquer manipulação de dados em um dispositivo de mídia, necessita de um Sistema de Arquivos para que essas ações sejam possíveis, se não houver uma estrutura de alocação arquivos e manipulação é impossível gravar dados.
Ao trabalharmos com discos rígidos ou HDs é necessário prepará-los, fazendo uma formatação física. Este processo divide o disco em trilhas (são círculos que começam no centro do disco e vão até a sua borda,) e setores (subdivisões de cada trilha, trechos regulares). Um conjunto de trilhas recebe o nome de cilindro (trilhas acessadas por varias cabeças de leituras, em vários discos empilhados). A formatação física já vem de fábrica e pode ser alterada se o usuário quiser dividir o disco em partições. Depois deve-se fazer uma formatação lógica, que nada mais é do que "instalar" o Sistema de Arquivos no dispositivo de armazenamento.
Cluster

Um cluster é a menor parcela do HD que pode ser acessada pelo sistema operacional. Cada cluster tem um endereço único, um arquivo grande é dividido em vários clusters, mas um cluster não pode conter mais de um arquivo, por menor que seja.
O tamanho dos clusters pode variar em relação ao sistema de arquivos que ele utiliza, quanto menores forem os clusters, menor será a quantidade de espaço desperdiçada no HD, sobretudo ao gravar vários arquivos pequenos, já que mesmo com apenas 1 byte de tamanho, qualquer arquivo ocupará um cluster inteiro.
Muitos usuários já ouviram falar em partições FAT ou FAT32 e NTFS, sem saber ao certo o que isso significa. Essas são siglas de Sistemas de Arquivos que possuem características estruturais e organizacionais, totalmente diferenciadas, que são utilizadas varias versões do sistema operacional Windows.
Os sistemas de arquivos é a parte do SO responsável pelo gerenciamento dos arquivos (estrutura, identificação, acesso, utilização, proteção e implementação). Ou seja, é um conjunto de tipos abstratos de dados que são implementados para o armazenamento, a organização hierárquica, a manipulação, navegação, acesso e recuperação de dados.
Entenda que um arquivo é um recipiente no qual os dados são armazenados, tendo ele um significado para o sistema ou usuário, e estes podem ser programas executáveis, texto, figura, etc. Todos os arquivos possuem um nome o qual o usuário faz referência a ele. Além do nome, cada arquivo possui uma série de outros atributos que são mantidos pelo sistema operacional como tipo de conteúdo, tamanho, data e hora do último acesso, data e hora da última alteração, lista de usuários que podem acessar o arquivo, etc.
A forma como os dados são dispostos dentro de um arquivo determina sua estrutura interna. Cada tipo de arquivo possui uma estrutura interna apropriada para a sua finalidade. Por exemplo, arquivos de texto são organizados em linha ou parágrafos.
Discos Rígidos
Os discos rígidos são compostos por vários discos internos, onde cada um deles é dividido em círculos concêntricos chamados de cilindros ou trilhas, e nestas trilhas temos uma certa quantidade de setores. Cada setor possui, normalmente, 512 bytes de informações. Para descobrir a capacidade total de um HD, basta multiplicar o tamanho do setor pela quantidade total de setores que ele tem.
Vale lembrar que 1 KB é representado por 1024 bytes, e não 1000 bytes como muitos pensam.

FAT16

O significado da palavra FAT é Tabela de Alocação de Arquivos (File Allocation Table) que seria um mapa de utilização do disco. Graças a isto, o SO saberá onde determinado arquivo está.
Normalmente é reconhecido por todos os Sistemas Operacionais, também é utilizado em cartões de memória de estado sólido, e não trabalham com setores, mas sim com unidades de clusters que são conjuntos de setores.
Uma característica marcante é a capacidade de nomear os arquivos somente com 8 caracteres + extensão. Caso seja excedido o valor de caracteres, os caracteres excedidos (do nome do ficheiro) desaparecerão e no lugar deles aparecerá ~1 ou ~2 (se já existir um outro arquivo com os 8 primeiros caracteres iguais).
Existe um inconveniente que quando ficheiros são apagados e novos ficheiros são escritos no suporte, as suas partes tendem a dispersar-se, fragmentando-se por todo o espaço disponível, tornando a leitura e a escrita um processo lento. Para isso, precisamos desfragmentar o disco para um melhor desempenho na sua função de leitura e gravação.
Outro problema é que o FAT16 não reconhece mais que 2GB por ser de 16 bits, utilizando clusters com no máximo 32 KB. Caso haja um disco com mais de 2GB, serão necessário particioná-lo em pedaços máximos de 2GB.


SISTEMAS DE ARQUIVOS FAT e FAT32


Significado


FAT é a sigla para File Allocation Table (ou tabela de alocação de arquivos).

Histórico:


O sistema de arquivos FAT32 é basicamente uma evolução do FAT convencional (também conhecido como FAT16). Sua primeira versão foi desenvolvida no ano de 1980, para atender às necessidades daquela época (MS-DOS). No início, ele trabalhava somente com 12 bits de endereçamento, valor que passou pra 16 e 1987. Finalmente não ano de 1996 passou a usar os 32 bits versão que é utilizada até hoje.

Características

A Tabela de Alocação de Arquivos é um mapa de utilização do disco. Graças a ele, o sistema operacional é capaz de saber exatamente onde um determinado arquivo está armazenado.
Uma diferença visível entre as duas versões é que FAT32 suporta nomes de arquivos longos (até 256 caracteres), enquanto o FAT16 suporta apenas nomes de arquivos curtos (até 8 caracteres + extensão).
Um dos maiores problemas do FAT diz respeito à segurança, pois neste sistema os arquivos podem ser lidos ou escritos por qualquer usuário do sistema.
O sistema de arquivos FAT não trabalha diretamente com cada setor, mas sim com um grupo de setores. Esse grupo é chamado de cluster (ou unidade de alocação). Se por exemplo, um disco com setor de 512 bytes, tiver 5 KB de tamanho, ele terá 10 setores e 5 clusters, se cada cluster ocupar dois setores. Sendo assim, quando o FAT precisar acessar um determinado setor, primeiro ele descobre em qual cluster ele se encontra. É válido citar que tanto o FAT quanto o FAT32 trabalham de acordo com este princípio.

FAT32

Já neste, suporta partições de até 2 TB, tamanho de arquivos de 4 GB e o nome dos arquivos passou de 8 para 256 caracteres e superou o antigo limite de 3 caracteres para a extensão, embora este padrão ainda seja largamente utilizado.
Com o FAT32, o desperdício em disco foi sensivelmente reduzido. O FAT16, seu antecessor, utilizava clusters de até 64 KB enquanto o FAT32 pode utilizar clusters de 4 KB. Se um arquivo ocupa 4 KB de espaço, tanto no FAT16 como no FAT32 a ocupação será de 1 cluster, porém, no caso do FAT16 os 60 KB restantes serão alocados, apesar de ficarem fisicamente vazios.
Tem a desvantagem de ser 6% mais lenta que FAT16 e a incompatibilidade com SO antigos.
Não possui recursos de segurança como o NTFS. Utiliza uma cópia backup da tabela de alocação como sistema de segurança para corrupções de arquivos. Este procedimento é ineficiente, pois uma queda de energia durante uma operação que modifique os metadados pode tornar a partição inacessível ou corromper severamente diversos arquivos.
Fonte: http://www.diegomacedo.com.br/sistemas-de-arquivos-ntfs-fat16-fat32-ext2-e-ext3/
NTFS
O NTFS (New Technology File System) é um sistema de arquivos que surgiu com o lançamento do Windows NT, e passou a ser bem aceito e utilizado nas outras versões do Windows posteriormente.
Uma dessas vantagens diz respeito ao quesito “recuperação”: em caso de falhas, como o desligamento repentino do computador, o NTFS é capaz de reverter os dados à condição anterior ao incidente. Isso é possível, em parte, porque, durante o processo de boot, o sistema operacional consulta um arquivo de log que registra todas as operações efetuadas e entra em ação ao identificar nele os pontos problemáticos. Ainda neste aspecto, o NTFS também suporta redundância de dados, isto é, replicação, como o que é feito por sistemas RAID, por exemplo.
Algumas características são:
Neste modelo, temos o tamanho limite do arquivo de acordo com o tamanho do volume;
Os nomes dos arquivos podem ter 32 caracteres;
Tem suporte a criptografia, indexação e compactação;
Seus clusters podem chegar a 512 bytes;
É mais seguro que o FAT;
Permite política de segurança e gerenciamento;
Menos fragmentação;
Melhor desempenho;
Recuperação de erros mais fácil;
Caso seja usado em mídias, podem se corromper mais facilmente;
É um pouco mais lenta que o FAT32 devido as diretivas de segurança que o FAT32 não tem e precisam ser acessados durante leitura e gravação de dados;
Utiliza a tabela MFT (Master File Table) para registrar a utilização de cada cluster de um disco;



SISTEMA DE ARQUIVOS NTFS

Significado

NTFS é a sigla de New Technology File System (Nova Tecnologia de Sistema de Arquivos)

História

O Sistema foi desenvolvido no ano de 1993, com o objetivo de ser o Sistema de Arquivos do Windows NT, sua criação foi uma necessidade, pois os sistemas baseados em MS-DOS não eram estáveis o suficiente para a execução em servidores. O sistema passou a possuir novos recursos como a configuração de permissões em arquivos ou pastas, encriptação e compactação nativas e transparentes ao usuário, volumes extendidos e mais uma gama de funções que a maioria dos usuários nem chega a conhecer. Na década de 2000 os sistemas operacionais Windows passaram a usar o padrão NT, até hoje.

Características

Confiabilidade: O NTFS foi criado para ser o mais confiável possível e necessitar do mínimo possível de manutenção ao sistema de arquivos.

Segurança: Através de permissões de arquivos e pastas, o NTFS permite controlar o acesso aos dados.

Expansibilidade: Um sistema de arquivos feito para servidores não pode se dar ao luxo de suportar apenas os discos rígidos mais comuns. Ao contrário do FAT, que somente suporta partições de 4Gb, o NTFS foi desenhado para suportar discos de até (pasmem!) 16 exabytes (264 bytes).

Eficiência: O FAT desperdiçava enormes quantidades de espaço em disco. Com o NTFS, esses desperdícios foram evitados ao máximo.

Nomes de arquivos: Ao contrário do FAT (16 bits), o NTFS suporta nomes de arquivos e pastas com até 255 caracteres.

EXT2

Ext2 foi projetado e implementado para corrigir as deficiências do Ext e prover um sistema que respeitasse a semântica UNIX. A influência do UNIX pode ser vista, por exemplo, na utilização de grupos de blocos, que são análogos aos grupos de cilindros utilizados pelo FFS. O bloco, que consiste num conjunto de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O tamanho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação.
Quando é realizada uma operação de escrita em um arquivo, o Ext2 tenta, sempre que possível, alocar blocos de dados no mesmo grupo que contém o nó-i. Esse comportamento reduz o movimento da(s) cabeça(s) de leitura-gravação da unidade de disco.
Em um sistema de arquivos ocorrem dois tipos de fragmentação: (i) a fragmentação interna (ou de espaço) é causada pelo fato do tamanho do arquivo geralmente não ser múltiplo do tamanho do bloco (portanto o último bloco terá um espaço não utilizado) — a consequência é a perda de espaço; (ii) a fragmentação externa (ou de arquivo) decorre da impossibilidade do sistema determinar, a priori, qual o tamanho do arquivo (p.ex., arquivos de texto e de logs são muito modificados, e o seu tamanho pode aumentar ou diminuir) — assim um arquivo pode alocar blocos não contíguos, prejudicando o desempenho.
Para diminuir o impacto do primeiro tipo, existem duas estratégias básicas. A primeira, mais simples, é determinar, na formatação, o menor tamanho de bloco possível. O Ext2 permite tamanhos de blocos de 1024, 2048 e 4096 bytes. Um tamanho de bloco pequeno, como 1024 bytes, diminui a fragmentação e perda de espaço, mas em contrapartida gera um impacto negativo no desempenho, pois acarreta o gerenciamento de uma maior quantidade de blocos. O tamanho de bloco padrão para volumes grandes é de 4096 bytes.
A segunda estratégia é alocar a parte final de um arquivo, menor que o tamanho de um bloco, juntamente com pedaços de outros arquivos. O Reiserfs chama esse método de tail packing; o UFS usa fragmentos, que são submúltiplos do tamanho do bloco. Apesar do Ext2 possuir, no superbloco, a previsão para uso de fragmentos, esse método não foi implementado.
Para diminuir o impacto da fragmentação externa, o Ext2 pré-aloca (reserva) até oito blocos quando um arquivo é aberto para gravação. Esses blocos reservados, quando possível, são adjacentes ao último bloco utilizado pelo arquivo. [CARD, TS’O e TWEEDIE, 1994]

EXT3

O Ext3 (Third Extended file system) é um sistema de arquivos desenvolvido por Stephen C. Tweedie para o Linux, que acrescenta alguns recursos ao Ext2, dos quais o mais visível é o journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado.
Há três níveis de journaling disponíveis na implementação do Ext3:
Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes.
Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados a eles trechos de lixo na próxima montagem.
Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável entre confiabilidade e performance, sendo, portanto, o nível padrão.
Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos (como ReiserFS e XFS), ele tem a importante vantagem de permitir que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de processamento.
Enquanto em alguns contextos a falta de funções de sistemas de arquivos “modernos”, como alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma desvantagem, em termos de “recuperabilidade” isso dá ao ext3 uma significante vantagem sobre sistemas de arquivos que possuem-nas. Os metadados do sistema de arquivos estão todos em locais fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que sistemas de arquivos em árvore não seriam recuperáveis.
O que é Ext4 e Como funciona o sistema de arquivos ext4?
Introdução
Ext4 é a evolução do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 é uma profunda melhoria sobre o  Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adição de Journaling sobre o Ext2, mas Ext4 teve mudanças importantes na estrutura do sistema de arquivos destinado ao armazenamento de dados. O resultado é um sistema de arquivos com um designer aperfeiçoado, melhor performance, confiável e com muitos recursos.

Recursos do Ext4

Compatibilidade
Um sistema de arquivos Ext3 existente, pode ser migrado para Ext4 com um procedimento fácil, onde consiste a execução de um casal de comandos em modo “read-only” (descrito na próxima seção). Por meio disto você melhora a performance, limites de armazenamentos e recursos do sistema de arquivos corrente, com ou sem a “reformatação” e/ou reinstalação do SO e softwares “environment”. Se você precisa das vantagens do Ext4 em um sistema em produção, você pode atualizar o sistema de arquivos. O processo é seguro é não há riscos para seus dados (obviamente, fazer backup de dados críticos é recomendado, pois você está atualizando seu sistema de arquivos). O Ext4 vai usar uma nova estrutura de dados somente em novos dados, a estrutura antiga continuará intocada, é será possível para leitura/escrita se for preciso. Desta forma, é claro, assim que uma vez convertido o sistema de arquivos para Ext4, você não vai poder voltar para o Ext3 novamente (embora há uma possibilidade, descrita na próxima seção, montando um sistema de arquivos Ext3 com Ext4 com ou sem o uso de um novo disco formatado, e você poderá montar com o Ext3 novamente, porém você irá perder todas as vantagens do Ext4).
Sistema de arquivos ou arquivos grandes
Atualmente, Ext3 suporta 16TB de tamanho máximo no sistema de arquivos, e 2TB de tamanho máximo de um arquivo. Ext4 adiciona 48-bit endereçados, obtendo assim 1EB de tamanho máximo de sistema de arquivos e 16TB de tamanho máximo de arquivos. 1 EB = 1,048,576 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB). Porque 48-bit e não 64-bit? Há algumas limitações daquele que pode precisar que seja fixado antes da construção do Ext4 enchendo a capacidade de 64-bit, no qual não tem como ser endereçado no Ext4. A estrutura de dados do Ext4 tem que ser desenhada mantendo em mente, um recurso de atualização para o Ext4 implementando completamente suporte a 64-bit até algum ponto. 1EB pode ser suficiente (realmente enquanto isso acontecer). (Note: o código para criar sistemas de arquivos grandes como 16TB não é estável nas versões do e2fsprogs).
scabilidade de subdiretórios
Atualmente a possibilidade máxima de número de subdiretórios contendo um único diretório no Ext3 é 32.000. Ext4 quebra esse limite, e possibilita um número ilimitado de subdiretórios.

Extends

Os tradicionais sistemas de arquivos derivados do Unix como o Ext3, utilizam um esquema de mapeamento indireto de blocos para manter cada trilho do bloco usado correspondente no dado de um arquivo. Isto é ineficiente para arquivos grandes, especialmente um arquivo grande deletado e/ou operações “truncate”, porque o mapeamento mantém uma entrada para muitos blocos únicos, e grandes arquivos tem muitos blocos – > mapeamentos enormes, lentidão para o manuseio. Os sistemas de arquivos modernos usam uma abordagem diferente chamada “extends”. Um extends é basicamente um punhado de blocos físicos continuo. Isto pode ser basicamente definido: “Os dados no próximo bloco n”. Por exemplo, um arquivo de 100MB pode ser alocado em um único extends deste tamanho, em vez de precisar da criação de um mapeamento indireto para 25600 blocos ( 4KB por bloco). Arquivos grandes são divididos em diversos extends. Extends melhora a performance e também ajuda a reduzir a fragmentação, uma vez que incentiva o continuo “layouts” do disco.
Alocação multiblock
Quando o EXT3 precisa de nova escrita de dados no disco, há um alocador de blocos que decide quais blocos livres deverá ser usado para a escrita do dado. Mas o alocador de blocos do Ext3 somente alocar um bloco (4KB) em um momento. Esta forma que o sistema precisa para escrever 100MB de dados mencionado anteriormente em outro ponto, será necessário para chamar o alocador de blocos 25600 vezes (isto simplesmente para 100MB!). Não só isto é ineficiente, como também não permite que o bloco de alocação utilize a política de alocação porque ele não sabe como o total de muitos dados deve ter a alocação iniciada, ele apenas conhece sobre um simples bloco. Ext4 usa “multiblock allocator” (mballoc), no qual, aloca muitos blocos em uma simples chamada, em vez de um simples bloco por chamada, evitando um monte de overhead. Isto melhora a performance, e é especialmente útil com “alocação atrasada” e extends. Este novo recurso não afeta o formato do disco. Também, note que o Ext4 blocos/inode tem outras melhorias no alocador, descrição e detalhes neste documento (http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf).
Atraso na alocação
Atraso na alocação (http://en.wikipedia.org/wiki/Allocate-on-flush) é um recurso de performance (isto não muda o formato do disco) encontrado em poucos sistemas de arquivos modernos, tais como o XFS, ZFS, btrfs ou Reiser 4, que constitui em um atraso na alocação de blocos tanto quando possível, contrário aos tradicionais sistemas de arquivos (tais como o Ext3, Reiser3, etc) fazem: alocando os blocos com a maior brevidade possível. Por exemplo, em um processo de escrita, o código do sistema de arquivos irá atribuir imediatamente os blocos quando os dados forem coletados – mesmo se os dados não estiverem sendo escritos agora para o disco, eles vão ser mantidos em cache durante um tempo. Esta abordagem tem algumas desvantagens.Por exemplo, quando um processo esta escrevendo continuamente em um arquivo, crescente, sucessivamente sendo escritos atribuindo blocos para os dados, mas ele não sabe se o arquivo se manterá crescente. Atrasando a alocação, por outro lado, não afetaria os blocos imediatamente quando o processo de escrita, sim, ela atrasa a alocação dos blocos, enquanto o arquivo é mantido em cache, até que ele esteja realmente indo para escrito no disco. Isto da ao bloco de alocação a capacidade de alocar em situações em que sistemas antigos não poderia. Atraso na alocação trabalha muito bem com as duas características anteriormente mencionadas, extents e alocação multiblock, porque, em muitos casos um trabalho em que o arquivo é gravado para o último disco que será atribuído em blocos extends, cuja alocação é feita com o mballoc. O desempenho é muito melhor, e a fragmentação é muito melhorada em alguns workloads.
fsck rápido
Fsck é uma operação muito lenta, especialmente o primeiro passo: checagem de todos os inodes em um sistema de arquivos. No Ext4, até o fim de cada grupo da tabela de inode estará armazenado uma lista de inodes inutilizados ( com checksum, por segurança), assim o fsck não irá checar estes inodes. O resultado final é que o tempo do fsck melhorou de 2 a 20 vezes, dependendo do número usado de inodes (http://kerneltrap.org/Linux/Improving_fsck_Speeds_in_Ext4). Deve-se notar que é o fsck, e não o Ext4, que irá montar a lista de inodes inutilizados. Isso significa que você deve executar o fsck para obter a lista de inodes inutilizados construída, e só na próxima execução do fsck será mais rápida (você precisa passar o fsck, a fim de converter um ext3 filesystem para Ext4 de qualquer forma). Há também uma característica que ajuda a acelerar o fsck – “flexible block groups” – que também acelera as operações em arquivos.
Journal checksumming
O Journal é mais utilizado na parte do disco, construindo os blocos mais propensos a falhas de hardware. A recuperação de um  journal corrompido pode levar a uma corrupção massiva. Ext4 checksums do dados de journal verificando se os blocos de journal estão falhando ou corrompendo. Mas “journal checksumming” tem um bonus: ele permite para conversão e gravação em duas-fases, sendo no Ext3 o journal em única fase, acelerando a operação no sistema de arquivos para mais de 20% em alguns casos – assim a reabilitação e a performance são melhoradas ao mesmo tempo (Nota: parte dos novos recursos e melhorias de performance, e “asyncrhonous logging”, está desativada por padrão e será ativada em versões futuras).

Padrões de barreiras

Este é uma opção que melhora a integridade de um sistema de arquivos ao custo de cerca de desempenho (você pode desabilitar isso com “mount -o barrier=0″, recomendado que seja testado com um benchmarking). Neste artigo da LWN (http://lwn.net/Articles/283161/): “O código do sistema de arquivos tem, antes de escrever [journaling] e gravando o registro, ter certeza absoluta de todas as informações de operações para a criação do journaling. Apenas escrever, no bom sentido, é insuficiente; os dispositivos atuais mantêm grandes chache interno e reordenam operações para melhor performance. Portanto, os sistemas de arquivos devem explicitamente instruir o disco para obter todos os dados do journaling antes da escrita e gravação das alterações; se a gravação dos registros forem escritas em primeiro lugar, o journaling pode ser corrompido. No kernel, os subsistemas de blocos de I/O torna essa capacidade disponível através de uso de barreiras, na sua essência, uma barreira impede a escrita de qualquer bloco após a barreira até que todos os blocos escritos antes da barreira sejam gravados na mídia. Ao utilizar barreiras, o sistema de arquivos pode ter certeza que sua estrutura em disco permaneçam consistentes em todo o momento”.
HFS+
o HFS+ (Hierarchical File System plus, ou sistema de arquivos hierárquico estendido). Ele é a atualização do HFS, apresentado em 1985 pela Apple e usado por anos em seus sistemas operacionais.
O HFS+ também é conhecido como sistema de arquivos Mac OS X Extended, e supera o formato HFS em vários quesitos: pode trabalhar com endereços de bloco de arquivos de até 32bits, contra 16bits do sistema anterior; aceita nomes de arquivos com até 255 caracteres, em vez de apenas 31; tem formato de nome de arquivo Unicode, em vez do já antiquado MacRoman; e entre outros, o que mais gosto, que é a possibilidade de lidar com arquivos de até 8EB (Exabytes)! Para se ter uma idéia, um Exabyte dá mil Petabytes, um milhão de Terabytes, ou um bilhão de Gigabytes. Acredito que os editores de vídeo não teriam problemas para gravar seus clipes com esse formato…
Apesar disso, existe uma pequena diferença entre “poder” e “ser”. O formato NTFS que existe nos Windows NT, XP, 2003 e Vista, por exemplo, alcança o dobro esse valor como máximo tamanho de um único arquivo. Por outro lado, a implementação real só permite um limite de quase 16TB, ou aproximadamente 16.000GB. Isso dá um banho de água do Oceano Ártico nos antigos FAT16 e HFS. O limite de tamanho de arquivos para estes é de 2GB.
Podemos ver em que formato se encontra qualquer disco conectado a um Mac através do atalho de teclas Command-I sobre o mesmo. No caso do nosso querido sistema X, a opção de formato HFS+ já existe há algum tempo, então é provável que apareça a designação Mac OS X Extended no local onde indica o respectivo formato.
Além disso, ainda há outros termos. Por exemplo, quando vamos formatar um disco com o Disk Utility, vemos as seguintes opções:
Mac OS Extended (Journaled): de acordo com a Apple, o formato journaled foi apresentado no OS X 10.2.2 Server, e sua função é aumentar a segurança quanto ao armazenamento de dados, no que diz respeito a evitar falhas de integridade em casos extremos. Um disco com essa característica mantém registro de todas as suas atividades, e em caso de instabilidade ou travamento do sistema, esse registro — um journal, que pode ser entendido como “relatório” — é usado para restaurar o estado do sistema ao que tenha sido gravado, depois do reinicio do sistema. Conceito muito parecido ao rollback em Banco de Dados.
Mac OS Extended: é possível ter um disco HFS+ sem a opção de journaling. Também se pode desabilitar essa função, através de comandos via Terminal, para quem precise ganhar desempenho em computadores mais lentos. O risco de perda de dados aqui é maior que na opção anterior.
Mac OS Extended (Case-sensitive, Journaled): combinação da primeira opção, respeitando as diferenças entre maiúsculas e minúsculas. Algo parecido com o que acontece no UNIX.
Mac OS Extended (Case-sensitive): igual ao anterior, só que sem journaling.
MS-DOS (FAT): seria o FAT32, da Microsoft. Formatar um disco com essa especificação garante compatibilidade integral entre quaisquer sistemas operacionais, porém há a limitação de tamanho de arquivos a 4GB, o que pode ser um problema para editores de vídeo e outras pessoas que trabalhem com arquivos de tamanho grande. Também um problema para quem lida com imagens de DVD-DL, já que o dual-layer consiste exatamente em levar o tamanho de um DVD normal a quase 8,5GB.
Tirando a opção MS-DOS (FAT), todas as outras são algum tipo de HFS+, e ainda havia uma opção UFS (UNIX File System), para quem quisesse, por alguma razão, usar o formato do sistema UNIX. O journaling é sempre aconselhado, por aumentar a segurança na manipulação de dados, e diminuir o risco de perdas em caso de que o computador pare de funcionar, trave ou fique sem energia elétrica, por falta de luz, por exemplo.
Hoje em dia, para quem precise trabalhar com arquivos muito grandes, eu recomendaria o uso do formato HFS+ Journaled para qualquer disco, mesmo que ele seja utilizado depois em computadores com Windows. Existe um programa muito bom da MediaFour, chamado MacDrive, que é pago, mas pela função que tem, até sai barato. Permite ver e trabalhar com qualquer disco, dentro do Windows, com formatos HFS e HFS+, em todas as variações. Isso garante a possibilidade de abrir arquivos maiores que 4GB de tamanho nos sistemas operacionais da Microsoft e da Apple, sem qualquer problema.
Há que lembrar sempre que, de modo nativo, o Mac OS X não consegue permitir acesso completo a arquivos em discos com formato NTFS, usado nos Windows 2000, XP e Vista. Creio que também há soluções para isso, apesar de que eu não conheço nenhuma de fácil uso e que funcione de modo parecido ao MacDrive. Talvez algum dia HFS+ e NTFS se comuniquem, como já acontece com o formato da Apple e o FAT32.



Referencias









TIPOS DE SISTEMAS RAID O que são e como utiliza-los



RAID: O QUE É?

Redundant Array of Inexpensive Disks, o RAID, em português Matriz Redundante de Discos Independentes é uma tecnologia que combina vários discos rígidos, os chamados HD, que formam uma unidade lógica e assim, os mesmos dados são armazenados em todos. Podemos dizer que o RAID é um grupo de HDs que funcionam como se fossem um só. A sua funcionalidade faz com que o sistema tenha grande tolerância a falhas, caso um disco apresente falha, os demais continuarão em funcionamento. Existem muitos tipos de RAID, cada qual com características próprias. Alguns dos tipos podem ser agrupados. Abaixo as características deles:
Você tem dois ou mais HDs em seu pc, mas não sabe muito bem o que fazer com eles? Você pode ativar o RAID, que permite usar vários HDs de forma inteligente.

Tipos de RAID

RAID significa “redundant array of independent disks”, esse Sistema permite que você junte vários HDs em um só, o que espelha os dados em dois HDs.
Existem diversos tipos de RAID:
Raid 0: O Raid 0 permite que você melhore o desempenho usando múltiplos HDs. Quando o utiliza, o seu computador grava os dados em dois ou mais HDs de forma igual. Um exemplo, você grava 1GB de dados, 500MB fica armazenado em um HD e os outros 500MB, em outro HD. Sendo assim, quando os dados precisam ser lidos, ele lê um pedaço de cada HD, mais rápido do que fazer em apenas um. Uma das desvantagens desse modo é que caso um dos HDs falhe, todos os seus dados são perdidos.

RAID 0 Este RAID é conhecido como “Fracionamento”. Os dados contidos nele são divididos em pequenos segmentos e assim, distribuídos entre os discos. Neste RAID não há tolerância a falhas, pois não há redundância. Assim, caso haja alguma falha, pode sim, haver perda de informações. O RAID 0 é muito usado para melhorar a performance do computador. Ele contribui para o aumento da velocidade na gravação e leitura de informações. Neste nível de RAID, os dados são gravados ao mesmo tempo. Ele é muito usado em aplicações no CSD e tratamento de imagens e vídeos
RAID 1: Com esse sistema, ambos os HDs ficam programados para serem espelhados. Quando o computador grava 100mb de dados em um dos discos, ele também armazenará os 100MB no outro disco. Se um dos discos falhar, não tem problema, pois o outro tem uma cópia atualizada de todo seu conteúdo.
RAID 1 O sistema RAID 1 é possui base no espelhamento de um disco em outro. Assim, qualquer informação que for armazenada no disco 1 também será armazenada no disco 2. Para tanto, se um dos discos tiver algum tipo de problema a informação estará totalmente resguardada no outro disco. Apesar de ser extremamente seguro, pois faz uma duplicação de todas as informações, a performance deste sistema não terá nenhuma diferença em relação a performance de um disco individual. Uma aplicação comum do RAID 1 é em servidores de arquivos.
RAID 2: Apesar de menos usado hoje em dia, o RAID 2 era utilizado na época em que os HDs não tinham contagem de erros. Sendo assim, ao invés de paridade você conta com um HD que utiliza ECC (Error Correcting Code) para diminuir a taxa de erros em seu disco rígido. Atualmente, existem soluções melhores para evitar erros em seu HD, o que o torna obsoleto.
RAID 2 O RAID 2 tem a capacidade de adaptar o mecanismo de detecção de possíveis falhas em discos rígidos para funcionar em memória. Deste modo, todos os disco da matriz são, de certa forma, monitorados, pelo mecanismo. O RAID 2 não é muito usado pois, os discos rígidos novos já saem das fábricas com mecanismos que detectam as falhas.
RAID 3: Um dos modos mais raros de se ver sendo usado. Ele separa os arquivos em bytes, não em blocos como se ve normalmente. Um disco é utilizado para paridade. Apesar de conter leitura e gravação rápida, os discos tem de girar em sincronia para obter os dados. Leitura aleatória de dados dentro do HD também sofre com desempenho.
RAID 3 No RAID 3 os dados são divididos nos discos da matriz, com exceção de um, que armazena informações de paridade. Caso haja algum tipo de recuperação será possível garantir a integridade dos dados. O RAID 3 tem a capacidade de oferecer taxas consideráveis de transferência e grande confiabilidade das informações.
RAID 4: Com a necessidade de se ter três HDS, o RAID 4 armazena todos os dados desses HDs em um disco reservado de paridade. O problema nesse caso vem de que sua velocidade não é tão boa, graças a ter um disco inteiramente reservado de paridade. Assim como o RAID 2, é pouco usado fora de empresas.
RAID 4 Este RAID divide os dados entre os discos. Um dos discos é exclusivo para a paridade. A principal diferença encontrada entre o nível 4 e o nível 3 de RAID, é relativo as possíveis falhas de um disco, assim, os dados podem ser reconstruídos através da paridade calculada dos outros discos. O RAID 4 é indicado para arquivos de bom tamanho, pois assim, torna-se possível garantir a integridade das informações.
RAID 5: Para se usar o RAID 5 é necessário no mínimo três HDs. As informações de paridade são divididas em vários HDs, sendo assim, se um HD falhar, os dados continuarão armazenados em outros HDs. Sua desvantagem vem de que é um sistema relativamente complexo de gerenciamento de HDs, mas conta com uma leitura rápida.
RAID 5 O RAID 5 é a evolução dos sistemas RAID anteriores , o RAID 1, 2, 3 e 4. Quando um RAID 5 é criado, o sistema utiliza o espaço equivalente a um disco inteiro para armazenar a paridade, que é a informação redundante. Através de um complexo sistema de numeração existem mecanismos que conseguem juntar performance e segurança ao mesmo tempo. Através de complexas fórmulas matemáticas, foram criados algoritmos para comprimir os dados independente do seu conteúdo, gerando assim, a paridade. Nos sistemas anteriores (RAID 2, RAID 3 e RAID 4) a paridade era armazenada em um único disco. No RAID 5 a paridade é armazenada de forma alternada em todos os discos. Se qualquer dos discos contidos no sistema tiver qualquer tipo de problema, o mesmo poderá ser substituído e reconstruído através do processo chamado de rebuild.
RAID 6: Similar ao RAID 5, mas com uma proteção de segurança a mais por um bloco de paridade extra. São dois blocos para cada bit de dados armazenado nos HDs. Se dois HDs falharem em um RAID 5, você não terá seus dados armazenados, o que pode ocorrer em RAID 6 e você ainda poderá ter seus arquivos salvos. Não são todos os HDs que aceitam o RAID 6.
RAID 6 Este RAID é muito parecido ao RAID 5, no entanto difere-se pelo dobro de bits de paridade encontrado nele. Esta diferença faz com que haja garantia da integridade dos dados mesmo com falha de dois dos HDs ao mesmo tempo.
RAID 10: Também conhecido como RAID 1+0, esse sistema divide os dados entre os discos primários e espelha os dados nos discos secundários. Sendo assim, ele mantém o desempenho do RAID 0 com a segurança do RAID 1.
Existem dois tipos de maneiras que você pode colocar seus HDs em modo RAID. Por meio de Hardware ou por meio de Software.
Caso decida usar o hardware, você tem de fazer isso por meio de sua BIOS para configurar o controlador RAID do hardware. Como cada BIOS é diferente, é necessário dar uma lida no manual para os passos indicados. Você pode também acessar o site oficial da fabricante do disco rígido para obter mais informações.

RAID 10 O RAID 10 possui características do RAID 0 e o 1. Este nível pode ser usado em sistemas com 4 discos ou mais, porém, é obrigatório que seja número par. No RAID 10, a metade dos discos armazena dados e a outra parte uma cópia. A sua confiabilidade é muito grande em decorrência do seu tipo de armazenamento.



Referencias