# data[].attributes.body
↪ Histórico
↪ Características
↪Estrutura do Sistema Operacional
↪Processos e Threads
↪ Gerência do Processador
↪Gerência de Memória
↪Sistemas de Arquivos

# data[].attributes.attachment_caption
Sistemas Operacionais Modernos, página 594, Tanembaum, 7 dezembro 2015

# data[].attributes.body
Microsoft  Surgiu  com seu Sistema Operacional  por volta de 1980 e sua primeira versão era  o MS-DOS  no qual era um sistema bem simples que o propósito era devido a necessidade  da IBM que precisava de um S.O funcional.
Após isso, ela foi aprimorando seu sistema até quem em 1985 surgiu a primeira versão do Windows chamado de Windows 1.0, a Microsoft continuou dando suporte ao MS-DOS e a partir desse momento o MS-DOS começou a ser integrado no Windows.
Bom, a versão 1.0 do Windows foi a primeira com interface gráfica em que nela  você apontava e clicava com o mouse e não precisava ficar digitando códigos.
Assim, a Microsoft continuou atualizando seu sistema, aprimorando ele cada vez mais, até que em 1995 saiu o Windows 95 que foi um marco histórico de uma nova era da Microsoft já que trouxe diversas melhorias e aprimoramentos como por exemplo o o menu Iniciar, plug and play e a  navegador de internet com o famoso Internet Explorer.
Com isso, a Microsoft começou uma série de melhorias e 3 anos depois já lançou o Windows 98 que era mais estável e melhor, depois disso lançou o Windows 2000 que foi meio esquecido pois logo depois lançou o Windows XP em 2001 que foi um dos mais amados e já possuía uma aparência parecida com os atuais.
A Microsoft deu uma sossegada e lançou uma nova versão de Windows somente em 2006, 5 anos depois, que foi o Windows Vista, o pessoal não gostou muito dele devido a lentidão que ele apresentava, pois ele era muito mais pesado que o XP e não rodava em qualquer computador, então em 2009 a Microsoft lançou o grandioso Windows 7 que praticamente melhorou em tudo o que o Vista fez e era fácil de utilizar.
Em 2012 a Microsoft deu a louca e quis mudar toda interface gráfica do Windows, lançando seu terrível Windows 8, ela tentou fazer um sistema que funcionasse tanto para smartphones quanto para desktops, mas não deu nem um pouco certo e foi um fracasso.
Finalmente em 2015 ela lançou um sistema que realmente seria o sucessor do Windows 7, o Windows 10. A Microsoft então decide voltar com a interface gráfica mais parecida com Windows 7 porém de uma forma mais modernizada, ela trouxe de volta o menu iniciar que não estava presente no 8.
Atualmente, estamos presenciando o surgimento do Windows 11, ele não é muito diferente do 10, teve algumas melhorias nos visuais modernizando ainda mais, porém é um sistema ainda muito instável e cheio de bugs, uma inovação foi agora os aplicativos Androids estão presente na loja da Microsoft  para serem utilizados no Windows 11.

Fontes:

Windows: veja a evolução do principal sistema operacional do mundo
<https://www.tecmundo.com.br/software/219912-windows-veja-evolucao-principal-sistema-operacional-do-mundo.htm>

Conheça todas as versões do Microsoft Windows.
https://www.topgadget.com.br/howto/windows/conheca-todas-as-versoes-do-microsoft-windows.htm

# data[].attributes.attachment_link.title
imagem dos principais lançamentos da historia dos SO de windows

# data[].attributes.body
Características:
• Múltiplas tarefas
Seu nome  Windows é por causa de seu sistema multitarefas pois no Windows você consegue  abrir múltiplas "janelas" ao mesmo tempo  logo você consegue abrir diversos programas ao mesmo tempo

• GUI: informações gráficas
Todas as informações desse sistema são dispostas graficamente através de sua interface gráfica, assim sendo mais fácil o uso por qualquer usuário.

