Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INDICE DE CONTENIDOS
La informática
Dentro de los sistemas informáticos tenemos que distinguir dos tipos de elementos bien
diferenciados. El hardware y el software. El hardware es la parte física del ordenador mientras que el
software es la parte no tangible, los programas. Dentro del software se pueden distinguir dos tipos de
software; el de base y el de aplicación. El software de aplicación hace referencia al que su tarea es
procesar información de forma personalizada. Son aplicaciones por ejemplo OpenOffice. El software
de base son los sistemas operativos. Hacen mas fácil la utilización de la máquina.
Sistema Operativo
El sistema operativo es el encargado de gestionar los recursos y programas. Nos permite utilizar el
software de una manera cómoda y gestionar más adecuadamente los recursos del Hardware. Es un
programa de control que tiene por objeto facilitar el uso de la computadora y conseguir que ésta se
utilice eficientemente.
Los primeros sistemas operativos, tenían un esquema monolítico (un programa global, por lo
que no existen módulos, pero eso sí, eran poco complejos). A pesar de ser poco complejos, eran
difíciles de mantener ya que no usaban programación modular. Hoy en día, existen sistemas
operativos con esquema monolítico que hay que compilarlos cada vez que añadimos funcionalidades
nuevas. La ventaja es que son muy rápidos y consumen menos recursos.
Historia
Los sistemas operativos han estado siempre relacionados con las arquitecturas de los ordenadores.
De forma genérica podemos hablar de varias generaciones de sistemas operativos:
Primera generación (1950-1960). En esta época, se utilizaban las válvulas de vacío (antiguas
resistencias electrónicas) para la construcción de las computadoras. Estas máquinas eran
programadas en lenguaje máquina puro. Eran de gran tamaño, consumían mucha energía y eran
muy lentas en el tratamiento de las operaciones, que se reducían a cálculos matemáticos. A
principios de los años cincuenta, para introducir datos al ordenador se utilizaban tarjetas
perforadas. Anteriormente, toda la información que se debía procesar se introducía de forma
manual. No existen sistemas operativos como tales.
En esta generación aparece lo que se denomina procesamiento por lotes, (se ejecuta proceso a
proceso) que consiste en que los datos son introducidos al ordenador que los va a procesar por
otro pequeño ordenador o sistema de captura de datos. Este proceso constaba de tres labores
fundamentales:
1. Introducir los datos que se iban a procesar en un soporte de información, que inicialmente
fueron las tarjetas perforadas o la cinta magnética y posteriormente los soportes magnéticos.
La introducción de datos se realizaba en un medio físico distinto de la computadora.
2. Llevar el soporte cargado con los datos a la computadora para que la procesara. Procesada
la información, se almacenaba en otro soporte diferente.
3. Llevar el soporte donde están los resultados a otros dispositivos físico distinto a la
computadora para realizar la generación de resultados.
Es de destacar el IBM 360 como máquina capaz de realizar cualquier tipo de cálculo.
Aparece el concepto de multiprogramación; es decir, permitir que una máquina esté realizando
varios procesos a la vez. También aparecen las técnicas de spool, gracias a las cuales se
almacenan trabajos en colas de espera. De esta forma, se podían realizar varios programas, ya
que cuando finalizaba uno, el sistema operativo podía cargar otro en memoria para ejecutarlo.
Así, para gestionar estos grandes ordenadores, era necesaria la construcción de un software
básico que controlase y relacionase los diferentes componentes del ordenador. Este sistema
operativo era complicado, con gran cantidad de errores y con pocos recursos.
Cuarta generación (1974 hasta hoy). Es la generación de las computadoras personales. Se
utilizan complejas técnicas de integración de componentes electrónicos. Aparecen las memorias
de semiconductores, que son mucho más rápidas y de mayor capacidad.
Aparecen sistemas operativos mucho más fáciles de usar, es decir, con mayores posibilidades.
Para ello, se crean interfaces sencillas de comunicación entre usuario y máquina.
Surgen sistemas operativos monousuario como el MS-DOS, sistemas operativos en red como el
UNIX, y algunos como Windows 1.0 que permiten un diálogo con el ordenador basado en
entornos gráficos. Estos sistemas operativos actuales son de elevada potencia, sobre todo en la
gestión de hardware y en la utilización y distribución de programas y datos en memoria.
Los sistemas operativos más conocidos por los usuarios de a pié se puede resumir en los siguientes:
• Monotareas (es capaz de realizar una sola tarea a la vez por usuario)
• Multitareas (es capaz de realizar varias tareas a la vez por usuario)
• Monoproceso (un solo procesador, pero son capaces de ejecutar varias tareas a través de
una cola de procesos y con intercambio entre ellos muy rápidos)
• Multiproceso (varios procesadores, por lo que ejecutaran varias tareas a la vez)
Según su disponibilidad:
o libertad de distribuir copias del programa con lo que se puede ayudar a otros usuarios
o libertad de mejorar el programa y hacer públicas dichas mejoras de modo que toda la
comunidad se beneficie.
El software libre suele estar disponible gratuitamente o al precio de coste de distribución. Sin embargo
no es obligatorio que así sea.
Tipos de Licencias
OEM. Su venta va asociada a la compra de un equipo, por lo que afecta a los sistemas operativos.
Está prohibido venderlo si no es con esta condición.
RETAIL. Son las versiones de venta de software. En este caso el programa es de entera propiedad
del usuario, pudiendo este cederlo libremente e incluso venderlo a terceros.
LICENCIAS POR VOLUMEN. Se rige como las OEM pero no estan supeditadas a la compra de
equipos nuevos. Con una sola clave instalamos varios equipos. Se utilizan en empresas con varios
ordenadores.
NTLDR. Para equipos Windows NT, Windows 2000, y Windows 2003 server. Requiere de los archivos
boot.ini y ntdetect.com
BOOTMGR. Es el nuevo cargador para Windows vista, 7 y 2008 server. Requiere del archivo
winload.exe que carga el sistema operativo y dará paso al archivo ntoskrnl.exe que arranca el resto
del sistema.
LILO y GRUB. Son los gestores más conocidos de Linux. El primero tiene la ventaja de que necesita
muy pocos recursos y entra en el master boot record del hdd, mientras que el segundo es más
completo y nos ofrece un interfaz de comandos para momentos críticos con el sistema.
Componentes
Como se muestra en la figura, se suele considerar que un sistema operativo está formado por tres
capas: el núcleo, los servicios y el intérprete de mandatos o shell.
USUARIOS
SHELL
NÚCLEO
HARDWARE
El núcleo es la parte del sistema operativo que interacciona directamente con el hardware de la
máquina. Las funciones del núcleo se centran en la gestión de recursos, como es el procesador,
tratamiento de interrupciones y las funciones básicas de manipulación de memoria.
Los servicios se suelen agrupar según su funcionalidad en varios componentes, cada uno de los
cuales se ocupa de las siguientes funciones:
Por los que se refiere al intérprete de comandos o shell, es el módulo del sistema operativo que
permite que los usuarios dialoguen de forma interactiva con el sistema operativo, existen varios
intérpretes de comandos, unos textuales y otros gráficos.
La gestión de procesos
El Sistema Operativo mantiene una tabla de procesos dentro de la cual se almacena un bloque de
control del proceso (PCB) por cada proceso. Un PCB contiene información básica de cada proceso
como la siguiente:
b) Estado del procesador: Contiene los valores iniciales del estado del procesador o el valor en el
instante en que fue interrumpido el proceso.
c) Información de control del proceso: Almacena información que permite gestionar el proceso
como:
Un proceso puede encontrarse en tres estados: Procesándose, Listo en espera de CPU y bloqueado.
Se visualizan cuatro posibles transiciones indicadas por las flechas, veamos cuando se producen
estas transiciones.
Cuando se crea un proceso nuevo, se carga en memoria y se le asigna el estado listo, la finalización
de un proceso se produce cuando está en el estado ejecutando, devolviendo los recursos que
utilizaba.
Interacción entre procesos: Los procesos que se ejecutan de forma concurrente (a la vez) en un
sistema se pueden clasificar en:
• Procesos Cooperantes: Cuando un proceso afecta o puede ser afectado por otros
procesos del sistema operativo; por lo que deben ser capaces de comunicarse e
interactuar entre ellos.
Los procesos necesitan comunicarse entre sí. Se debe evitar que surjan condiciones de carrera, que
son situaciones en las que dos o más procesos leen o escriben en una zona compartida. Este
problema se resuelve impidiendo que haya más de un proceso leyendo o escribiendo
simultáneamente datos compartidos. Para ello, se emplea la exclusión mutua, que es una forma de
garantizar que mientras un proceso está usando un objeto compartido, otros procesos no puedan
hacerlo.
La sección crítica es la parte del proceso que accede a la zona compartida. Se trata de que cuando
un proceso esté ejecutando código de su sección crítica, ningún otro proceso pueda ejecutar su
sección crítica. Para resolver el problema de la sección crítica es necesario utilizar un mecanismo de
sincronización que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe
proteger el código de la sección crítica y su funcionamiento es el siguiente:
• Cada proceso debe solicitar permiso para entrar en su sección crítica, mediante algún
fragmento de código denominado de forma genérica entrada en la sección crítica.
• Cuando un proceso sale de la sección crítica debe indicarlo mediante otro fragmento de
código denominado salida de la sección crítica. Este fragmento permitirá que otros procesos
entren a ejecutar el código de la sección crítica.
La estructura del mecanismo que pretenda resolver el problema de la sección crítica debe ser el
siguiente:
Entrada en la sección crítica
Código de la sección crítica
Salida de la sección crítica
Cualquier mecanismo de sincronización que se utilice para resolver este problema, debe cumplir los
siguientes requisitos:
Para evitar la concurrencia de procesos se utiliza el sistema denominado exclusión mutua, con el que
se consigue asegurar que nunca dos procesos van a usar el mismo recurso a la vez. El sistema de
exclusión se consigue mediante la sincronización de procesos. Éste se puede realizar mediante
software con los algoritmos de espera activa. O bien, mediante espera no activa.
Activo(i) = verdad
Turno = j
Mientras activo(j) = verdad y turno = j
Haz nada
Activo(i) = falso
El problema de la comida de los filósofos. Representa a procesos que compiten por el acceso
exclusivo a un número limitado de recursos, como los dispositivos de E/S.
Este problema fue propuesto por Dijkstra para demostrar la importancia de la sincronización. Cinco
filósofos están sentados alrededor de una mesa circular. Cada filósofo tiene delante un plato de
tallarines y necesita dos tenedores para comerlos. Entre cada dos platos hay un tenedor. La vida de
los filósofos tiene dos estados posibles y alternativos, o están meditando o están comiendo. Cuando
un filósofo tiene hambre, intenta coger los dos tenedores (el de su izquierda y el de su derecha). Si
consigue coger los dos tenedores, como un poco y después deja los tenedores y continúa pensando.
Si los 5 filósofos cogen a la vez los tenedores de su izquierda, ninguno de ellos podrá coger el
tenedor a su derecha, produciéndose un interbloqueo.
El problema de los lectores-escritores. Representa el acceso a una base de datos. Por ejemplo, si
se tiene una base de datos con procesos que compiten por leer y escribir en ella, puede darse la
situación de que haya varios procesos leyendo a la vez, pero cuando haya un proceso escribiendo en
ella, no puede haber ningún otro proceso, lector o escritor, que acceda a la base de datos. Hay que
determinar cómo programar los lectores y los escritores para que no se produzca una situación
indebida.
El Planificador es el proceso que se encarga de definir qué proceso preparado en la cola pasa a
ejecución.
Planificación APROPIATIVA: Aquél que puede dejar la CPU para que otro proceso la utilice antes de
él haber acabado de realizar su tarea.
Este algoritmo se suele utilizar para gestionar los trabajos de impresión en las colas.
Periódicamente, se genera una instrucción de reloj y el proceso que está en ejecución se sitúa en la
cola de LISTOS y se selecciona el siguiente proceso según el algoritmo FIFO. Cada proceso recibe
una fracción de tiempo, llamada “quantum” antes de ser expulsado.
La cuestión principal del diseño de este algoritmo, es la longitud que se le va a dar al quantum de
tiempo.
Cuando llega un proceso se coloca al final de la cola de procesos que están esperando.
Para el uso de este algoritmo es necesario conocer o estimar el tiempo que necesita cada proceso.
Este algoritmo puede ser apropiativo (cuando el algoritmo desaloja al proceso que se está ejecutando
en la CPU sin que haya terminado, para asignársela a otro proceso), o no apropiativo (cuando se
asigna la CPU a un proceso, se debe esperar hasta que este termine para asignar la CPU a otro
proceso).
a) SRT apropiativo: Debe decidirse entre una de las dos siguientes opciones:
- El proceso en ejecución tiene prioridad, es decir, si llega un proceso que tiene un tiempo de
ejecución igual al que le queda al proceso que se está ejecutando, se da prioridad al
proceso en ejecución.
b) SRT no apropiativo: Cuando termina un proceso, mira de todos los que hay en la cola, a cual
le queda menos tiempo de ejecución, y ese es el que se ejecuta.
Para todos los algoritmos descritos anteriormente, se puede calcular una serie de variables como son
el tiempo de espera, el tiempo de retorno, el tiempo medio de espera y el tiempo medio de retorno.
EJERCICIOS
UNO:
Planifica la ejecución de los procesos de la siguiente tabla, mediante los algoritmos FIFO, SRT
(tiempo restante más corto), SRT apropiativo, SPN (primero el proceso más corto), RR (q=2) y RR
(q=3).
Además, obtén los tiempos de espera, los tiempos de retorno, el tiempo medio de espera y el tiempo
medio de retorno para cada algoritmo.
DOS:
Planifica la ejecución de los procesos de la siguiente tabla, mediante los algoritmos FIFO, SRT (con
prioridad al proceso en ejecución), SPN (primero el proceso más corto), RR (q=1) y RR (q=4).
Además, obtén los tiempos de espera, los tiempos de retorno, el tiempo medio de espera y el tiempo
medio de retorno para cada algoritmo.
TRES:
Planifica la ejecución de los procesos de la siguiente tabla, mediante los algoritmos FIFO, SRT, SPN,
RR (q=1) y RR (q=2), Prioridad no apropiativo y Prioridad apropiativo. El número menor de prioridad
representa la mayor prioridad.
Se supone que cada 3 unidades de tiempo de un proceso en ejecución, realiza una operación de E/S
que dura 2 unidades de tiempo, mientras las cuales se puede estar ejecutando otro proceso.
Además, obtener los tiempos de espera, los tiempos de retorno, el tiempo medio de espera y el
tiempo medio de retorno para cada algoritmo.
CUATRO:
Planifica la ejecución de los procesos de la siguiente tabla, mediante los algoritmos FIFO, SRT
apropiativo, SRT no apropiativo, SPN, RR (q=2), RR (q=4), Prioridad apropiativo y Prioridad no
apropiativo.
Además, obtén los tiempos de espera, los tiempos de retorno, el tiempo medio de espera y el tiempo
medio de retorno para cada algoritmo.
El objetivo de memoria es guardar la información de aquellos programas que están siendo ejecutados
por el procesador. Toda la información debe pasar por la memoria física del ordenador.
La fragmentación, sucede cuando la memoria está dividida en muchos trozos que están sin
utilizarse, es decir, hay un trozo que está ocupado, luego otro que esta libre, otro que esta ocupado y
así sucesivamente. Esto ralentiza el acceso a la memoria y la carga de nuevos programas en
memoria.
La solución a este problema es la compactación: unir todos los trozos libres que haya en la memoria.
Memoria caché, cuyo objetivo consiste en tener aquellas zonas de memoria más utilizadas en una
memoria muy rápida. Esta pequeña memoria caché está integrada dentro de la CPU. Es muy
pequeña (unos 256Kbytes) pero su acceso es mucho más rápido que la memoria RAM.
Páginas compartidas, existe la posibilidad de compartir páginas entre varios programas o usuarios.
Con ello se ahorra mucha memoria y no hace falta que se cargue el código tantas veces como
usuarios existan.
Segmentación, las páginas de la memoria se dividen en segmentos, de tal forma que para acceder a
un trozo de código de un programa debemos hacer referencia al segmento en el que está dicho trozo
de código, así como un desplazamiento dentro del segmento.
Carga según peticiones de páginas, las páginas en memoria se cargan cuando se necesita acceder
a ellas.
Falta de página, se producen cuando faltan datos en memoria. En este caso hay que acceder al
disco duro para cargar la nueva información en la memoria.
El swapping o memoria virtual, es una zona de intercambio para programas que no caben en la
memoria. Esta zona se encuentra en el disco duro y se gestiona como si fuera memoria normal.
Ejemplo: El swap de Linux, el archivo de paginación de Windows
El hecho de que sea rentable o no, dependerá del tiempo que se necesite para realizar dicho
intercambio. Será mejor utilizarlo cuando el tiempo de espera sea grande.
La primera en llegar a la memoria es, la primera en salir de la memoria. No se tiene en cuenta el uso
de las páginas, sino la antigüedad de éstas.
A la hora de sustituir una página, buscaremos aquella que hace más tiempo que no se emplea. La
dificultad está en el control del tiempo que lleva una página sin usar. La solución más apropiada para
tal, es de hardware, a través de contadores registros de tiempo.
A la hora de sustituir una página, cogeremos la página que se haya usado menos en la última unidad
de tiempo.
Son las que determinan cuando hay que cargar información en la memoria principal. Se dividen en
dos grandes categorías:
• Las de demanda: La falta de un bloque provoca una petición de carga, con lo que los algoritmos
de ubicación y/o sustitución harán sitio en la memoria para el nuevo bloque.
• Las anticipatorias: Cargan los bloques por adelantado, por lo que deben basarse en predicciones
del comportamiento futuro del programa. Estas predicciones pueden realizarse en base a 2
criterios:
a) La naturaleza de la construcción del programa, refiriéndose esto al principio de localidad.
b) La inferencia basada en el comportamiento pasado.
La gestión de almacenamiento
Introducción:
Se pueden plantear diferentes métodos para tener controlado todo el espacio libre en disco:
• Mediante el uso de un mapa de bits. Tiene el problema de que ocupa mucho espacio.
• Mediante listas enlazadas. El sistema Operativo encadena los bloques libres. No ocupa tanto
espacio como el mapa de bits. Suelen ser listas doblemente enlazadas.
La técnica que más se utiliza es la tabla de directorios, en la que cada unidad de disco se
reserva un área de éste donde va a guardar la relación de ficheros de disco, información sobre el
contenido del dispositivo.
La asignación del espacio en disco tiene como objetivos la utilización eficaz de la capacidad del disco.
En los sistemas basados en multiprogramación se producen peticiones de leer o escribir mucho más
rápidas de lo que pueden atender los discos. Así, es frecuente encontrar colas de espera en los
dispositivos de disco.
Existen muchos algoritmos de planificación de colas, unos tratando de reducir el tiempo de búsqueda
y otros, mejorando el tiempo de latencia (el tiempo de rotación de las cabezas).
• FCFS: la primera petición que llega es la primera que se atiende. Es aceptable con pocas
peticiones. Es la forma más sencilla, pero no es la que proporciona el mejor servicio.
• Planificación SSFT: sirve la petición que encuentra a la distancia más corta de la pista que
acaba de servir. Suele dar mejor resultado que la FCFS, pero tampoco es óptimo. Puede
provocar inanición.
• Planificación SCAN: selecciona la petición que da una distancia de búsqueda más corta pero en
una dirección preferida. La cabeza de lectura/escritura empieza en un extremo del disco y se
mueve hacia el extremo sirviendo las solicitudes a medida que llega a cada pista. Cuando llega al
extremo opuesto, se invierte la dirección del movimiento y continúa con el proceso. Es la base de
la mayoría de las planificaciones actuales.
• Planificación C-SCAN: Una variante del anterior. Cuando llega al final, vuelve inmediatamente al
principio sin servir ninguna petición para comenzar un nuevo recorrido.
La estructura física. Un disco duro está compuesto por varios platos. Cada una de las dos
superficies magnéticas de cada plato se denomina cara. El número total de caras de un disco duro
coincide con su número de cabezas. Cada una de estas caras se divide en anillos concéntricos
llamados pistas. En los discos duros se suele utilizar el término cilindro para referirse a la misma pista
de todos los discos de la pila. Finalmente, cada pista se divide en sectores. Los sectores son las
unidades mínimas de información que puede leer o escribir un disco duro. Generalmente, cada sector
almacena 512 bytes de información.
En los discos modernos normalmente solo hay un único plato con varias niveles de escritura-lectura.
Las cabezas y cilindros comienzan a numerarse desde el cero y los sectores desde el uno. En
consecuencia, el primer sector de un disco duro será el correspondiente a la cabeza 0, cilindro 0 y
sector 1.
El primer sistema de direccionamiento que se usó fue el CHS (cilindro-cabeza-sector), ya que con
estos tres valores se puede situar un dato cualquiera del disco. Más adelante se creó otro sistema
más sencillo: LBA (direccionamiento lógico de bloques), que consiste en dividir el disco entero en
sectores y asignar a cada uno un único número. Este es el que actualmente se usa.
La estructura lógica. Un disco duro está formada por las siguientes partes:
El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, sector 1). En él se
almacena la tabla de particiones y un pequeño programa master de inicialización, llamado también
Master Boot. Este programa es el encargado de leer la tabla de particiones y ceder el control al sector
de arranque de la partición activa. Si no existiese partición activa, mostraría un mensaje de error.
El espacio particionado es el espacio del disco que ha sido asignado a alguna partición.
El espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido asignado a
ninguna partición.
Ejercicio: Realice un diagrama en el que se muestre un ejemplo de un disco duro con espacio
particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar.
Sistemas de archivos:
Debido a que la FAT de este sistema de archivos tiene entradas de 16 bits (por eso, a veces se llama
FAT16), sólo se pueden utilizar 2^16 = 65.536 clusters distintos. Esto implica que, con el fin de
aprovechar la totalidad del espacio de una partición, los grupos tengan tamaños distintos en función
del tamaño de la partición. Por ejemplo, con un grupo de 16 KB se puede almacenar hasta 2^16
cluster * 16 KB/cluster = 220 KB = 1 GB de información. El límite de la partición (2 GB) se obtiene al
considerar un grupo máximo de 32 KB (formado por 64 sectores consecutivos de 512 bytes).
El sistema FAT32 permite trabajar con particiones mayores de 2 GB. No solamente esto, sino que
además el tamaño del grupo (cluster) es mucho menor y no se desperdicia tanto espacio como
ocurría en las particiones FAT. La conversión de FAT a FAT32, se puede realizar desde el propio
sistema operativo Windows 98, o bien desde utilidades como Partition Magic. Sin embargo, la
conversión inversa no es posible desde Windows 98, aunque sí desde Partition Magic.
Hay que tener en cuenta que ni MS-DOS ni las primeras versiones de Windows 95 pueden acceder a
los datos almacenados en una partición FAT32. Esto quiere decir que si tenemos en la misma
partición instalados MS-DOS y Windows 98, al realizar la conversión a FAT32 perderemos la
posibilidad de arrancar en MS-DOS (opción "Versión anterior de MS-DOS" del menú de arranque de
Windows 98). Con una conversión inversa se puede recuperar esta opción. Por estos motivos de
incompatibilidades, no es conveniente utilizar este sistema de archivos en particiones que contengan
datos que deban ser visibles desde otros sistemas de archivos. En los demás casos, suele ser la
opción más recomendable.
En la siguiente tabla, se comparan los tamaños de grupo utilizados según el tamaño de la partición y
el sistema de archivos empleado:
Desarrollador Microsoft
1977
Julio de
(Microsoft
Introducido 1988 (MS- Agosto de 1996 (Windows 95 OSR2)
Disk
DOS 4.0)
BASIC)
0x04,
Identificador de 0x01 0x06, 0x0B, 0x0C (MBR)
EBD0A0A2-B9E5-4433
partición (MBR) 0x0E -87C0-68B6B72699C7 (GPT)
(MBR)
Contenido de
Tabla
carpeta
Ubicación de
Lista enlazada
archivo
Bloques
Lista enlazada
defectuosos
Tamaño máximo
32 MiB 4 GiB
de archivo
Número máximo
4.077 65.517 268.435.437
de archivos
Longitud máxima
del nombre de 8.3 (11) o 255 caracteres cuando se usan LFNs
archivo
Tamaño máximo
32 MiB 2 GiB 2 TiB
del volumen
Fechas
Creación, modificación, acceso
almacenadas
Rango de fechas
1 de enero de 1980 - 31 de diciembre de 2107
soportado
Permisos No
Por volumen,
Compresión
DoubleSpace, No
transparente
DriveSpace
NTFS
Desarrollador Microsoft
Estructuras
Límites
Ext3 tiene dos límites de tamaño distintos. Uno para archivos y otro para el tamaño del sistema de
archivos entero. El límite del tamaño del sistema de archivos es de 2^31−1 bloques
Tamaño del bloque Tamaño máximo de los archivos Tamaño máximo del sistema de ficheros
1 KiB 16 GiB <2 TiB
2 KiB 256 GiB <4 TiB
4 KiB 2 TiB <8 TiB
8 KiB[1] 2 TiB <16 TiB
Ext4 se lanza octubre de 2006 con algunas mejoras con respecto a ext3.
Los sistemas de ficheros ext usan un sistemas de inodos para control de archivos y directorios
El estándar POSIX establece un modelo de sistema de archivos que se ajusta al empleado en los
UNIX tradicionales. Un archivo ordinario tendrá las propiedades siguientes:
El número de enlaces se emplea por el sistema operativo para eliminar el archivo del sistema de
ficheros, tanto el inodo como el contenido, cuando se han borrado todos los enlaces y el contador
queda a cero.
Ejemplo: