fala pessoal tudo bem então voltamos aqui para mais uma aula a gente vai falar hoje sobre sistema de arquivos na aula passada nós falamos sobre gerenciamento de memória agora a gente vai falar um pouco sobre o sistema de arquivos e a sua gestão tá bom inicialmente né pegando até um gancho da aula passada pensa no seguinte né Pensa num disco bar pendrive bar SSD né a gente já falou que a gente vai agrupar tudo isso num único termo que é termo disco porque é o termo que nem cotonet né Você sabe cotonet não é exatamente
aquele produto é a marca mas a gente agrupa tudo Ness nesse mesmo nome então aqui disco não necessariamente um disco magnético Mas falando de disco Pensa aí num HD num SSD no pendrive tá a gestão deles vai ser a mesma tá então pensa neles E aí imagina eles com uma sequência linear de blocos tá aonde você consegue armazenar informação nesses blocos Beleza se a gente pensar nisso isso né Logo algumas questões vão surgir por exemplo como é que o se encontro as informações dentro desse espaço de armazenamento como é que ele grava como é que
ele sabe quais são os blocos Livres como é que ele lê né Então essas são algumas questões que surgem quando a gente pensa ah em sistemas operacionais tá e a gente vai responder essas questões daqui pra frente eh falando aqui breve né uma introdução breve sobre o assunto os arquivos eles são gerenciados pelo sistema operacional tá E é mediante essa implantação né de arquivos que o sistema operacional estrutura e organiza as informações Então se a gente falar assim ah ah quando eu fecho a tampa do meu notebook o meu Windows hiberna ou o meu Linux
hiberna ou meu Mac hiberna né O que que é essa hibernação o que que é esse slip que ele faz é pegar tudo que tá na memória despejar fazer um Swap né Muito mais hardc cor despeja tudo num arquivo do mesmo jeito que tá lá na memória guarda isso no arquivo na hora que você que o hardware é ativado novamente né você abriu a tampa do Notebook apertou um botão enfim né ele recebeu um sinal de que Opa tô ligando ele pega isso devolve lá pra memória e você volta da onde você parou então se
você fechou lá você tava editando um arquivo no Word tava assistindo uma série Netflix etc quando você abrir você dá play você vai né seguida onde você parou tá então isso acontece né Por conta desse dessa possibilidade de fazer este Swap Tá mas não só de Swap né mas também ocorre por conta da do gerenciamento de arquivos feito pelo sistema operacional tá isso é muito importante o sistema de arquivo é quem faz a gestão desse assunto tá de de arquivos então Ah quem Ger quem faz a gestão de arquivos no sist operacional é um componente
entre aspas tá vamos chamar isso de um componente por enquanto que se chama sistema de arquivo ou sistema de arquivos tá que eu deixei até em então sistema de arquivo ou sistema de arquivos é quem faz a gestão de arquivos Como assim bom é quem vai falar ó como é que você grava como é que você lê como é que você acessa como é que você deleta tá quem faz isso é né quem ajuda o so a fazer isso é o sistema de arquivo beleza Tá então Olha é o responsável e é uma parte extremamente
visível do sistema operacional porque é uma atividade muito frequente de usuário né então você vai normalmente abrir um arquivo vou ler um um PDF vou editar um Word vou editar um Excel vou jogar um jogo né tô jogando alguma coisa lá e tipo ganhei um item ganhei vida perdi alguma coisa isso tudo tá sendo anotado em algum lugar né quando você salva quando você dá o o quando você recarrega né um estado salvo etc tá então isso tudo tá em arquivos e ele ocorre de maneira uniforme independente do dispositivo que você tiver utilizando então se
eu plugar um pendrive se eu plugar um HD se eu plugar um SSD se eu plugar ah Seja lá o que for ele vai gravar vai ler vai gravar vai acessar né da mesma forma tá é indiferente Beleza então por que que você não precisa instalar o driver de um SSD né Por que você não precisa instalar o driver de um HD e por aí vai porque o sistema operacional né vai utilizar o Kel para escrever nesses dispositivos e de forma lógica quem vai fazer esse meio de campo é o sistema de arquivo no Windows
isso é muito transparente e inflexível porque a gente só tem né um tipo de Sista de arquivos possível tá que é o ntfs nos Windows mais antigo a gente tinha o fat né o fat ah não lembro se se é possível o fat 8 mas tinha lá o fat 16 bits o fat 32 bits né depois veio o ntfs tá então se você pegar um pendrive que você formatou no Windows e levar para um Mac levar para um Linux né né você vai ver que se pendrive é do tipo sei lá ntfs ou é um
pendrive do tipo fat 32 são os tipos de ah sistemas de arquivos suportados pelo Windows e atualmente né o sistema de arquivos do windows ã é o ntfs né então automaticamente é esse sistema de arquivos e se você quiser trocar você não consegue trocar é esse sistema de arquivos que o Windows vai utilizar por padrão quando a gente fala de Linux principalmente né ou da família Unix exceto o o Mac por enquanto porque ah os iOS macos etc né eles são proprietários tá são baseados no Unix lá no no Darwin por exemplo mas é propriedade
da Apple e ele é fechado se a gente falar de distribuições Linux né que são de código fonte aberto open source eh a gente consegue mexer ali dentro né e não necessariamente em código Mas se a gente pegar um um Linux por exemplo a gente consegue ah utilizar um sistema de arquivos que eu quiser então atualmente a gente tá no comum né o mais comum é o ext4 mas existem existe diversos outros tá o brfs ã ext3 né existem vários tipos de sistema de arquivos possíveis tá cada um com a sua vantagem de desvantagem dentro
da família do ext o ext4 Salvo engano é o mais atual né que eu me recordo aqui eh mas né Pode ser que exista uma versão dele um 4. né Pode ser que exista alguma coisa um pouco mais atualizado da família do xt4 mas em suma é o xt4 tá que é o Ahã o estvel vamos dizer assim então é possível utilizar no Windows não no Mac não né Eh no Mac Não porque ele é proprietário e no Windows não também porque ele é proprietário então daria para trocar o sistema de arquivos o em que
isso impacta impacta na forma como os arquivos são manipulados só que pro sistema operacional isso é transparente pro dispositivo que eu plugo né posso ter um pendrive ntfs levar pro Linux posso ter um pendrive ext qualquer coisa levar pro Linux posso ter um um pendrive formatado no macos ã posso tem uma posso pegar o HD do Mac OS e inspecionar ele num Linux por exemplo ou no Windows no Windows eu não sei se vai dar algum problema mas no Linux tranquilamente Qual que é a grande vantagem né fazendo essa abstração tudo né os meus dispositivos
são acessados são manipulados de forma ah uniforme porque o sistema de arquivos que eu vou levar né que eu vou instalar nesse dispositivo vai prover pro sistema operacional as formas né como ele vai lidar com aquilo lá então pro sistema operacional eu vou ter uma chamada siscol que aqui pra frente eu vou mostrar para vocês o que que é uma siscol lá no começo a gente já até falou alguma coisa sobre siscol mas é basicamente uma traduzindo ao pé da letra uma chamada do sistema Então como é que eu gravo é um Create como é
que eu leio é um read né então são chamadas de forma abstraída e que quando eu fizer uma chamada de read write delete né no sistema de arquivo o sistema de arquivo em si vai tratar isso do jeito que ele precisa tratar então não importa se o é um sistema arquivos que eu criei que é o Né que é o do Windows que é do Mac que é do Linux qualquer um outro não importa o s operacional vai fazer um read um write um delete tá de forma padrão e uniforme e quem vai pegar esse
quem vai receber Esse comando é o sistema de arquivo vai utizar o algoritmo dele para tratar isso daí então a função se chama read write tá tá tá né Mas o conteúdo dessa função vai variar de acordo com o sistema de arquivos entenderam Então essa é a grande vantagem de segmentar e abstrair dessa forma não importa se eu tô plugando pendrive ou um HD um SSD se é o CD se é o DVD se é Seja lá quem for não importa se eu tô no Windows no Linux não importa no IOS no Android não importa
o seão operacional vai ter isso abstraído porque quem vai vai lidar com o arquivo quem vai fazer as operações né quem vai falar vai prover Essas funções é o Samo de arquivos e o sistema né sabe fazer o read write o delete tá sabe fazer Essas funções e quem prov esses algoritmos específicos para Essas funções são sistemas de arquivos Ok por sua vez né quando o sistema operacional precisa gravar alguma coisa ele vai fazer isso ã na na parte lógica né então ele vai fazer um um um write para escrever para gravar um arquivo no
disco então ele conhece a referência desse dispositivo do pend drive do HD do SSD ele vai fazer um write no sistema de arquivos né então o sistema de arquivos vai tratar esse Wi da forma como ele sabe tratar da forma como ele precisa tratar e ele vai falar com o Kel tá e o Kernel por sua vez vai falar com o hardware que grava no no HD no pendrive L lá lá Fechou então é esse o conceito tá pessoal dando continuidade aqui a gente já falou até bastante coisa que tá aqui pra frente e mas
o que são arquivos né Pode parecer algo simples mas a gente precisa e ter essa ideia formada tá então um arquivo é um conjunto de registros definidos pelo sistema de arquivos tá E eles podem ser armazenados em diferentes tipos de de de dispositivos físicos como a gente já discutiu o arquivo é constituído de informações ah logicamente relacionadas ou seja fisicamente ela não tem estrutura nenhuma não precisa ter estrutura mas na camada lógica ele precisa Como assim bom um arquivo do Word é diferente de um arquivo de Excel que é diferente de um PDF que é
diferente de um arquivo texto e que é diferente se a gente pegar lá em C Você já viu C Nessa altura né do campeonato e e gravar um arquivo lógica gente pode gravar o que a gente quiser e você vai tentar abrir no Excel ele não vai abrir porque a parte lógica a organização lógica é diferente da organização lógica que o Excel tá esperando é diferente da organização lógica que sei lá um PDF espera tá então na organização lógica eu preciso organizar as informações de acordo com a de acordo com o que eu preciso fisicamente
não existe essa não há necessidade de ter uma estrutura definida Tá o que que isso significa significa que existe uma flexibilidade quando se trata de arquivos porque o o so não Exige uma estrutura não exige tá quem toma conta dessa estrutura é a aplicação que vai gravar e vai ler o teu arquivo então pro so se você grava um arquivo de Word corrompido não é problema dele ele não lida com isso ele não te dá uma mensagem de erro o Word vai te dar uma mensagem de erro quando quando ele tentar abrir um arquivo corrompido
tá então pro seão operacional como você vai organizar não importa ah a o importante é como essa informação está organizada logicamente porque aí o leitor tá o teu manipulador de arquivos é que vai tratar isso né então no caso Word seria o manipulador do arquivo do Word o Excel do Excel tá se a gente criar o nosso arquivo se a gente criar um editor de arquivo em C por exemplo e tem e criar uma organização né Muito específica Pode ser que nem o editor de texto abra vai aparecer lá um monte de caracter esquisito tá
então é esse tipo de coisa que a gente tá falando e baseado nisso Existe uma forma do sistema operacional identificar um arquivo tá então esse conjunto de registros com informações logicamente definidas que é arquivo né que remete alguma coisa lá de escritório né dos anos né daí para trás Como que o ID fica né como é que ele sabe que ah é o arquivo tal é o arquivo tal bom na camada mais Ahã mais perto do usuário ele pode o arquivo tem um nome tá então vai ser por exemplo eu coloquei aqui ó meu doc
meu Ah aqui não dá para ver o underline porque eu soublin ai tudo né mas tá lá meu underline documento pon DOC o ponto doc é extremamente necessário Não não é para nenhum sistema para nenhum sistema de arquivos e para nenhum sistema operacional tá Ah mas no Windows se eu tirar o ponto DOC se eu colocar um ponto XLS Ele vai tentar abrir no Excel é em qualquer ação operacional também tá ah o a extensão ela serve pra interface gráfica né pra interface mais user friendly né vamos dizer assim né mais amigável pro usuário fala
assim Opa isso aqui é um documento do Word vou abrir com o Word Opa isso aqui é um Excel vou abrir com Excel Opa isso aqui é um sei lá o quê Tá para facilitar para dar uma experiência melhor pro usuário mas em tese né se a gente pegar o sistema operacional mesmo para ele é indiferente o ponto doc pon xe tá esse meu documento se eu trocar o DOC por xe dá na mesma acontece que o word não vai conseguir Ah acho que o Word vai abrir de boa não sei se ele vai dar
algum problema aqui né Ah se ele for um DOC eu colocar um ponto xz acho que não vai ter nenhum problema porque ele vai ele não depende da extensão mas sim do conteúdo do documento a extensão é só para orientar Qual é o software que vai ler este documento Ok ah no Linux por exemplo a extensão é totalmente desnecessária ela serve para interface gráfica colocar tzin ali do ícone né Ah isso aqui é um documento do Word do Word ou sei lá do libre office sei lá de qual Office né Eh Ah isso aqui é
um executável tal isso aqui é uma imagem né então coloca lá uma uma tzin de imagem mas ah pro sistema operacional é indiferente tá tanto que você vai vai ver em outras disciplinas uma prática que a gente faz que é transformar um PDF em um PHP ou vice-versa tá então o sistema operacional identifica basicamente né com um nome e uma extensão esse nome ele tá gravado lá no sistema de arquivos ele serve para o usuário final né e serve para essa interface entre o usuário e o assim ó mas lá nas tabelas do sistema de
arquivos esse nome Ah não existe tá esse documento ele vai ter um código ele vai ter um um ponto de entrada o nome tá gravado na tabela do sistema de arquivos que serve como um agrupamento Então as diversas partezinha desse arquivo né espalhadas Ali pela pela pelo dispositivo que foi gravado chama meu documento.doc beleza bom a gente falou da organização do arquivo tá então a organização do arquivo ela varia o so não precisa de nenhum tipo de organização específica porque Quem trata o teu arquivo é o Né o aplicação lá de usuário tá é aplicação
específica né então Word Excel etc Tá então não não existe mas existem algumas organizações padrões Beleza eu vou mostrar agora aqui ah a mais comum é essa a que é uma organização de bytes tá é uma sequência não estruturada de bytes pro So isso aqui é perfeito tá tranquilo então eu pego o meu dado traduzo aquilo para byte né Você sabe né que byte é um conjunto de bits então quando eu traduzir isso show né A minha aplicação que organizou Isso aqui vai saber ah converter de Volta Para né o Ah o tf8 né vai
saber traduzir isso de volta para ah sei lá imagem dados né enfim tá é uma forma e a mais comum tem a outra forma aqui a b que é Registro que é um conjunto de registros aonde esses blocos de Registro tem uma identificação única e um tamanho fixo tá isso aqui é o menos comum de todos existia lá nas antigamente quando a gente tinha cartão perfurado né Na época que os computadores surgiram que os blocos eram pedaços definidos né de tamanhos definidos de armazenamento isso aqui não é utilizado hoje mas existe né existe o conceito
mas não é utilizado a a é extremamente utilizada e a c que é um formato de árvore não é muito comum isso aqui é mais para banco de dados num formato de grafo por exemplo tá ou dados realmente num formato comercial que se beneficia desse formato de árvore tá então aqui tem né A gente já falou da sequência de bytes falamos aqui da sequência de registro e para fechar aqui né A árvore os registros Eles não têm necessariamente o mesmo tamanho tá cada um contém né Cada registro dessa cada folha né então eu tenho a
as raízes e tenho as folhas aqui da árvore né então se assemelha uma árvore cada registro dessa árvore contém um campo chave de identificação né então uma posição fixa né ã com essa chave então tem lá um sumário né com uma posição fixa aonde eu vou lá consulto esse sumário eu sei o que encontrar onde encontrar tá então é mais usado comercialmente tá Então dependendo da aplicação comercial Ou um banco de dados estruturado em em grafo por exemplo ou quando você vê lá estrutura de dados utilizando árvore né Mas normalmente o que a gente vai
encontrar né 99.9 das vezes por das vezes é a sequência de bytes tá se a gente olhar para um banco de dados no SQL por exemplo um mongo DB o que ele grava é uma sequência de bytes Ok então é muito comum esse tipo de coisa modos de acesso tá a gente tem basicamente três modos de acesso o modo sequencial o modo direto e o modo indexado o modo sequencial acontecia quando a gente tinha lá as fitas magnéticas né então você gravava numa posição da fita tinha que percorrer a fita inteira até chegar naquela informação
específica beleza Ah temos o acesso direto o acesso direto ele permite que você acesse diretamente um registro no dispositivo desde que ah essas posições né os registros né a definição de registro ah seja feita com tamanho fixo então você mais ou menos vai saber onde tá um registro e você consegue fazer o acesso direto isso acontecia também com as fitas né quando a gente definia tamanhos para as fitas era possível fazer acesso né percorrer né esticar a fita lá e falar olha tá aqui nesse lugar a informação e acessa só ali né então dava para
fazer isso mas né Ah isso é passado e a gente tem aqui o acesso indexado ou por palavra chave tá esse acesso indexado ou por palavra-chave pensa lá no banco de dados onde você tem lá as chaves primárias né Eu tenho um índice aonde eu tenho a esse índice né que contém as chaves pros registros E aí eu olho o índice falo Opa preciso do registro que tá nessa chave né vou lá e consigo acessar tá então São esses os três formatos de acesso do sistema de arquivos e a gente tem aqui as operações de
entrada e saída tá então isso aqui é o que eu falei lá da Sis calls então operações de entrada e saída né então ler gravar deletar fechar Abrir né e tal Ah o resumo disso são esses comandos que o sistema operacional faz então então Create Open read write por isso que quando você tá lá em C você faz arquivo ah ponto read write né ou Open no formato w no open no formato a que é o a trib né que é para adicionar na linha de baixo Então se já tem uma linha você não sobrescreve
você insere embaixo WR você pode sobrescrever um arquivo se ele já existir aí se abriu você tem que dar um close para fechar por isso que você faz isso em C porque a gente tá fazendo em programação de um nível pouco mais baixo ou seja mais próximo da máquina Então você lida com uma abstração da abstração dessas sscs tá que por sua vez o código delas tá o que elas acessam são interfaces de programação lá do sistema de arquivos então se você já viu ah programação orientada a objeto você vai lembrar que interface é uma
classe então o Create chama alguma coisa lá do sistema de arquivos específico então por isso que não importa qual é o dispositivo físico que eu tô utilizando nem o sistema de arquivos o meu so vai saber falar com ele a não ser que o meu sistema de arquivos não respeite uma rfc né um manual de boas práticas vamos dizer assim de como fazer um sistema de arquivos tá se eu não respeitar o meu so não vai saber lidar com isso E aí eu não vou conseguir abstrair essas operações e não vai funcionar beleza e aí
a gente chega aqui em atributos tá arquivos possuem atributos como por exemplo ó tamanho Ah quem criou permissão do arquivo data de alteração criação eh acesso tá e etc alguns desses atributos eles são cri eles são imutáveis tá eu não consigo mudar eh em né não eh não consigo mudar normalmente tá um usuário normal não consegue mudar e alguns são criados são inseridos no arquivo quando o arquivo é criado pelo sistema operacional como por exemplo exemplo as Mac times tá que é o acesso modificação criação do arquivo isso daí você não cria quem cria o
sistema operacional quando ele cria lá o arquivo Beleza então isso são atributos do arquivo pensa lá eh como Ah você já deve ter tido orientação objeto pensa lá numa classe tá quando a gente cria atributos da classe né Você tem um objeto esse objeto né vai ter lá os teus métodos os métodos T os seus né então a gente cria lá né quais são ah os métodos de pessoa Quais são os atributos né então você pega a pessoa e fala pessoa tem um nome pessoa tem um endereço pessoa tem um RG tem um CPF tá
aqui a mesma ideia um arquivo vai ter o quê bom tamanho criador permissão né ah horário de criação de acesso e etc tá tudo para controle do sistema operacional e do usuário beleza e alguns desses atributos ó eu mostro aqui num exemplo tá eu tenho um arquivo que tem aqui essas letrinhas então o você já sabe né a gente já viu isso Ah um pouquinho mas a gente vai fazer depois uma aula mais prática né Então a primeira letrinha lá que é d indica que esse blog é um diretório né E aí tem lá um
RW um rwx R tro X R tro x né Esses são atributos de permissão né então leitura escrita e execução leitura escrita execução leitura escrita e execução só que são dividido em três grupos do dono do arquivo grupo aonde o dono cria e pode inserir pessoas para que essas pessoas tenham permissões do grupo no arquivo e o último conjunto de três bits são outros tá qualquer pessoa que não seja o dono nem do grupo né pode ter uma permissão específica a gente vai tratar isso aqui melhor tá mas saiba que são esses atributos do arquivo
beleza Ah no Windows não dá para ver o rwx é não mas você vai ter lá permissão de de leitura permissão de acesso né você vai ter lá uma outra forma de permissão aqui no Linux eu consigo ver desse desse jeito tá no Windows você vai lá clica com o botão direito permissões né etc você vai ver lá uma listinha de checkbox que você consegue marcar e desmarcar tá A ideia é a mesma só muda o visual ah pessoal a gente vai entrar agora em diretórios mas eu vou encerrar por aqui essa aula porque ela
já tá ficando um pouco longa e a gente volta na próxima para tratar diretórios Ok então Vejo você na próxima aula