• Pode ter nomes nos arquivos de até 255 caracteres.
Os nomes dos arquivos são limitados a 255 caracteres, é uma limitação do Windows, mais que isso vai dar mensagem de erro.

• Excelente plataforma para utilizar uma rede
Windows possui um ótimo suporte a internet, desde  o Windows 95 em que trouxe seu Internet Explorer, além disso o Windows

• Prompt de Comando (CMD)
Pelo CMD pode-se realizar diversos comandos e eles são feitos na linguagem BATCH que já não é muito mais utilizada atualmente.

• Sistema 32 bits ou 64
Ele tem tanto suporte a 64 bits ou 32 bits permitindo diversos processadores funcionarem nesse sistema.

Fontes:

Seminário Windows
https://ava.cefor.ifes.edu.br/mod/forum/discuss.php?d=728339

# data[].attributes.attachment_caption
comunicação entre hardware e aplicativos, transitando entre kernel e modo usuário 

# data[].attributes.body
Estrutura:
Windows usa uma estrutura em camadas que consiste em dois componentes principais, o modo de usuário  e o modo de kernel.
Geralmente os aplicativos são rodados no modo usuário e os componentes principais do S.O são rodados no modo kernel.
No modo usuário  programas são limitados em termos do que os recursos do sistema podem acessar, resumindo ele não pode acessar diretamente o hardware.
Cada aplicativo no modo de usuário tem um espaço de endereço virtual privado, isso quer dizer que ele não pode modificar outros aplicativos, cada aplicativo é individual, então, se um der  pane os outros ainda vão continuar funcionando.
No modo Kernel, todo o código executado nele compartilha um único espaço de endereço virtual, o código em execução tem completo acesso ao hardware, ele pode executar qualquer instrução do CPU e referenciar qualquer endereço de memória. O modo de Kernel geralmente é uma das funções mais seguras do sistema operacional.
Existe também o microkernel que é uma coleção de programas que providenciam  tarefas como o gerenciamento de alocação de espaço na memória, gerenciamento de thread e a comunicação entre processos. O microkernel trabalha junto com o kernel do Windows  para fazer o sistema funcionar corretamente.

Fontes:

Windows Architecture Explained by Stacksol
https://www.slideshare.net/Stacksol/windows-architecture-explained-by-stacksol

Modo de usuário e modo kernel
https://learn.microsoft.com/pt-br/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode

# data[].attributes.body
Processos:
Processos são simplesmente programas em execução  pode ser uma ou mais threads rodar em função desse processo, ele precisa de pelo menos uma thread para poder funcionar.

Thread:
É uma forma de um processo ser dividido em 2 ou mais  com o propósito de ser executadas simultaneamente assim causando uma concorrência.

Windows possui suporte a mais de um processador, portanto, as threads podem ser alocadas em processadores diferentes rodando no mesmo ambiente.

Job Object
É um objeto de kernel em que  a função dele é agrupar processos para serem manipulados como se fosse somente um processo, um processo só pode ser de um Job por vez

Fibers (Fibras)
Elas são uma unidade de execução que tem que ser agendada manualmente pelo aplicativo. Elas são escalonadas pelas threads. De outro ponto de vista elas são threads programadas cooperativamente e são simétricas, ou seja todas são iguais, elas formam juntas uma espécie de "Fibra".

Fontes:
About Processes and Threads
https://learn.microsoft.com/en-us/windows/win32/procthread/about-processes-and-threads

Fibers
https://learn.microsoft.com/en-us/windows/win32/procthread/fibers

Fibers: the Most Elegant Windows API
https://nullprogram.com/blog/2019/03/28/

Processes, Threads, and Jobs in the Windows Operating System
https://www.microsoftpressstore.com/articles/article.aspx?p=2233328

# data[].attributes.attachment_caption
gerenciador de tarefas e plano de energia onde ocorre o gerenciamento do uso de clock da CPU

