> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/ud5-entrada-e-saida-da-informacion/ficheiros/sistema-de-arquivos.md).

# Sistema de arquivos

<figure><img src="/files/OGWcXywVBmnIBtLPg5QA" alt=""><figcaption></figcaption></figure>

Nun sistema informático, é o SO o encargado de implementar os métodos de acceso e as operacións básicas sobre os ficheiros. Isto o realiza mediante mediante o sistema de arquivos, que é unha interface entre o SO e o sistema físico de almacenamento. O sistema de arquivos define unha serie de normas e procedementos para a xestión de operacións entre as que destacan:

* Control do espazo libre e asignado
* Xestión de directorios e nomes de ficheiros
* Control da situación física de almacenamento do ficheiro

O sistema de arquivos organízase mediante directorios organizados xerarquicamente que conteñen outros directorios e ficheiros. Un arquivo identifícase por un nome e unha extensión, e non poden existir dous arquivos con mesmo nome e extensión na mesma carpeta. Cada sistema de arquivos ten a súa propia forma de utilización e identificación de arquivos e directorios.

{% @mermaid/diagram content="graph TD
A\[App Java] --> B\[FileOutputStream/Writer]
A --> C\[FileInputStream/Reader]
A --> D\[Escritura de ficheiros]
A --> E\[Lectura de ficheiros]

B --> F\[java.io.\* API]
C --> F
D --> G\[java.nio.file.\* API]
E --> G

```
F --> H[JVM System Calls]
G --> H

H --> I[Sistema Operativo SO]
I --> J[Sistema de Arquivos]

subgraph J[Sistema de Arquivos ]
    direction TB
    K[Control espazo libre/asignado]
    L[Xestión directorios/árbores]
    M[Xestión nomes ficheiros]
    N[Localización física almacenamento]
    O[Control permisos e acceso]
end

J --> P[(Disco físico)]

style A fill:#e1f5fe
style F fill:#f3e5f5
style G fill:#f3e5f5
style H fill:#fff3e0
style I fill:#e8f5e8
style J fill:#ffebee
style P fill:#f5f5f5



```

" %}

### Sistema de arquivos de disco <a href="#sistema-de-arquivos-de-disco" id="sistema-de-arquivos-de-disco"></a>

Utilízanse para a xestión de almacenamento dos ficheiros en memoria secundaria, como discos duros (HDD), discos de estado solido (SSD), memorias USB ou tarxetas SD. Destacamos:

* **FAT (File Allocation Table):** Utilizado orixinalmente por sistemas Windows, baséase en:

  * División del disco en clusters
  * Creación dunha Táboa de asignación de arquivos nunha zona reservada do disco na que se especifica para cada ficheiro en que cluster se almacena.

  É un método sinxelo e robusto que recoñecen practicamente todos os sistemas operativos, pero que ten problemas de desperdicio de espazo debido á fragmentación. Existen varias versións (FAT12, FAT16, FAT32, ...) que melloran versións anteriores ou as adaptan a un dispositivo concreto.
* **NTFS:** Sistema de ficheiros utilizado por Windows desde a versión NT.

  * Utilizan unha base de datos que se denomina Master File Table (MFT), na que almacenan para cada ficheiro ou directorio (nome, data de creación, permisos, ...)
  * A estrutura de directorios e arquivos almacénase como unha árbore B+

  Ademais incorpora varias melloras sobre sobre FAT como: Uso de metadatos, rexistro de transaccións, lista de control de acceso, compresión, estruturas de datos para mellorar rendemento, ... É pouco adecuado para sistemas de ficheiros pequenos polo tamaño da MFT.
* **EXT:** Sistema de ficheiros utilizado en sistemas linux. Utilizan INODOS (rexistros con información de ficheiros e directorios), e é compatible coas funcións avanzadas do sistema UNIX como atributos estendidos ou enlaces simbólicos. EXT4 é a versión das distribucións modernas.

### Sistema de arquivos de rede <a href="#sistema-de-arquivos-de-rede" id="sistema-de-arquivos-de-rede"></a>

Sistemas deseñados para acceder a arquivos a través dunha rede de ordenadores. O seu obxectivo principal é o facer transparente o feito de que o acceso sexa a través de rede e non en local. Atopamos dos tipos de sistemas de arquivos:

* **NFS (Network File Sistem):** Se utiliza para a xestión de ficheiros distribuídos en redes de área local. Permite que distintos sistemas conectados á mesma rede accedan a eles como se fosen locais
* **HDFS (Haddop distributed files system):** Sistema de ficheiros utilizado en sistema Bigdata. Preparado para traballar con moitos nodos e volumes moi altos de datos, sendo moi tolerante a fallos. Obtén rendemento utilizando procesamento MapReduce. Amazon EMR, Amazon S3.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/ud5-entrada-e-saida-da-informacion/ficheiros/sistema-de-arquivos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