# data[].attributes.body
Windows usa principalmente o Gerenciador de tarefas onde o usuário pode gerencia todas tarefas realizadas naquele instante.
Pelo gerenciador de tarefas podemos  analisar processos, o desempenho, histórico de aplicativos, o que irá ser inicializado com o Windows, usuários, detalhes sobre processos, e serviços ativos e inativos.
Através do gerenciador de tarefas podemos analisar o uso de CPU, de memória, de disco e rede, além disso podemos alterar prioridades  de processos, finalizar processos entre outras funções.
Além disso Windows possui sistemas de  gerenciamento de energia,  que modificam o uso do CPU para economizar energia ou trazer maior desempenho, os modos vão desde o de Economia de energia  ao de Desempenho Máximo.
Ademais, o Windows dá liberdade ao usuário a instalar aplicativos para gerenciar o processador em questão de velocidade de clock e gasto energético, um exemplo é o ThrottleStop que é um aplicativo que permite você aumentar o clock de cada core do processador, além de poder fazer um undervolting no processador para diminuir o gasto energético e diminuir temperaturas.

Escalonamento no Windows
Windows utiliza um  escalonador do tipo Multilevel Feedback  Queue.
Nesse algoritmo, processos são colocados na fila de espera permanentemente e eles não podem alterar de filas.
Esse algoritmo tem um baixo custo de programação pois ele não precisa ficar trocando de filas, a desvantagem é a inflexibilidade dele.
O código do escalonador do Windows é implementado no kernel.
A thread com maior prioridade é sempre realizada na frente mesmo apesar de uma  já estiver em execução, ele  para ela e começa a thread que tem a prioridade maior.
Para cada  tarefa, o Windows determina qual thread deverá ser executada e ele determina elas por ordem de prioridade.

Fontes:

Multilevel Feedback Queue Scheduling (MLFQ) CPU
Scheduling
https://www.geeksforgeeks.org/multilevel-feedback-queue-scheduling-mlfq-cpu-scheduling/

Escalonamento no Windows
https://pt.slideshare.net/feekosta/seminario-so

# data[].attributes.body
No S.O Windows  ele aloca automaticamente memória virtual e memória física  realizando um controle de uso de memória.
O Windows tem seu próprio espaço de memória virtual no qual ele aloca para a realização de processos, ele aloca memória separadamente para processos e para uso do sistema, resumindo: O Windows gerencia a memória virtual e física e divide a memória em sistemas separados e espaços de endereço do usuário.
O gerenciador de memória do modo kernel do Windows gerencia a memória física do sistema operacional. Esta memória é principalmente na forma de memória RAM.
Para cada processo de 32 bits o Windows possui cerca de 4gb, 2gb para o kernel e 2gb para a memória do aplicativo, como já foi dito anteriormente o espaço de memória do modo kernel é compartilhado por todos processos, porém o espaço de acesso do aplicativo  é fornecido por cada processo de usuário.

Fontes:

Windows Memory Management
https://www.geeksforgeeks.org/windows-memory-managment/

Windows Kernel-Mode Memory Manager
https://learn.microsoft.com/es-es/windows-hardware/drivers/kernel/windows-kernel-mode-memory-manager

Asignación de memoria System-Space
https://learn.microsoft.com/es-es/windows-hardware/drivers/kernel/allocating-system-space-memory

# data[].attributes.body
Um Sistema de Arquivos  serve para definir o  como os dados são organizados e guardados em um sistema operacional.

Windows usa  principalmente o Sistema NTFS, FAT32 e o ExFAT.

Cada sistema desses sistemas de arquivos  possui suas próprias particularidades e cada um funciona de um jeito diferente.

NTFS

Foi criado pela Microsoft para ser um sucessor de sistemas mais antigos,ele permite a compressão de arquivos permitindo liberar mais espaço. Tem um sistema de segurança de acesso em que você pode colocar permissões nos arquivos.
Possui a possibilidade de restauração de arquivos que foram corrompidos.
Possui limite de tamanho dos arquivos praticamente ilimitado e seu foco é voltado em Sistema Windows e Unidades interna de armazenamento

FAT32

É um sistema mais antigo, porém ele possui uma ótima compatibilidade, que diferente do NTFS funciona praticamente em praticamente todo dispositivo com suporte a USB, é principalmente utilizado em PenDrives pois é de ótima compatibilidade, porém ele possui um limite de tamanho de arquivos de apenas 4gb, geralmente para contornar esse problema é dividido esse arquivo em partes utilizando algum programa para realizar essa divisão
Esse sistema é ótimo para computadores antigos, videogames etc.

ExFat

É uma evolução do FAT32, focado principalmente em pendrives e cartões microSD, ele não tem limitação de tamanho assim como o NTFS, porém ele não é tão compativel quanto o FAT32 e não tem acesso a recursos tão avançados como o NTFS, o foco dele é mais para ser um sucessor de FAT32 tirando o limite de 4gb, seu foco é mais voltado  em dispositivos  flash.

Fontes:

What Is NTFS and How Does It Work?
https://www.datto.com/blog/what-is-ntfs-and-how-does-it-work

exFAT, NTFS ou FAT32? Conheça formatos para formatar um pen drive
https://www.techtudo.com.br/noticias/2016/05/ntfs-fat32-ou-exfat-qual-sistema-escolher-ao-formatar-um-pendrive.ghtml

Diferença entre exFAT e NTFS
https://acervolima.com/diferenca-entre-exfat-e-ntfs/

# data[].attributes.body
↪ Histórico
↪ Características
↪Estrutura do Sistema Operacional
↪Processos e Threads
↪ Gerência do Processador
↪Gerência de Memória
↪Sistemas de Arquivos

# data[].attributes.body
O Linux começa com uma ideia de certa forma simples, nada totalmente grandioso, ou com um pensamento magnífico de um já conhecido gênio. Mas pelo contrário, nasceu da ideia de um estudante universitário finlandês, chamado Linus Torvalds, que queria desenvolver um novo sistema operacional, simples e de código-fonte aberto, com a finalidade de aprender, e facilitar o aprendizado de outros estudantes na faculdade dele, e no mundo . Porém vale mencionar que o Linux não surgiu do zero, mas sim foi usado uma base de um Sistema Operacional conhecido como Minix, criado por Andrew S. Tanenbaum.

Então em 1991 na antecessora da Internet, a Usenet, uma plataforma de troca de mensagens, Tovarlds divulgou seu projeto ao público perguntando para as pessoas o que elas queriam que o Minix pudesse proporcionar, e também possíveis problemáticas que o Linux poderia resolver. Surge então o Kernel Linux (é notório informar que o Linux não é um S.O em si, mas o núcleo de um) que a partir dele surgiu diversas derivações como: Ubuntu, Kali Linux e entre outros. Cabe ressaltar também, que a união de diversas pessoas na construção de um S.O foi fator fundamental para ramificações do Linux, que atendem as vontades e objetivos de seus criadores, devido a cada um fazer sua devida alteração no código, sendo uma característica importante que será comentada ainda nesse documento.

Fontes:
O que é Linux e qual a sua história? Disponível em: <https://www.infowester.com/historia_linux.php>.

# data[].attributes.body
O Linux é um Kernel de Sistema Operacional, notoriamente simples, com um sistema de caráter monolítico, o que é  definido pelo site Dicas de Informática Básica como:

"a codificação é realizada a partir de uma coleção de procedimentos, na qual é possível qualquer um deles em qualquer parte do sistema interagir com outro procedimento."

Tendo isso em vista, surge algumas características:

• Sistema multitarefas, ou seja o sistema operacional é capaz de executar mais de uma função ao mesmo tempo.

• Capacidade de processamento de 32/64 bits, ou seja esse é o tamanho da palavra que o processador nesse S.O lê de cada vez.

• Função Superusuário, o que seria meio que o administrador do Linux, responsável por permitir o usuário acessar/executar comandos restritos.

• Interface gráfica e prompt de comando, o que permite a interação com o Sistema Operacional pelas duas vias, ora por sequência de comandos, ora com o uso do mouse.

• Possibilidade de customização, em vista de possuir um código-fonte aberto.

• Funcionalidades diferentes, devido a várias vertentes do mesmo núcleo, por exemplo: Mint, focado para pessoas iniciantes no ramo da programação; Kali Linux, para questões de segurança; OpenSuse, para servidores e datacenters.

Fontes:

Disponível em: <https://www.cursosdeinformaticabasica.com.br/o-que-e-linux-quais-sao-as-suas-caracteristicas/>. Acesso em: 6 dez. 2022.

# data[].attributes.body
A estrutura de um sistema operacional, nada mais é que a maneira que o sistema executa/controla processos, e a forma que conecta todas suas aplicações com o hardware em si, no caso do Linux, sua estrutura é divida em Aplicações, Shell, Kernel, Hardware e Utilitários.

Antes de entrar das divisões em si, é importante comentar a existência dos modos de acesso, ao qual  um processo/programa possa possuir. Por exemplo, quando em execução em Modo Kernel eles tem acesso a uma gama maior de comandos/ações possíveis, porém quando estão em modo usuário, possuem um poder limitado.

Kernel: O Kernel é uma parte principal do Sistema Operacional Linux, visto que ele é quem faz a abstração do hardware, ou seja de toda parte mecânica que está em execução e que necessita ser controlada, e tira essa a necessida do usário se preocupar em como uma determindada peça mecânica precisa ou não ser executada. Além disso, vale ressaltar que existem diferentes varíaveis  de Kernel sendo elas:  O Kernel Monolítico, ao qual o sistema funciona todo sobre um único processo, e detém o privilégio de acessar todos os dispositivos do computador; Micro Kernel  é uma oposição ao Kernel Monolítico, pois ele trabalha com os processos interagindo com o núcleo na menor quantidade de vezes possível; Exo Kernels é uma arquitetura de Kernel que possui um foco na capacidade de costumização/personalização específica de aplicativos; Kernel Híbrido é uma arquitetura que junta os benéficios do Kernel Monolítico e do Micro Kernel. Além deles existe também um sistema de bibliotecas que o S.O pode utilizar  e implementar, é importante salientar que essas funções não necessitam direito de acesso  no Modo Kernel.

Utilitários: Aplicações secundárias que podem ou não ajudar na resolução/execução de um processo.

Hardware: Conjunto das peças mecânicas em si conectadas ao S.O, ao qual ele tem poder de alterar/utilizar, de exemplo: Memória Ram, Placa Mãe.

Aplicações: São todas as aplicações/processos que podem ser executados, ou seja programas entre outros.

Shell: Básicamente é o meio de interação com o usuário de um Sistema Operacional, podendo ele ser por meio de linhas de comando (command-line shells), e por interface gráfica (graphical shells).

Fontes:
https://www.interviewbit.com/blog/linux-architecture/#:~:text=The%20Linux%20architecture%20is%20largely,duties%20of%20the%20Linux%20OS.

# data[].attributes.body
Os processos no Linux nada mais são que os programas em execução e todas as suas aplicações/raízes derivadas, dito isso surge o gerenciamento de processo do Linux, que consiste na utilização de comandos pelo terminal para controlar/aumentar de processos únicos ,identificados como "pid", prioridade ou outras ações, como o uso do comando "top", que com isso faz uma demonstração de toda árvore de gerenciamento  de processos do  Linux. Ademais, existe outros comandos que podem dar informações interessantes, como o "renice" que altera a prioridade de um processo, e o "kill" que mata um processo. Além também de existirem um programa que pode ser baixado para uma melhor visualização do dos processos, como de exemplo o "htop".

Já os Threads são as instâncias criadas pelo sistema operacional para a execução de processos derivados de um processo pai, ou seja uma Thread são as divisões originadas de um processo maior, vale ressaltar também que no Linux existem processos que não possuem subprocessos e Threads, são uma espécie de processos únicos.

Fontes:
https://www.hostinger.com.br/tutoriais/como-gerenciar-processos-no-linux-usando-linha-de-comando

https://www.digitalocean.com/community/tutorials/process-management-in-linux

# data[].attributes.headline
Programa de visualização de processos: htop

# data[].attributes.subject
Programa de visualização de processos: htop

# data[].attributes.body
O processador do Sistema Operacional Linux trabalha em cima justamente dos Threads, e não dos processos em si, e devido a isso surge o algoritmo de escalonamento que será o escolhido para exercer as funções de execução de tarefas. Dito isso surge as três divisórias de Threads que o Linux irá tratar: Fifo em Tempo Real, Escalonamento Circular em Tempo Real, e Tempo Compartilhado.

Fifo em Tempo Real: São os Threads que possuem maior prioridade na hora de execução, ou seja, são subprocessos ao qual o processador prioriza sua execução em virtude de alguma determinação.

Escalonamento Circular em Tempo Real: Possui o mesmo valor de prioridade na hora de sua execução, do que o Fifo, porém a principal diferença, é na existência de um tempo pré-determinado que acompanha esse Thread, ao qual o processador necessita obedecer, seja para execução limite, ou para execução correta.

Tempo Compartilhado: São Threads taxados como não prioritários em relação aos outros dois tipos, dito isso, não possuem uma relação de execução rápida.

Ainda possuem os Threads simples, ao qual o Sistema Operacional trata de uma maneira diferenciada, com uma taxa de prioridade padrão, e segue o padrão por clocks de execução.

Fontes:
Tanenbaum S, Bos H - Sistemas operacionais modernos,
6 edição , cap 10,  editora Paerson.

# data[].attributes.body
A memória é uma parte principal do Sistema Operacional, funcionando como o local ao qual os programas/processos são armazenados e futuramente executados, e onde também eles se encontraram quando estão em fase de execução. Dito isso, o Linux atua com uma gerência de memória simples, de maneira que quando um processo está em execução ele possui mais prioridade para seu uso e permanência da memória, porém quando é finalizado sua execução ele precisa ser apagado da memória, contudo pode ainda deixar alguns vestígios do programa, os famosos "caches" que servem para facilitar a execução de um processo uma segunda vez.

Ademais, existe a utilização de dois tipos de memória, a memória virtual e memória física, a primeira nada mais é que uma forma de criar mais espaço do que o realmente existente, onde o S.O guarda dados e gera respostas de forma rápida, ao qual um programa fica por um tempo notoriamente curto.  Já a segunda é onde ocorre os processos verdadeiros, onde um programa recebe ou não espaço na memória, onde ocorre a alocação dinâmica ou estática, e todos as interações com a memória ram, e com o disco rígido.

Fontes:
Gerenciamento de memória do linux (linuxosoftawarelivre.blogspot.com)

# data[].attributes.body
O sistema de arquivo, nada mais é que a forma lógica ao qual o sistema operacional encontra de organizar seus diretórios e todos os espaços ao qual se encontraram os arquivos e programas. Como consequência surgem sistemas mais eficientes, mais simples, ou mais complexos sempre que são atualizados, contudo os sistemas mais famosos do Linux são:

Ext4: Foi criado por Remy Card em 1992, para o sistema Minix, é um sistema que sofreu muitas atualizações, e que possui uma grande aceitação do público, visto a sua integridade dos arquivos mesmo em caso de interrupções não programadas no sistema.

JFS: Originado pela IMB em 1990, com o objetivo de ser utilizado em sistemas baseados no Unix, sendo ele o principal rival do Ext4, visto de possuir também integridade contra interrupções, como também fornecer instabilidade em sistemas de desempenho baixo.

ReiserFS: Elaborado por Hans Reiser em 2001, é um sistema que não possui novas atualizações, contudo na época de lançamento foi um sistema muito eficiente na sua proposta de uso de espaço em disco, superando até mesmo o ext4.

Btrfs: Foi desenvolvido pela cooperação de diversas empresas do ramo tecnológico, ao qual possui um poder de processamento de arquivos inigualável, sendo seu principal trunfo a possibilidade de manipulação de arquivos com até 16 exbibytes, além de uma grande tolerância a falhas no sistema.

Fontes:

Sistema De Arquivos: Aprenda Tudo Sobre Os Mais Utilizados No Linux (e-tinet.com)

# data[].attributes.attachment_link.readable_text
O que vem em sua mente quando falamos em armazenamento de dados em disco rígido / partição, gravação de CD / DVD ou mesmo a transferência de arquivos para o pendrive? Independentemente de qual seja a sua resposta, a partir de agora você pensará num elemento muito importante: o sistema de arquivos.

Um sistema de arquivos ( file system, do inglês) é um processo lógico, responsável por gerenciar o meio e o local do disco em que os dados são guardados. Todas as operações internas do hardware que ficam "escondidas" dos usuários são manejadas por esse sistema.

Se você já formatou um pendrive, por exemplo, acredito que tenha percebido que não existe apenas um sistema de arquivos. Nesse caso, provavelmente se deparou com algumas nomenclaturas bastante conhecidas, como FAT32 e NTFS, formatos utilizados em sistemas da Microsoft.

Da mesma maneira, há diferentes sistemas de arquivos presentes no Linux. Cada formato tem seus pontos fortes e fracos - o que muito tem a ver com o avanço da tecnologia -, e esse é o assunto que abordarei no conteúdo.

Os cinco principais sistemas de arquivos para Linux

Vamos começar o artigo apresentando os sistemas de arquivos mais utilizados do Linux, incluindo alguns que já se encontram defasados. Encabeçando a lista, temos o popular formato Ext (extended file system), o primeiro sistema de arquivos desenvolvido especificamente para Linux.

Veja também o artigo: Arquivos no Linux.

1. Ext4: O sistema de arquivo mais utilizado no Linux

O Ext foi criado por Remy Card em 1992 para o sistema Minix (inicialmente), mas acabou voltando-se ao kernel Linux. Atualmente, o formato se encontra na quarta versão, lançada em 2008, sendo uma das opções preferidas dos usuários.

Em relação às versões anteriores (ext3 e ext2), o ext4 representa um salto importante, o qual resultou até o momento os sistemas Linux de alto desempenho disponíveis hoje em dia. Legal, mas quais são as características desse formato?

Um ótimo destaque é a escalabilidade que o ext4 oferece. Com ele, podemos trabalhar com arquivos de imenso volume - bem distante da casa dos terabytes. Além disso, ele conta com a função journaling, garantindo a integridade dos dados após interrupções ou "crash" no sistema.

2. JFS

Desenvolvido pela IBM para ser usado em sistemas baseados em UNIX, o Journaled File System (JFS) é considerado uma alternativa ao ext4. Se pesquisarmos a história do JFS, veremos que o sistema foi lançado antes mesmo do ext, em 1990/91, então o que explica ele ser adotado na atualidade?

No universo dos sistemas de arquivos a idade nem sempre é sinônimo de obsolescência. O JFS é um formato poderoso, dispõe da função journaling e tem uma função importantíssima aos profissionais Linux: fornecer estabilidade em sistemas de baixo desempenho.

3. ReiserFS

Desenvolvido por Hans Reiser, o ReiserFS surgiu em 2001 para fazer frente ao ext3 e, logo de início, mostrou grande potencial. Não por acaso, o ReiserFS chegou a ser o sistema de arquivos padrão do SuSe Linux e, também, ter apoio financeiro da DARPA no crescimento do projeto.

Poucos anos depois, em 2004, o sucessor é lançado: Reiser4. A equipe por trás do desenvolvimento do projeto, a Namesys, deu continuidade até o ano de 2007, depois de todo o escândalo envolvendo Hans.

Embora descontinuado, o Reiser4 ainda se destaca em relação a outros sistemas de arquivos na eficiência do uso de espaço em disco, a qual supera o ext4, por exemplo.

4. XFS: O sistema de arquivos padrão da Distribuição Linux Red Hat

O XFS foi desenvolvido pela Silicon Graphics na primeira metade dos anos 90 e, atualmente, tem a contribuição da equipe Red Hat. Até pelo envolvimento da Red Hat, o XFS é o sistema de arquivos padrão na distro RHEL e suas derivações.

O XFS foi desenvolvido pela Silicon Graphics em parceria com a Red Hat na primeira metade dos anos 90. Até pelo envolvimento da Red Hat, o XFS é o sistema de arquivos padrão na distro RHEL e suas derivações.

Um dos recursos que mais chamam atenção no XFS é a sua capacidade de reconhecer arquivos de até 8 exbibytes (equivalente a mais de 8 milhões de terabytes).

5. Btrfs

Fechando a lista, o B-Tree File System (Btrfs), desenvolvido de maneira independente por diversas instituições e gigantes do mercado, como:

O formato se caracteriza pela tolerância a falhas, manutenção, gerenciamento e sua capacidade de trabalhar com arquivos de até 16 exbibytes. É, sem dúvida alguma, um dos mais poderosos sistemas de arquivos - e ainda se encontra em franco desenvolvimento.

Criando um sistema de arquivos

Com os sistemas de arquivos devidamente apresentados, eis que surge a dúvida: como utilizar algum deles no sistema operacional? Inicialmente, é importante saber que o procedimento não requer formatação e pode ser feito rapidamente.

Para elucidar melhor a questão, vejamos como criar e instalar sistemas de arquivos ext4 e XFS.

Ext4

Criar um sistema de arquivos ext4 é mais simples do que você imagina. Utilize o comando mkfs da seguinte maneira ( em uma partição /dev/sdb1)

mkfs.ext4 /dev/sdb1

Obs.: Criar um sistema de arquivos é o mesmo que "formatar" uma partição.

XFS

Criar um sistema de arquivos XFS é um procedimento mais longo, porém fácil Primeiramente, instale os pacotes necessários para o XFS funcionar (no exemplo, estou usando o Ubuntu).

sudo apt-get install xfsprogs

Em seguida, prepare a partição que receberá o XFS usando o comando fdisk. Exemplo:

sudo fdisk /dev/sdb1

Use o comando mkfs.xfs para formatar a partição. Lembre-se de inserir a opção -f junto do comando, garantindo que o XFS seja instalado em cima do formato corrente.

sudo mkfs.xfs -f /dev/sdb1

Finalizando a criação do sistema de arquivos, você poderá montar o seu novo sistema de arquivos.

sudo mount -t xfs /dev/sdb1 /mnt/sdb1

Descobrindo o sistema de arquivos implantado no Linux

Há várias maneiras de identificar o sistema de arquivos utilizado em seu Linux. Neste tópico, apresento três métodos básicos usando o terminal. Vamos aos comandos?

Blkid

Usado para encontrar dispositivos ou exibir suas propriedades, o blkid fornece detalhes da partição quando o diretório é declarado. Exemplo:

blkid /dev/sdb1

File

Por sua vez, o comando file, usado para identificar o tipo de um arquivo, quando acompanhado da opção -sL, também fornece as informações sobre o sistema de arquivos. Exemplo:

sudo file -SL /dev/sdb1

Lsblk

O comando lsblk com a opção -f ($ lsblk -f), o terminal exibe todas as partições existentes no sistema.

A partir das explicações e procedimentos abordados neste artigo, você pode fazer escolhas mais inteligentes na hora de formatar um disco ou partição, recorrendo ao sistema de arquivos mais adequado às necessidades. Aproveitando o gancho, que tal criar uma partição SWAP em seu Linux?

No mais, se você é um estudante de TI com ambições de construir uma carreira de sucesso e sabe a importância do Linux para isso, faça uma visita a nossa página Profissionais Linux!

# data[].attributes.attachment_link.title
Sistema De Arquivos: Aprenda Tudo Sobre Os Mais Utilizados No Linux

# data[].attributes.attachment_link.description
O que vem em sua mente quando falamos em armazenamento de dados em disco rígido / partição, gravação de CD / DVD ou mesmo a transferência de arquivos para o pendrive? Independentemente de qual seja a sua resposta, a partir de agora você pensará num elemento muito importante: o sistema de arquivos.