kernel, sistema y tabla de asignaciÓn de archivos

76
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS Ms. Ing. Jairo E. Márquez D. El presente documento, es una compilación de varios textos y trabajos consignados en internet, todos ellos referenciados al final del documento, en la que se muestra de manera actualizada, las características generales de lo que es un kernel en un sistema operativo, sus funciones y operatividad dentro de los mismos. De igual manera se muestra lo que son los sistemas de archivos y su relación con la tabla de asignación de archivos, imprescindibles en cualquier sistema operativo actual, y de cómo estos tiene que ver con el sistema de almacenamiento como lo es el disco duro. Kernel El kernel es el sistema central de cualquier sistema operativo. Todos los sistemas operativos constan de una parte encargada de gestionar los diferentes procesos y las posibles comunicaciones entre el hardware de un ordenador con los programas que están en funcionamiento, entre otras y variadas tareas. Es, por ejemplo, el que facilita el acceso a datos en los distintos soportes posibles (CD-ROM, unidad de disco duro, unidad ZIP, etc.), o el que arranca el ordenador, o el que resetea todos los dispositivos que sean necesarios. La principal propiedad de un kernel es que todas estas operaciones de manejo de memoria o de dispositivos, son, desde un punto de vista de usuario, totalmente transparentes, esto es, no es necesario saber cómo trabajar a bajo nivel con el procesador para realizar las operaciones que sean necesarias, ya que será el kernel, a través de una serie de instrucciones ya implementadas el que lo hará por nosotros. El kernel del programa informático se asegura de: - La comunicación entre los programas que solicitan recursos y el hardware. - Gestión de los distintos programas informáticos (tareas) de una máquina. - Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)

Upload: universidad-de-cundinamarca

Post on 22-Jun-2015

549 views

Category:

Engineering


20 download

DESCRIPTION

El presente documento, es una compilación de varios textos y trabajos consignados en internet, todos ellos referenciados al final del documento, en la que se muestra de manera actualizada, las características generales de lo que es un kernel en un sistema operativo, sus funciones y operatividad dentro de los mismos. De igual manera se muestra lo que son los sistemas de archivos y su relación con la tabla de asignación de archivos, imprescindibles en cualquier sistema operativo actual, y de cómo estos tiene que ver con el sistema de almacenamiento como lo es el disco duro.

TRANSCRIPT

Page 1: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Ms. Ing. Jairo E. Márquez D.

El presente documento, es una compilación de varios textos y trabajosconsignados en internet, todos ellos referenciados al final del documento, en laque se muestra de manera actualizada, las características generales de lo que esun kernel en un sistema operativo, sus funciones y operatividad dentro de losmismos. De igual manera se muestra lo que son los sistemas de archivos y surelación con la tabla de asignación de archivos, imprescindibles en cualquiersistema operativo actual, y de cómo estos tiene que ver con el sistema dealmacenamiento como lo es el disco duro.

Kernel

El kernel es el sistema central de cualquiersistema operativo. Todos los sistemasoperativos constan de una parte encargadade gestionar los diferentes procesos y lasposibles comunicaciones entre el hardwarede un ordenador con los programas queestán en funcionamiento, entre otras yvariadas tareas. Es, por ejemplo, el quefacilita el acceso a datos en los distintossoportes posibles (CD-ROM, unidad dedisco duro, unidad ZIP, etc.), o el quearranca el ordenador, o el que reseteatodos los dispositivos que sean necesarios.

La principal propiedad de un kernel es quetodas estas operaciones de manejo dememoria o de dispositivos, son, desde unpunto de vista de usuario, totalmentetransparentes, esto es, no es necesariosaber cómo trabajar a bajo nivel con elprocesador para realizar las operacionesque sean necesarias, ya que será el kernel,a través de una serie de instrucciones ya implementadas el que lo hará pornosotros.

El kernel del programa informático se asegura de:

- La comunicación entre los programas que solicitan recursos y el hardware.- Gestión de los distintos programas informáticos (tareas) de una máquina.- Gestión del hardware (memoria, procesador, periférico, forma de

almacenamiento, etc.)

Page 2: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

“La mayoría de las interfaces de usuario se construyen en torno al concepto denúcleo. La existencia de un núcleo, es decir, de un único programa responsable dela comunicación entre el hardware y el programa informático, resulta decompromisos complejos referentes a cuestiones de resultados, seguridad yarquitectura de los procesadores. El núcleo tiene grandes poderes sobre lautilización de los recursos materiales (hardware), en particular, de la memoria.

Los núcleos tienen como funciones básicas garantizar la carga y la ejecución delos procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleoy los programas del espacio del usuario.

Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntossiguientes (incluidos los pilotos materiales, las funciones de redes y sistemas deficheros o los servicios) necesariamente no son proporcionadas por un núcleo desistema de explotación. Pueden establecerse estas funciones del sistema deexplotación tanto en el espacio usuario como en el propio núcleo. Su implantaciónen el núcleo se hace en el único objetivo de mejorar los resultados. En efecto,según la concepción del núcleo, la misma función llamada desde el espaciousuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si estallamada de función es frecuente, puede resultar útil integrar estas funciones alnúcleo para mejorar los resultados.”1

No necesariamente se necesita un núcleo para usar una computadora. Losprogramas pueden cargarse y ejecutarse directamente en una computadora«vacía», siempre que sus autores quieran desarrollarlos sin usar ningunaabstracción del hardware ni ninguna ayuda del sistema operativo. Ésta era laforma normal de usar muchas de las primeras computadoras: para usar distintosprogramas se tenía que reiniciar y reconfigurar la computadora cada vez. Con eltiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeñosprogramas auxiliares, como el cargador y el depurador, o se cargaban desdememoria de sólo lectura. A medida que se fueron desarrollando, se convirtieron enlos fundamentos de lo que llegarían a ser los primeros núcleos de sistemaoperativo.

Hay cuatro grandes tipos de núcleos:2

- Los núcleos monolíticos facilitan abstracciones del hardware subyacenterealmente potentes y variadas.

- Los micronúcleos (en inglés microkernel) proporcionan un pequeñoconjunto de abstracciones simples del hardware, y usan las aplicacionesllamadas servidores para ofrecer mayor funcionalidad. (Andrew Tanenbaum2004)

1 El kernel. Consultado el 2 de septiembre de 2013.http://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)2 Ibid.

Page 3: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

- Los núcleos híbridos (micronúcleos modificados) son muy parecidos a losmicronúcleos puros, excepto porque incluyen código adicional en el espaciode núcleo para que se ejecute más rápidamente.

- Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso debibliotecas que proporcionan mayor funcionalidad gracias al acceso directoo casi directo al hardware.

El kernel ó núcleo de linux se puede definir como el corazón de este sistemaoperativo. Es el encargado que el software y el hardware del computador puedantrabajar juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

- Administración de la memoria para todos los programas y procesos enejecución.

- Administración del tiempo de procesador que los programas y procesos enejecucion utilizan.

- Es el encargado de que podamos acceder a los periféricos/elementos denuestro ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos deversiones del núcleo:

Versión de producción: Era la versión estable hasta el momento, de las versionesde desarrollo o experimentales.

Versión de desarrollo: Esta versión era experimental y era la que utilizaban losdesarrolladores para programar, comprobar y verificar nuevas características,correcciones, etc. Estos núcleos solían ser inestables y no se debían usar sinsaber lo que se hacía.

Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguienteforma: AA.BB.CC.DD.

- AA: Indica la serie/versión principal del núcleo.- BB: Indica la revisión principal del núcleo. Números pares e impares no

tienen ningún significado hoy en día.- CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas

características y drivers son soportados.- DD: Este digito cambia cuando se corrigen fallos de programación o fallos

de seguridad dentro de una revisión.

En la actualidad se suele usar el núcleo con la distribución que el usuario utiliza.Son las distribuciones encargadas de distribuir núcleos estables a sus usuarios yestos núcleos se basan en el núcleo ("vanilla") distribuido por Linus Torvalds y elequipo de programadores del núcleo.

Page 4: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

El núcleo se puede bajar de un gran número de servidores en internet pero el sitiooficial es http://www.kernel.org/ . En este enlace hay una lista internacional oficialde servidores espejos, de donde es posible bajarse cualquier versión del núcleo.

El núcleo de Windows 7 “MinWin”

El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el códigotiene el acceso directo a todo el hardware y toda la memoria, incluso a losespacios de dirección de todos los procesos del modo usuario. La parte deWINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no esmás que un conjunto de servicios disponibles a todos los componentes delSistema Operativo, donde cada grupo de servicios es manipulado porcomponentes que son totalmente independientes (entre ellos el Núcleo) entre sí yse comunican a través de interfaces bien definidas.

Todos los programas que no corren en Modo Kernel corren en Modo Usuario. Lamayoría del código del Sistema Operativo corre en Modo Usuario, así como lossubsistemas de ambiente (Win32 y POSIX que serán explicados posteriormente) yaplicaciones de usuario. Estos programas solamente acceden a su propio espaciode direcciones e interactúan con el resto del sistema a través de mensajesCliente/Servidor.

Capa de Abstracción de Hardware (HAL).

HAL (Hardware Abstraction Layer) es una interfaz entre el hardware y el resto delSistema Operativo, está implementada como una biblioteca de enlace dinámico(dll) y es responsable de proteger el resto del sistema de las especificaciones delhardware, tales como controladores de interrupción e interfaces de entrada/salida.Esta abstracción hace al sistema más portable ya que el resto del sistema no tieneque preocuparse sobre que plataforma está corriendo. Cada plataforma en que elsistema corre necesita un HAL específico. El diseño intenta que cuando Windowssea portado a una nueva arquitectura de procesador, el HAL sea reescrito para elnuevo procesador, pero el resto del sistema simplemente debe ser recompilado.

Microkernel: Es el responsable de todas las acciones que se realizan sobre elsistema y casi todas las funciones del sistema pasan a través de él, está situadoen el corazón de Windows, trabaja muy estrechamente con el HAL, este planificala ejecución de hilos y manipula las interrupciones y excepciones de procesos. Elpapel de este es mantener a los procesadores lo más ocupado posible. En sentidogeneral este se encarga de las funciones más básicas de todo el SO, como son:

Ejecución de subprocesos. Sincronización multiprocesador. Manejo de las interrupciones de hardware.

Page 5: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Ejecutor de Windows: Se encarga de las tareas importantes, las que son de vitalimportancia para el sistema completo, ya que el microkernel está casi siempredemasiado ocupado para dirigirse directamente.

El Administrador de Objetos (Object Manager): es usado para crear, modificar yeliminar objetos (tipos de datos abstractos que son usados para representarrecursos del Sistema Operativo) usados por todos los sistemas que conforman elEjecutor de Windows. Este también proporciona información sobre el estado delos objetos a todo el Sistema Operativo.

El Administrador de Procesos (Process Manager): es el responsable de crear,quitar y modificar los estados de todos los procesos e hilos. Este tambiénproporciona información sobre el estado de procesos e hilos al resto del sistema.

El Administrador de Memoria Virtual (Virtual Memory Manager o VMM):proporciona la gestión de memoria virtual del sistema. La memoria virtual es unesquema que permite usar los recursos del disco en lugar de la memoria física delsistema moviendo las páginas al disco cuando estas no están siendo usadas yrecuperándolas cuando se les necesitan. Este es un segmento integral deWindows el cual asigna espacios de direcciones de 32 bit a cada proceso sinpreocuparse de la cantidad de memoria física del sistema.

El Servicio de Llamadas a Procedimientos Locales (Local Procedure Call Facility oLPC): se integran al diseño cliente/servidor de Windows. Este es la interfaz entretodos los procesos clientes y servidores que corren localmente en el sistema.

Monitor de Seguridad (Security Reference Monitor o SRM): es el lecho de toda laseguridad dentro del sistema WINDOWS y es el responsable de hacer cumplirtodas las políticas de seguridad en la computadora local.

El Administrador de Entrada-Salida (I/O Manager): es responsable de gestionar lacomunicación entre los distintos drivers de dispositivo, para lo cual implementauna interfaz bien definida que permite el tratamiento de todos los drivers de unamanera homogénea, sin que intervenga el cómo funciona específicamente cadauno.

Subsistemas de Ambiente Protegido

Dos de los objetivos de WINDOWS son personalidad y compatibilidad. Esto hasido logrado a través de los subsistemas de ambiente protegido.

La personalidad esencialmente significa que WINDOWS expone múltiplesconjuntos de interfaces de programas de aplicación (APIs) y puede actuareficazmente como si fuera un sistema operativo diferente. WINDOWS viene conuna personalidad POSIX y OS/2 además de sus personalidades Win32, Win16 yDOS.

Page 6: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

En WINDOWS, hay tres subsistemas de ambiente protegido:

- El subsistema de Win32- El subsistema de POSIX- El subsistema de OS/2

El Subsistema Win32

Este subsistema actúa como un servidor para todos los otros subsistemas deambiente soportados en WINDOWS, los que actúan como clientes y traducen susllamadas API hacia las API apropiadas de Win32.

El subsistema Win32 es responsable de toda la entrada y salida. Este posee elcontrol de la pantalla, el teclado, y el ratón. Cuando otros subsistemas, como OS/2o POSIX, necesitan beneficiarse de estos dispositivos, ellos piden los servicios alsubsistema de Win32.

Algunos de los objetivos que se trazaron para mantener la compatibilidad con lasaplicaciones hechas en versiones anteriores fueron:

- Permitir que los programas hechos sobre DOS pudieran correr sinmodificación.

- Suministrar la capacidad para ejecutar la mayoría de las aplicacionesWindows de 16 bits sin modificación.

- Proteger al sistema y otras aplicaciones de 32 bits de la interferencia delas aplicaciones de 16 bits y DOS.

- Permitir a las plataformas RISC (Reduced Instruction set Computer,microprocesador cuyo número de instrucciones es reducido para lograruna frecuencia más alta de trabajo) ejecutar aplicaciones Windows de16 bits y DOS.

El Subsistema POSIX

Uno de los estándares más frecuentemente citados soportados por Windows es elPOSIX (Interfaz de Sistema operativo Portable Basado en Unix), el cualrepresenta la interfaz del Sistema Operativo portable y fue desarrollado por elIEEE (Instituto de Ingenieros en Electricidad y Electrónica) como un método deproporcionar portabilidad a las aplicaciones hechas sobre plataformas UNIX. Noobstante, POSIX se ha integrado en muchos sistemas no UNIX.

El Subsistema OS/2.

El Subsistema OS/2 igual que el subsistema POSIX proporciona un entorno paraaplicaciones UNIX, este subsistema da soporte a las aplicaciones OS/2.Proporciona la interfaz gráfica y las llamadas al sistema; las llamadas son servidascon ayuda del Ejecutor de Windows.

Page 7: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Estructura del sistema

Los kernels de Windows NT o Minix son de tipo micro-kernel, caracterizado porque proveen al sistema de unestado mínimo necesario de funcionalidad, cargando elresto de funciones necesarias en procesos autónomos eindependientes unos de otros, comunicándose con estemicro-kernel a través de una interfaz bien definida. Estetipo de estructura es más fácil de mantener y eldesarrollo de nuevos componentes es mucho mássimple, dando a su vez una mayor estabilidad alsistema. Por otro lado, debido a la estructura rígida delinterfaz, estos tipos de kernel son mucho máscomplicados de reestructurar, y además, debido a las

arquitecturas del hardware actual, el proceso de intercomunicación dentro delmicro-kernel es mucho más que una simple llamada, por lo que hace que estaestructura sea más lenta que los kernels de tipo monolíticos o macro-kernels.

Debido a esto, una estructura de micro-kernel es prácticamente inconcebible,aunque esto no quiere decir que el kernel de linux sea una simple lista deinstrucciones sin estructura alguna. A pesar de la estructura de macro-kernel, seha intentado equiparar su velocidad utilizando código optimizado en velocidad, yse ha recuperado algunas de las mejores características de la estructura de micro-kernel, como puede ser la carga de los diferentes drivers necesarios comomódulos independientes, siempre sin olvidar la estructura monolítica original.

En el caso de Linux, la gran parte del kernel está escrito en C, existiendo tambiéninstrucciones en ensamblador, aunque estas últimas se usan mayoritariamente enlos procesos de arranque y en el control de co-procesador. A continuación semuestra una tabla con la cantidad de líneas en C y ensamblador que se usanaproximadamente en la versión 2.0 del kernel de Linux, el cual consta de unas470.000 líneas de código (la versión 1.0 constaba "únicamente" de 165.000líneas):

Código C Ensamblador

Dispositivos de Drivers 377.000 100

Network 25.000

VFS 13.500

13 archivos de sistema 50.000

Inicio 4.000 2.800

Co-Procesador 3.550

Tabla 1 - Proporciones de código fuente por componente

Page 8: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Cabe comentar el significado de la serie de números que acompañan al kernel,tanto compilado como al directorio que contiene las fuentes de éste, que, a pesarde no ser necesarios, se suelen incluir porque aportan una mayor información.Este conjunto de cifras tienen el formato X.X.XX y su significado no es más que laversión del kernel a la que corresponde dicho archivo, aunque no es simplementeasí. Como se puede suponer, la variación en una unidad del primer grupo de cifrassignifica un cambio muy importante en el kernel, siendo ésta menor conforme elgrupo de cifras que varía está más hacia la derecha.

El último grupo de cifras tiene, además del significado anterior como indicador deversión, un significado añadido, que es el de que si la cifra es par, esa versión dekernel se considera como una versión estable, si, en cambio ésta es impar, seconsidera que la versión del kernel es una versión en fase beta o de desarrollo.

Procesos y Tareas

Desde el punto de vista de un proceso ejecutándose en Linux, el kernel es unproveedor de servicios. Cada proceso existe por separado y el espacio dememoria reservado a cada uno de ellos está protegido para que no pueda sermodificado. Desde este punto de vista, se está llevando a cabo un sistemamultiproceso real (ver figura 2).

Desde un punto de vista interno, el contexto cambia. Solo hay un proceso enmarcha en el computador que puede acceder a todos los recursos, el sistemaoperativo. El resto de tareas se llevarán a cabo como co-rutinas, las cuales, deuna forma totalmente independiente, deciden por ellas mismas a qué tarea ycuándo pasarán el control. Debido a esto, un fallo en la programación del kernelpodría bloquear todo el sistema.

Figura 2 - Los procesos desde una vista interna y externa

Page 9: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Cuando se ha iniciado un proceso, este puede adquirir distintos estados:

1. Ejecución (Running)

La tarea está activa y en ejecución. Este proceso solo puede serinterrumpido por una interrupción o una llamada del sistema.

2. Rutina interrumpida (Interrupt Routine)

Está rutina se activa con una interrupción del sistema (hardware),como puede ser un pulsación del teclado o una llamada del reloj.

3. Llamada del Sistema (System Call)

Las llamadas del sistema se activan debido a una interrupciónproducida por el software. Pueden suspender una tarea para llevar acabo un evento.

4. En espera (Waiting)

El proceso está en espera de un evento externo.

5. Vuelta de la llamada del sistema (Return from system call)

Este estado se adopta automáticamente después de una llamada delsistema y algunas interrupciones.

6. Preparado (Ready)

El proceso está en espera de ser atendido por el procesador, que está ocupadocon otro proceso en ese momento.

Estos estados no pueden ser adquiridos sin orden alguno o porque sí, sino quellevan un ciclo el cual debe ser respetado. Además, si se observa la figura 3, sepodrá apreciar que estos procesos no son "islas" independientes unas de otras,sino que hay una relación familiar entre ellos.

En muchos sistemas operativos actuales se hace la distinción entre procesos ythreads. Un thread es una especie de rama o camino en la ejecución de unprograma que puede ser procesado en paralelo con otros threads.

Linux no hace esa distinción. En el kernel, únicamente existe el concepto de unproceso, el cual puede compartir recursos con otros procesos. Por eso, una tareaes una generalización del concepto de un thread.

Page 10: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Figura 3 - Estados posibles de un proceso

Principales estructuras de datos

La estructura Tarea

En un sistema multitarea es muy importante como una tarea está definida. Es,probablemente, uno de los conceptos más importantes en un sistema operativo deeste tipo. De hecho los algoritmos usados en Linux para su manejo constituyen lamayor parte del código del kernel.

La descripción de las características de unproceso, vienen dadas por la estructuratask_struct. Una de las variables usadas es lallamada state, que es la encargada dealmacenar el estado actual de la tarea (losvalores que puede tomar esta variable lospodemos ver en la figura 4). Otras variablesson counter, que es la variable usada por elProgramador (scheduler) para seleccionar elsiguiente proceso, o signal que contiene unamáscara de un bit (bit mask) para las señales

recibidas por el proceso.

Page 11: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Todos los procesos creados son introducidos en una lista doblemente enlazadagracias a los dos punteros siguientes (el comienzo y final de esta lista estánalmacenados en la variable global init_task):

struct task_struct *next_task;struct task_struct *previous_task;

En un sistema Unix, los procesos no existen independientemente unos de otros,sino que cada proceso está relacionado con los demás, siguiendo una jerarquíafamiliar según qué proceso lo haya creado, y que al igual que los anteriores estánrepresentados por:

struct task_struct p_opptr; /* Padre original */struct task_struct p_pptr; /* Padre */struct task_struct p_cptr; /* Hijo más joven */STRUCT TASK_STRUCT P_YSPTR; /* YOUNGER SIBLING */struct task_struct p_osptr; /* OLDER SIBLING */

Figura 4 - Relaciones entre procesos

Otras características de esta estructura son, por ejemplo, que cada proceso poseesu propia subestructura para el almacenamiento de datos, o que cada procesoposee un numero identificativo pid, a partir del cual se nos facilitará el manejo dedicha tarea.

Page 12: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

La tabla de procesos

Cada proceso en ejecución que haya en el ordenador, ocupa una entrada en latabla de proceso, la cual está restringida en tamaño a NR_TASKS.

En Linux, la tarea 0 (task[0]) es INIT_TASK, por lo que será la primera tareacargada por el kernel. Esto es así porque ella será la encargada de lanzar el restode tareas, como los demonios cargados en el inicio (p.ej. lpd) o el controlador delratón (gpm).

Ficheros e inodes

En los sistemas UNIX se ha hecho tradicionalmente una distinción entre laestructura de archivos y la de inodes. La estructura inode describe un archivo,aunque esto puede ser visto de diferentes formas: por ejemplo, la estructura dedatos en el kernel y la del disco duro describen archivos, y, a pesar de serdistintas, se denominan inodes.

Los inodes contienen información del archivo como propietario, derechos, etc.Cada fichero usado en el sistema se apareja con una única entrada de inode en elkernel, la cual describe diferentes atributos y propiedades del archivo al quecorresponde.

Principales mecanismos del kernel

- Señales: Desde los primeros sistemas UNIX, esta característica ha sido unde las que más ventajas le han aportado: el uso de señales. Éstas sonusadas por el kernel para informar a los procesos sobre ciertos eventos, loque permite abortarlos o cambiarlos de un estado a otro.

Todas estas señales son enviadas conla función send_sig(), la cual admite elpaso de tres parámetros, siendo éstos:el numero de la señal, una descripcióndel proceso que va a recibir la señal (unpuntero a la entrada del proceso encuestión en la tabla de procesos), yopcionalmente la prioridad del procesoque envía la señal. Este últimoargumento puede tener dos valores:desde el kernel, el cual puede enviarseñales a cualquier proceso, o desde unproceso, para lo que es necesario queéste último tenga derechos desuperusuario, o bien que tener el mismoUID y GID que el proceso al que se leenvía la señal.

Page 13: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

- Tuberías: Las tuberías o pipes (... | ...) son unos enlaces que se puedenrealizar con cualquier shell, que unen las entradas de algunos programascon las salidas de los otros. Gracias a esto es posible usar gran parte de loscomandos de Linux como filtros y, así, construir comandos más potentes apartir de comandos sencillos. Estas pipes, son consideradas como elmétodo clásico de comunicación entre procesos.

Otra variante de las tuberías son los FIFOs (First In, First Out), que sediferencian de las anteriores en que los FIFOs no son objetos temporales,sino que ellos pueden ser establecidos en un sistema de ficheros.

- Interrupciones: Son usadas para permitir al hardware comunicarse con elSO. En Linux hay dos tipos de interrupciones: rápidas y lentas. Se podríadecir que son tres tipos, considerando el tercero como las llamadas delsistema, también desencadenadas por interrupciones.

1. Interrupciones lentas: Son las más usuales. Se caracterizan porquese puede llevar a cabo otras interrupciones mientras éstas sontratadas. Después de que una interrupción lenta haya sidoprocesada, otras tareas adicionales, de carácter periódico, sonllevadas a cabo por el sistema (por ejemplo el scheduler). Otroejemplo, es la interrupción lenta del reloj.

2. Interrupciones rápidas: Éstas se usan para tareas más cortas ymenos complejas que las comentadas en el apartado anterior.Mientras este tipo de interrupciones son llevadas a cabo, el resto deinterrupciones son bloqueadas, a menos que la propia rutina enejecución las active. Un ejemplo de este tipo de rutinas es lainterrupción de teclado.

En ambos tipos de interrupciones el proceso que se lleva a cabo es muysimilar: primero todos los registros son salvados con SAVE_ALL y lainterrupción envía una confirmación al controlador de interrupciones conACK. En caso de un sistema con múltiples procesadores, se ejecuta unallamada a la rutina del kernel ENTER_KERNEL para sincronizar el accesoal kernel de los procesadores. Una vez se ha completado la interrupción, seejecuta la rutina RESTORE_MOST que devuelve los registros guardadospreviamente a sus valores iniciales, llamando después a iret para continuarcon el proceso interrumpido.

- Iniciando el sistema: LILO3 es el encargado de encontrar el kernel deLinux y lo carga a la memoria, iniciándolo en el punto start: que es donde se

3 LILO es un acrónimo de LInux LOader (cargador) y ha sido usado para arrancar linux en sistemas x86 pormuchos años. Aunque ahora GRUB es el gestor de arranque por defecto, algunos prefieren usar LILO porqueles es más familiar y otros porque GRUB puede causar problemas al arrancar determinado tipo de hardware.

Page 14: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

encuentra el código en ensamblador encargado de inicializar el hardwareesencial. Una vez esto se ha llevado a cabo, el proceso se cambia a ModoProtegido. La instrucción en ensamblador es:

jmp 0x1000, KERNEL_CS

Inicia un salto a la dirección de comienzo del código de 32 bit para el kernel delsistema operativo actual y continúa desde startup_32: En este punto se inicianmás secciones del hardware (en particular el MMU, el co-procesador y la tabla dedescripciones de interrupciones) y el entorno requerido para la ejecución defunciones en C. Una vez esto se ha llevado a cabo, la primera función en C,start_kernel(), es llamada, la cual salvará todos los datos que el códigoensamblador ha encontrado sobre el hardware hasta este punto. Entonces seinicializan todas las áreas del kernel. Así se puede citar un ejemplo de suejecución:

asmlinkage void start_kernel(void){

memory_start = paging_init(memory_start,memory_end);trap_init();init_IRQ();sched_init();time_init();parse_options(command_line);init_modules();

memory_start = console_init(memory_start,memory_end);

LILO se carga así mismo en la memoria casi de forma idéntica a GRUB, con la diferencia de que es un gestorde dos etapas.

1. La etapa 1 o el gestor de arranque primario se lee en la memoria por la BIOS desde el MBR. Elgestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR. Sufunción es cargar la etapa 2 del gestor de arranque y pasarle la información de la geometría del disco.

2. La etapa 2 o el gestor de arranque secundario se lee en memoria. El gestor de arranque secundariovisualiza la pantalla inicial de Red Hat Linux. Esta pantalla le permite seleccionar el sistemaoperativo o el kernel de Linux que desee arrancar.

3. La etapa 2 lee el sistema operativo o el kernel y lleva a cabo initrd en memoria. Una vez que LILOdetermina qué sistema operativo iniciar, éste lo carga en la memoria y lleva el control de la máquinaa ese sistema operativo.

Una vez que se ha llevado a cabo la etapa 2 en memoria, LILO visualiza la pantalla inicial de Red Hat Linuxcon los diferentes sistemas operativos o kernel que han sido configurados para arrancar. Por defecto, si RedHat Linux es el único sistema instalado, linux será la única opción disponible. Si el sistema tiene múltiplesprocesadores habrá una opción linux-up para el kernel del procesador único y una opción linux para loskernel de múltiples procesadores (SMP). Si LILO está configurado para arrancar otros sistemas operativos,estas entradas de arranque también aparecerán en pantalla.

Las flechas direccionales permiten al usuario resaltar el SO deseado y la tecla [Intro] comenzará el proceso dearranque.

Para accesar una línea de comandos boot: presione [Ctrl]-[X].

Page 15: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

memory_start = pci_init(memory_start,memory_end);memory_start = kmalloc_init(memory_start,memory_end);

sti();

memory_start = inode_nit(memory_start,memory_end);memory_start = file_table_init(memory_start,memory_end);memory_start = name_cache_init(memory_start,memory_end);mem_init(memory_start,memory_end);

buffer_init();sock_init();ipc_init();...

El proceso actualmente en curso es el proceso 0, el cual ejecuta la función init(),que será la encargada de llevar a cabo el resto de la inicialización, cargando losdemonios bdflush y kswap. Entonces se hace una llamada a setup, que será laencargada de montar el sistema de archivos root.

- Interrupción del Reloj: Todos los sistemas operativos necesitan una formade medir el tiempo y de mantener una hora en el sistema. El sistema demedida se implementa normalmente haciendo interrupciones en intervalosya predefinidos. Bajo Linux, el tiempo se mide en ticks desde que el sistemaes arrancado. Un tick representa 10 milisegundos, así que la interrupcióndel reloj se efectúa 100 veces por segundo.

El tiempo se almacena en la variable

unsigned long volatile jiffies;

La cual deberá ser modificado únicamente por esta interrupción. Sinembargo, este método provee solo de un base interna de tiempo.

La interrupción del reloj es llamada relativamente a menudo y, por eso, esun tanto dependiente del tiempo.

La rutina de interrupción en la versión 2.0, actualiza la variable jiffies ymarca como activa una parte de la interrupción del reloj, la cual es llamadapor el sistema más adelante, y se desarrolla el resto del trabajo. Comopueden ocurrir varias interrupciones de reloj antes de activar el resto derutinas, la interrupción del reloj también puede incrementar las variables

unsigned long lost_ticks;unsigned long lost_ticks_system;

Para que estas puedan ser evaluadas al final de la rutina.

Page 16: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

lost_ticks cuenta las interrupciones de reloj producidas desde la últimaactivación; lost_ticks_system cuenta, en cambio el número deinterrupciones transcurridas mientras el proceso de interrupción estaba enModo de Sistema.

El sistema de archivos de linux

Actualmente es normal encontrar un PC consu disco duro con distintas particiones, cadauna de ellas con un sistema de ficherosdistinta. Esta variedad es debida a queprácticamente cada SO tiene su propiosistema de ficheros, alegando que éste esmás rápido y seguro que el resto.

Puede que una de las razones por las queLinux ha tenido tanta popularidad, sea por lacantidad de sistemas de ficheros distintosque soporta (FAT16 y FAT32 de Windows,NTFS de WinNT, HPFS de OS/2, ISO 9660 yJoliet, que son los estándares más comunesen CD, etc.). El soporte de esta gran cantidad de sistema de ficheros es debido ala interfaz unificada que usa el kernel llamada Virtual File System Switch (VFS) oVirtual File System. Este sistema virtual de ficheros es el encargado de cadaproceso pueda manejar información desde los distintos ficheros sin necesidad desaber donde se encuentran, o de saber si pertenecen a un tipo de sistema deficheros u otro.

Conocimientos básicos

La CPU no es el único elemento "inteligente" que existe en la computadora. Cadaelemento hardware que la compone lleva incluido su propio controlador (porejemplo el ratón y el teclado son controlados por el chip SuperIO, el disco IDE porel controlador IDE o el SCSI por la controladora SCSI). Esto implica que el accesoa cada uno de estos dispositivos se realizará de forma distinta, por lo que cadautilidad debería incluir unos controladores. En vez de eso, los controladores seincluyen en el kernel como unas librerías conocidas como device drivers(controlador de dispositivo), de tal forma que se puede acceder a todos losdispositivos así configurados, sin necesidad de conocer cómo funciona eldispositivo a bajo nivel. De esta forma se consigue una abstracción en lo que serefiere al acceso a dispositivos.

En Linux, como en Unix, a los distintos sistemas de ficheros que el sistema puedeusar no se accede por identificadores de dispositivo (como un número o nombrede unidad) pero, en cambio se combinan en una estructura jerárquica de árbol querepresenta el sistema de ficheros como una entidad única y sencilla. Linux añadecada sistema de ficheros nuevo en este árbol de sistemas de ficheros cuando se

Page 17: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

monta. Todos los sistemas de ficheros, de cualquier tipo, se montan sobre undirectorio y los ficheros del sistema de ficheros son el contenido de ese directorio.Este directorio se conoce como directorio de montaje o punto de montaje. Cuandoel sistema de ficheros se desmonta, los ficheros propios del directorio de montajeson visibles de nuevo.

Además, gracias a esta forma detrabajo, no es necesario implementar elcódigo necesario para acceder a losdistintos dispositivos, sino que cadaproceso se comunica con losdispositivos que necesite a través delacceso que le es proporcionado a travésdel VFS, como se puede observar en lafigura 4.

El primer sistema de ficheros diseñadoespecíficamente para Linux, el sistema de Ficheros Extendido, o EXT, fueintroducido en Abril de 1992 y solventó muchos problemas pero era aún falto derapidez. Así, en 1993, el Segundo sistema de Ficheros Extendido, o EXT2, fueañadida al kernel como sistema principal de ficheros.

Figura 4 - Estructura del VFS

Page 18: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

En ese momento un importante desarrollo tuvo lugar en Linux. El sistema deficheros real se separó del SO y servicios del sistema a favor de un interfazconocido como el Sistema de Ficheros Virtual, o VFS. VFS permite a Linuxsoportar muchos, incluso muy diferentes, sistemas de ficheros, cada unopresentando un interfaz software común a través del VFS. Todos los detalles delsistema de ficheros de Linux son traducidos mediante software de forma que todoel sistema de ficheros parece idéntico al resto del kernel de Linux y a losprogramas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtualde Linux permite al usuario montar de forma transparente diferentes sistemas deficheros al mismo tiempo.

El sistema de Ficheros Virtual estáimplementado de forma que el acceso alos ficheros es tan rápido y eficiente comosea posible. También debe asegurar quelos ficheros y los datos que contiene soncorrectos. Estos dos requisitos pueden serincompatibles entre sí. El VFS de Linuxmantiene una antememoria coninformación de cada sistema de ficherosmontado y en uso. Se debe tener muchocuidado al actualizar correctamente elsistema de ficheros ya que los datoscontenidos en las antememorias se modifican cuando se crean, escriben y borranficheros y directorios.

Si se pudieran ver las estructuras de datos del sistema de ficheros dentro delkernel en ejecución, se podría ver los bloques de datos que se leen y escriben porel sistema de ficheros. Las estructuras de datos, que describen los ficheros ydirectorios que son accedidos serian creadas y destruidas y todo el tiempo loscontroladores de los dispositivo estarían trabajando, buscando y guardando datos.La antememoria o caché más importantes es la llamada Buffer Cache, que estáintegrada entre cada sistema de ficheros y su dispositivo de bloque. Tal y como seaccede a los bloques se ponen en el Buffer Cache y se almacenan en varias colasdependiendo de sus estados. El Buffer Cache no sólo mantiene buffers de datos,también ayuda a administrar el interfaz asíncrono con los controladores dedispositivos de bloque.

El Virtual File System

Como en el sistema de ficheros EXT2, cada fichero, directorio y demás serepresentan en el VFS por un y sólo un inodo VFS. La información en cada inodoVFS se construye a partir de información del sistema de ficheros por las rutinasespecíficas del sistema de ficheros. Los inodos VFS existen sólo en la memoriadel núcleo y se mantienen en el caché de inodos VFS tanto tiempo como seanútiles para el sistema. Entre otra información, los inodos VFS contienen lossiguientes campos:

Page 19: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

1. device: Este es el identificador de dispositivo del dispositivo quecontiene el fichero o lo que este inodo VFS represente,

2. inode number: Este es el número del inodo y es único en estesistema de ficheros. La combinación de device y inode number esúnica dentro del Sistema de Ficheros Virtual,

3. mode: Como en EXT2 este campo describe qué representa esteinodo VFS y los permisos de acceso (r-lectura, w-escritura, x-ejecución para propietario, grupo y otros usuarios),

4. user ids: Los identificadores de propietario,5. times: Los tiempos de creación, modificación y escritura,6. block size: El tamaño de bloque en bytes para este fichero, por

ejemplo 1024 bytes,7. inode operations: Un puntero a un bloque de direcciones de rutina.

Estas rutinas son específicas del sistema de ficheros y realizanoperaciones para este inodo, por ejemplo, truncar el fichero querepresenta este inodo.

8. count: El número de componentes del sistema que están usandoactualmente este inodo VFS. Un contador de cero indica que el inodoestá libre para ser descartado o rehusado,

9. lock: Este campo se usa para bloquear el inodo VFS, por ejemplo,cuando se lee del sistema de ficheros,

10.dirty: Indica si se ha escrito en este inodo, si es así, el sistema deficheros necesitará modificarlo,

11.file system specific information.

El sistema de ficheros Ext2

El Segundo sistema de ficheros Extendido de Linux ha sido el que mayor éxito hacosechado, siendo básico en cualquier distribución de este SO. Su construcciónse basa en que los datos son guardados en bloques, los cuales son, en principio,del mismo tamaño, aunque pueden variar de un sistema a otro (ya que estaelección del tamaño se hace al crear el sistema con mke2fs). Cuando sealmacena un fichero, se hace de tal forma que ocupe un número entero debloques, quedando gran parte de la capacidad del último bloque usado bastantedesperdiciada, a no ser que el fichero de datos ocupe exactamente un número debloques, tal como se ha explicado reiteradas veces en clase.

No todos los bloques del sistema de ficheros contienen datos, algunos debenusarse para mantener la información que describe la estructura del sistema deficheros. EXT2 define la topología del sistema de ficheros describiendo cadafichero del sistema con una estructura de datos inodo. Un inodo describe quebloques ocupan los datos de un fichero y también los permisos de acceso delfichero, las horas de modificación del fichero y el tipo del fichero. Cada fichero enel sistema de ficheros EXT2 se describe por un único inodo y cada inodo tiene unúnico número que lo identifica. Los inodos del sistema de ficheros se almacenanjuntos en tablas de inodos. Los directorios EXT2 son ficheros especiales (ellos

Page 20: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

mismos descritos por inodos) que contienen punteros a los inodos de sus entradasde directorio.

El sistema de ficheros EXT2 dividelas particiones lógicas que ocupa enGrupos de Bloque (Block Groups).Cada grupo duplica informacióncrítica para la integridad del sistemade ficheros ya sea valiéndose deficheros y directorios como debloques de información y datos.Esta duplicación es necesaria por siocurriera un desastre y el sistemade ficheros necesitara recuperarse.

En el sistema de ficheros EXT2, el inodo es el bloque de construcción básico;cada fichero y directorio del sistema de ficheros es descrito por un y sólo un inodo.Los inodos EXT2 para cada Grupo de Bloque se almacenan juntos en la tabla deinodos con un mapa de bits que permite al sistema seguir la pista de inodosreservados y libres. Un inodo EXT2, entre otra información, contiene los siguientescampos:

1. mode: Esto mantiene dos partes de información; qué inodo describey los permisos que tienen los usuarios. Para EXT2, un inodo puededescribir un fichero, directorio, enlace simbólico, dispositivo debloque, dispositivo de carácter o FIFO.

2. owner Information: Los identificadores de usuario y grupo de losdueños de este fichero o directorio. Esto permite al sistema deficheros aplicar correctamente el tipo de acceso.

3. size: El tamaño en del fichero en bytes.

4. timestamps: La hora en la que el inodo fue creado y la última horaen que se modificó.

5. datablocks: Punteros a los bloques que contienen los datos queeste inodo describe. Los doce primeros son punteros a los bloquesfísicos que contienen los datos descritos por este inodo y los tresúltimos punteros contienen más niveles de indirección. Por ejemplo,el puntero de doble indirección se direcciona a un bloque depunteros que apuntan a bloques de datos. Esto significa que ficherosmenores o iguales a 12 bloques de datos en longitud son másfácilmente accedidos que ficheros más grandes.

Los inodos EXT2 pueden describir ficheros de dispositivo especiales, aunque nose consideran como ficheros reales, aunque permiten que los programas puedan

Page 21: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

usarlos para acceder a los dispositivos. Todos los ficheros de dispositivo de /devestán ahí para permitir a los programas acceder a los dispositivos de Linux. Porejemplo el programa mount toma como argumento el fichero de dispositivo que elusuario desee montar.

El Superbloque contiene una descripción del tamaño y forma base del sistema deficheros. La información contenida permite al administrador del sistema de ficherosusar y mantener el sistema de ficheros. Normalmente sólo se lee el Superbloquedel Grupo de Bloque 0 cuando se monta el sistema de ficheros pero cada Grupode Bloque contiene una copia duplicada en caso de que se corrompa sistema deficheros. Entre otra información contiene:

1. Magic Number: Permite al software de montaje comprobar que esrealmente el Superbloque para un sistema de ficheros EXT2. Para laversión actual de EXT2 éste es 0xEF53.

2. Revision Level: Los niveles de revisión mayor y menor permiten alcódigo de montaje determinar si este sistema de ficheros soporta ono características que sólo son disponibles para revisionesparticulares del sistema de ficheros. También hay campos decompatibilidad que ayudan al código de montaje determinar quenuevas características se pueden usar con seguridad en ese sistemade ficheros.

3. Mount Count and Maximum Mount Count: Juntos permiten alsistema determinar si el sistema de ficheros fue comprobadocorrectamente. El contador de montaje se incrementa cada vez quese monta el sistema de ficheros y cuando es igual al contadormáximo de montaje muestra el mensaje de aviso «maximal mountcount reached, running e2fsck is recommended».

4. Block Group Number: El número del Grupo de Bloque que tiene lacopia de este Superbloque.

5. Block Size: El tamaño de bloque para este sistema de ficheros enbytes, por ejemplo 1024 bytes.

6. Blocks per Group: El número de bloques en un grupo. Como eltamaño de bloque éste se fija cuando se crea el sistema de ficheros.

7. Free Blocks: EL número de bloques libres en el sistema de ficheros.

8. Free Inodes: El número de inodos libres en el sistema de ficheros.

9. First Inode: Este es el número de inodo del primer inodo en elsistema de ficheros. El primer inodo en un sistema de ficheros EXT2raíz seria la entrada directorio para el directorio '/'.

Page 22: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Sistema de Ficheros Proc

El sistema de ficheros /proc muestra realmente la potencia del Sistema Virtual deFicheros. Este sistema no existe en realidad. Éste como el resto de sistemas deficheros, se registra en el VFS. Sin embargo, cuando el VFS hace llamadas al/proc, éste crea los ficheros que le son pedidos con información sobre el kernel.Por ejemplo la llamada al fichero /proc/devices genera a partir de las estructurasdel kernel, un archivo describiendo sus dispositivos.

El sistema de ficheros /proc representa una ventana hacia el interior del kernel.

DISCO DURO

“Los tamaños también han variadomucho, desde los primeros discosIBM hasta los formatosestandarizados actualmente: 3,5 " losmodelos para PC y servidores, 2,5 "los modelos para dispositivosportátiles. Todos se comunican conla computadora a través delcontrolador de disco, empleando unainterfaz estandarizada. Los máscomunes hasta los años 2000 hansido IDE (también llamado ATA oPATA), SCSI (generalmente usadoen servidores y estaciones detrabajo). Desde el 2000 en adelanteha ido masificándose el uso de losSerial ATA. Existe además FC(empleado exclusivamente enservidores).

Para poder utilizar un disco duro, unsistema operativo debe aplicar unformato de bajo nivel que defina unao más particiones. La operación deformateo requiere el uso de unafracción del espacio disponible en eldisco, que dependerá del formatoempleado. Además, los fabricantesde discos duros, unidades de estado

sólido y tarjetas flash miden la capacidad de los mismos usando prefijos SI, queemplean múltiplos de potencias de 1000 según la normativa IEC y IEEE, en lugarde los prefijos binarios, que emplean múltiplos de potencias de 1024, y son losusados por sistemas operativos de Microsoft. Esto provoca que en algunossistemas operativos sea representado como múltiplos 1024 o como 1000, y por

Page 23: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

tanto existan confusiones, por ejemplo un disco duro de 500 GB, en algunossistemas operativos sea representado como 465 GiB (es decir gibibytes; 1 GiB =1024 MiB) y en otros como 500 GB.”4

Las unidades de estado sólido tienen el mismo uso que los discos duros yemplean las mismas interfaces, pero no están formadas por discos mecánicos,sino por memorias de circuitos integrados para almacenar la información. El usode esta clase de dispositivos anteriormente se limitaba a las supercomputadoras,por su elevado precio, aunque hoy en día ya son muchísimo más asequibles parael mercado doméstico. C. Dennis Mee, Eric D. Daniel (1996).

Los discos duros pertenecen a la llamada memoria secundaria o almacenamientosecundario. El disco duro es más rápido, sin embargo su velocidad depende de lazona del disco en que estemos ubicados.

Las características que se deben tener en cuenta en un disco duro son:5

Tiempo medio de acceso: Tiempo medio que tarda la aguja en situarse en lapista y el sector deseado; es la suma del Tiempo medio de búsqueda (situarse enla pista), Tiempo de lectura/escritura y la Latencia media (situarse en el sector).

Tiempo medio de búsqueda: Tiempo medio que tarda la aguja en situarse en lapista deseada; es la mitad del tiempo empleado por la aguja en ir desde la pistamás periférica hasta la más central del disco.

4 Disco duro. Consultado el 2 de septiembre de 2013. http://es.wikipedia.org/wiki/Disco_duro5 ibid

Page 24: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Tiempo de lectura/escritura: Tiempo medio que tarda el disco en leer o escribirnueva información: Depende de la cantidad de información que se quiere leer oescribir, el tamaño de bloque, el número de cabezales, el tiempo por vuelta y lacantidad de sectores por pista.

Latencia media: Tiempo medio que tarda la aguja en situarse en el sectordeseado; es la mitad del tiempo empleado en una rotación completa del disco.

Velocidad de rotación: Revoluciones por minuto de los platos. A mayor velocidadde rotación, menor latencia media.

Velocidad en color AZUL, Latencia en color AMARILLO

La velocidad de rotación y el tamaño del sector siempre son losmismos (independientemente de donde estemos ubicados) ya que son definidospor las revoluciones del motor (4200, 5400, 7200, 10mil y 15mil rpm) y porel sistema de archivos (al momento de formatear).

Dentro de un disco duro hay uno o varios discos (de aluminio o cristal)concéntricos llamados platos (normalmente entre 2 y 4, aunque pueden ser hasta6 ó 7 según el modelo), y que giran todos a la vez sobre el mismo eje, al que estánunidos. El cabezal (dispositivo de lectura y escritura) está formado por un conjuntode brazos paralelos a los platos, alineados verticalmente y que también sedesplazan de forma simultánea, en cuya punta están las cabezas de

Page 25: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

lectura/escritura. Por norma general hay una cabeza de lectura/escritura para cadasuperficie de cada plato. Los cabezales pueden moverse hacia el interior o elexterior de los platos, lo cual combinado con la rotación de los mismos permiteque los cabezales puedan alcanzar cualquier posición de la superficie de losplatos.

Interior de un disco duro; se aprecia la superficie de un plato y el cabezal de lectura/escrituraretraído, a la izquierda. Fuente http://es.wikipedia.org/wiki/Disco_duro

Tasa de transferencia: Velocidad a la que puede transferir la información a lacomputadora una vez que la aguja está situada en la pista y sector correctos.Puede ser velocidad sostenida o de pico.

Otras características son:

- Caché de pista: Es una memoria tipo Flash dentro del disco duro.- Interfaz: Medio de comunicación entre el disco duro y la computadora.

Puede ser IDE/ATA, SCSI, SATA, USB, Firewire, Serial Attached SCSI6.- Landz: Zona sobre las que aparcan las cabezas una vez se apaga la

computadora.

6 Serial Attached SCSI o SAS, es una interfaz de transferencia de datos en serie, sucesor del SCSI (SmallComputer System Interface) paralelo, aunque sigue utilizando comandos SCSI para interaccionar con losdispositivos SAS. Aumenta la velocidad y permite la conexión y desconexión de forma rápida.

Page 26: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Tener forma redondeada y partes mecánicas (motor, cabeza lectora y discos) esuna gran desventaja: La forma redondeada significa que la velocidad delectura/escritura es mejor al comienzo del disco que al final y las partes mecánicasgeneran una latencia significativa en milisegundos.

Cada plato posee dos ojos, y es necesaria una cabeza de lectura/escritura paracada cara. Si se observa el esquema Cilindro-Cabeza-Sector de más abajo, aprimera vista se ven 4 brazos, uno para cada plato. En realidad, cada uno de losbrazos es doble, y contiene 2 cabezas: una para leer la cara superior del plato, yotra para leer la cara inferior. Por tanto, hay 8 cabezas para leer 4 platos, aunquepor cuestiones comerciales, no siempre se usan todas las caras de los discos yexisten discos duros con un número impar de cabezas, o con cabezasdeshabilitadas.

Las cabezas de lectura/escritura nunca tocan el disco, sino que pasan muy cerca(hasta a 3 nanómetros), debido a una finísima película de aire que se forma entreéstas y los platos cuando éstos giran (algunos discos incluyen un sistema queimpide que los cabezales pasen por encima de los platos hasta que alcancen unavelocidad de giro que garantice la formación de esta película). Si alguna de lascabezas llega a tocar una superficie de un plato, causaría muchos daños en él,rayándolo gravemente, debido a lo rápido que giran los platos (uno de 7.200revoluciones por minuto se mueve a 129 km/h en el borde de un disco de 3,5pulgadas).

Page 27: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

La estructura física de un disco es la siguiente: un disco duro se organiza enplatos (PLATTERS), y en la superficie de cada una de sus dos caras existen pistas(TRACKS) concéntricas, como surcos de un disco de vinilo, y las pistas se dividenen sectores (SECTORS). El disco duro tiene una cabeza (HEAD) en cada lado decada plato, y esta cabeza es movida por un motor cuando busca los datosalmacenados en una pista y un sector concreto.

El concepto "cilindro" (CYLINDER) es un parámetro de organización: el cilindroestá formado por las pistas concéntricas de cada cara de cada plato que estánsituadas unas justo encima de las otras, de modo que la cabeza no tiene quemoverse para acceder a las diferentes pistas de un mismo cilindro.

Hay varios conceptos para referirse a zonas del disco:

- Plato: cada uno de los discos que hay dentro del disco duro.- Cara: cada uno de los dos lados de un plato.- Cabeza: número de cabezales.- Pistas: una circunferencia dentro de una cara; la pista 0 está en el borde

exterior.- Cilindro: conjunto de varias pistas; son todas las circunferencias que están

alineadas verticalmente (una de cada cara).- Sector: cada una de las divisiones de una pista. El tamaño del sector no es

fijo, siendo el estándar actual 512 bytes, aunque la IDEMA ha creado uncomité que impulsa llevarlo a 4 KiB. Antiguamente el número de sectorespor pista era fijo, lo cual desaprovechaba el espacio significativamente, yaque en las pistas exteriores pueden almacenarse más sectores que en lasinteriores. Así, apareció la tecnología ZBR (grabación de bits por zonas)que aumenta el número de sectores en las pistas exteriores, y utiliza máseficientemente el disco duro. Así las pistas se agrupan en zonas de pistasde igual cantidad de sectores. Cuanto más lejos del centro de cada plato seencuentra una zona, ésta contiene una mayor cantidad de sectores en suspistas. Además mediante ZBR, cuando se leen sectores de cilindros másexternos la tasa de transferencia de bits por segundo es mayor; por tener lamisma velocidad angular que cilindros internos pero mayor cantidad desectores. Toshiba America Electronic 2009.

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 debloques), que consiste en dividir el disco entero en sectores y asignar a cada unoun único número. Éste es el que actualmente se usa.

Page 28: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

En cuanto a organización lógica, cuando damos formato lógico (el físico, o a bajonivel, viene hecho de fábrica y no es recomendable hacerlo de nuevo, excepto encasos excepcionales, pues podría dejar inutilizado el disco) lo que hacemos esagrupar los sectores en unidades de asignación (CLUSTERS) que es donde sealmacenan los datos de manera organizada. Cada unidad de asignación sólopuede ser ocupado por un archivo (nunca dos diferentes), pero un archivo puedeocupar más de una unidad de asignación.

Dentro de un disco duro hay varios platos (entre 2 y 4), que son discos (dealuminio o cristal) concéntricos y que giran todos a la vez. El cabezal (dispositivode lectura y escritura) es un conjunto de brazos alineados verticalmente que semueven hacia dentro o fuera según convenga, todos a la vez. En la punta dedichos brazos están las cabezas de lectura/escritura, que gracias al movimientodel cabezal pueden leer tanto zonas interiores como exteriores del disco.

Cada plato tiene dos caras, y es necesaria una cabeza de lectura/escritura paracada cara (no es una cabeza por plato, sino una por cara). Si se mira el esquema

Page 29: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Cilindro-Cabeza-Sector (más abajo), a primera vista se ven 4 brazos, uno paracada plato. En realidad, cada uno de los brazos es doble contiene 2 cabezas: unapara leer la cara superior del plato, y otra para leer la cara inferior. Por tanto, hay 8cabezas para leer 4 platos.

Las cabezas de lectura/escritura nunca tocan el disco, sino que pasan muy cerca(hasta a 3 nanómetros) o 3 millonésimas de milímetro. Si alguna llega a tocarlo,causaría muchos daños en el disco, rayándolo gravemente, debido a lo rápido quegiran los platos

Un disco duro suele tener:

Platos en donde se graban los datos, Cabezal de lectura/escritura, Motor que hace girar los platos, Electroimán que mueve el cabezal, circuito electrónico de control, que incluye: interfaz con la computadora,

memoria caché, Bolsita desecante (gel de sílice) para evitar la humedad, Caja, que ha de proteger de la suciedad (aunque a veces no está al vacío) Tornillos, a menudo especiales. Velocidad de rotación: Número de revoluciones por minuto del/de los

plato/s. Ejemplo: 7200rpm.

Capacidad de almacenamiento.

La capacidad de almacenamiento hace referencia a la cantidad de informaciónque puede grabarse o almacenar en un disco duro. Hasta hace poco se medía enGigabytes (GB), actualmente se mide en Terabytes (TB).

Se puede calcular la capacidad de un disco duro con la formula siguiente:

Un disco duro puede tener por ejemplo los datos siguientes, donde el tamaño delsector (bytes por sector) suele ser 512.

16383 cilindros, 16 cabezales y 63 sectores.

En virtud de estos datos el disco duro tendrá una capacidad de 7,8 GB, lo quecorresponde a 8.455.200.768 bytes = 8257032 KB =8063,5 MB si hacemos elcálculo con bytes "auténticos", es decir, si tenemos en cuenta que 1 KB son 1024bytes y no 1000 como indican los fabricantes.

Page 30: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Velocidad de Rotación (RPM)

Es la velocidad a la que gira el disco duro, más exactamente, la velocidad a la quegiran el/los platos del disco, que es donde se almacenan magnéticamente losdatos. La regla es: a mayor velocidad de rotación, más alta será la transferenciade datos, pero también mayor será el ruido y mayor será el calor generado por eldisco duro.

Se mide en número revoluciones por minuto (RPM). No debe comprarse un discoduro IDE de menos de 5400 RPM (ya hay discos IDE de 7200 RPM), a menos quete lo den a un muy buen precio, ni un disco SCSI de menos de 7200RPM (los hayde 10.000 RPM). Una velocidad de 5400 RPM permitirá una transferencia entre10MB y 16MB por segundo con los datos que están en la parte exterior del cilindroo plato, algo menos en el interior.

Tiempo de Acceso (Access Time)

Es el tiempo medio necesario que tarda la cabeza del disco en acceder a los datosque necesitamos. Realmente es la suma de varias velocidades:

El tiempo que tarda el disco en cambiar de una cabeza a otra cuando buscadatos.

El tiempo que tarda la cabeza lectora en buscar la pista con los datossaltando de una a otra.

El tiempo que tarda la cabeza en buscar el sector correcto dentro de lapista.

Es uno de los factores más importantes a la hora de escoger un disco duro.Cuando se oye hacer ligeros clics al disco duro, es que está buscando los datosque le hemos pedido. Hoy en día en un disco moderno, lo normal son 10milisegundos.

Memoria CACHE (Tamaño del BUFFER)

El BUFFER o CACHE es una memoria que va incluida en la controladora internadel disco duro, de modo que todos los datos que se leen y escriben a disco durose almacenan primeramente en el buffer. La regla de mano aquí es 128 KB paradiscos de menos de 1 GB, 256 KB para discos mayores de 1 GB y 512 KB paradiscos duros de 2 GB o mayores. Generalmente los discos duros actuales de másde 10 GB traen 2 MB de memoria cache asociada.

Si un disco duro está bien organizado la serie de datos que se va a necesitar acontinuación de una lectura estará situada en una posición físicamente contigua a

Page 31: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

la última lectura, por eso los discos duros almacenas en la caché los datoscontiguos, para proporcionar un acceso más rápido sin tener que buscarlos.

El buffer es muy útil cuando se está grabando de un disco duro a un CD-ROM,pero en general, cuanto más grande mejor, pues contribuye de modo importante ala velocidad de búsqueda de datos.

Tasa de transferencia (Transfer Rate)

Este número indica la cantidad de datos un disco puede leer o escribir en la partemás exterior del disco o plato en un periodo de un segundo. Normalmente se mideen Mbits/segundo, y hoy en día, en un disco de 5400 RPM, un valor habitual es100 Mbits/s, que equivale a 10 MB/s.

Interfaz: Medio de comunicaciónentre el disco duro y el ordenador.Puede ser IDE/ATA, SCSI, SATA,USB o Firewire.

La memoria flash (usb) carece departes móviles y esto disminuyeenormemente su latencia(retardo). La velocidad delectura/escritura es estable sinimportar la ubicación dentro de lamemoria flash; sin embargo hastaahora no se ha logrado igualar a laofrecida por los discos duros.

Velocidad en color AZUL, Latencia en color AMARILLO

Page 32: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Tal vez lo que muchos no saben es que los discos duros contienen un chip conel controlador específico del fabricante del disco duro (Seagate, Hitachi, Maxtor,Samsung, etc) y que este chip tiene una memoria caché para reducir el número deoperaciones mecánicas de lectura/escritura.

En conclusión, la parte de la alta velocidad de los discos duros se debe a laexistencia de un chip que funciona bajo los mismos principios de las memoriasflash (no partes mecánicas y baja latencia).

Se puede observar el chip principal controlador del disco duro. Es un chipcontrolador SATA, que además incluye los 16MB de memoria caché especificadosen el disco duro.

Adicionalmente: No todas las BIOS son memorias FLASH (hay Bios PLCC y DIP),pero modernamente la tendencia ha sido FLASH.

Page 33: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Tipos de conexión7

Existen distintos tipos de conexión asociados a los discos duros que poseen losmismos con la placa base, es decir pueden ser SATA, IDE, SCSI o SAS:

- IDE: Integrated Drive Electronics ("Dispositivo electrónico integrado") o ATA(Advanced Technology Attachment), controla los dispositivos dealmacenamiento masivo de datos, como los discos duros y ATAPI(Advanced Technology Attachment Packet Interface) Hastaaproximadamente el 2004, el estándar principal por su versatilidad yasequibilidad. Son planos, anchos y alargados.

- SCSI: Son interfaces preparadas para discos duros de gran capacidad dealmacenamiento y velocidad de rotación. Se presentan bajo tres

7 Ibidem.

Page 34: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (FastSCSI) y SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de accesopuede llegar a 7 milisegundos y su velocidad de transmisión secuencial deinformación puede alcanzar teóricamente los 5 Mbit/s en los discos SCSIEstándares, los 10 Mbit/s en los discos SCSI Rápidos y los 20 Mbit/s en losdiscos SCSI Anchos-Rápidos (SCSI-2). Un controlador SCSI puedemanejar hasta 7 discos duros SCSI (o 7 periféricos SCSI) con conexión tipomargarita (daisy-chain). A diferencia de los discos IDE, pueden trabajarasincrónicamente con relación al microprocesador, lo que posibilita unamayor velocidad de transferencia.

- SATA (Serial ATA): El más novedoso de los estándares de conexión,utiliza un bus serie para la transmisión de datos. Notablemente más rápidoy eficiente que IDE. Existen tres versiones, SATA 1 con velocidad detransferencia de hasta 150 MB/s (hoy día descatalogado), SATA 2 de hasta300 MB/s, el más extendido en la actualidad; y por último SATA 3 de hasta600 MB/s el cual se está empezando a hacer hueco en el mercado.Físicamente es mucho más pequeño y cómodo que los IDE, además depermitir conexión en caliente.

- SAS (Serial Attached SCSI): Interfaz de transferencia de datos en serie,sucesor del SCSI paralelo, aunque sigue utilizando comandos SCSI parainteraccionar con los dispositivos SAS. Aumenta la velocidad y permite laconexión y desconexión en caliente. Una de las principales característicases que aumenta la velocidad de transferencia al aumentar el número dedispositivos conectados, es decir, puede gestionar una tasa detransferencia constante para cada dispositivo conectado, además determinar con la limitación de 16 dispositivos existente en SCSI, es por elloque se vaticina que la tecnología SAS irá reemplazando a su predecesoraSCSI. Además, el conector es el mismo que en la interfaz SATA y permiteutilizar estos discos duros, para aplicaciones con menos necesidad develocidad, ahorrando costes. Por lo tanto, las unidades SATA pueden serutilizadas por controladoras SAS pero no a la inversa, una controladoraSATA no reconoce discos SAS.

Dimensiones de los DD8

La dimensión de los DD está asociada a un concepto denominado "factor deforma", heredada da las dimensiones de las disqueteras. Pueden ser montados en

8 Ibídem.

Page 35: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

los mismos chasis y así los discos duros con factor de forma, pasaron a llamarsecoloquialmente tipos FDD "floppy-disk drives".

La compatibilidad del "factor de forma" continua siendo de 3½ pulgadas (8,89 cm)incluso después de haber sacado otros tipos de disquetes con unas dimensionesmás pequeñas.

- 8 pulgadas: 241,3×117,5×362 mm (9,5×4,624×14,25 pulgadas). En 1979,Shugart Associates sacó el primer factor de forma compatible con los discoduros, SA1000, teniendo las mismas dimensiones y siendo compatible conla interfaz de 8 pulgadas de las disqueteras. Había dos versionesdisponibles, la de la misma altura y la de la mitad (58,7mm).

- 5,25 pulgadas: 146,1×41,4×203 mm (5,75×1,63×8 pulgadas). Este factor deforma es el primero usado por los discos duros de Seagate en 1980 con elmismo tamaño y altura máxima de los FDD de 5¼ pulgadas, por ejemplo:82,5 mm máximo.

Éste es dos veces tan alto como el factor de 8 pulgadas, que comúnmentese usa hoy; por ejemplo: 41,4 mm (1,64 pulgadas). La mayoría de losmodelos de unidades ópticas (DVD/CD) de 120 mm usan el tamaño del

Page 36: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

factor de forma de media altura de 5¼, pero también para discos duros. Elmodelo Quantum Bigfoot es el último que se usó a finales de los 90'.

- 3,5 pulgadas: 101,6×25,4×146 mm (4×1×5.75 pulgadas). Este factor deforma es el primero usado por los discos duros de Rodine que tienen elmismo tamaño que las disqueteras de 3½, 41,4 mm de altura. Hoy ha sidoen gran parte remplazado por la línea "slim" de 25,4mm (1 pulgada), o "low-profile" que es usado en la mayoría de los discos duros.

- 2,5 pulgadas: 69,85×9,5-15×100 mm (2,75×0,374-0,59×3,945 pulgadas).Este factor de forma se introdujo por PrairieTek en 1988 y no secorresponde con el tamaño de las lectoras de disquete. Este esfrecuentemente usado por los discos duros de los equipos móviles(portátiles, reproductores de música, etc...) y en 2008 fue reemplazado porunidades de 3,5 pulgadas de la clase multiplataforma. Hoy en día ladominante de este factor de forma son las unidades para portátiles de 9,5mm, pero las unidades de mayor capacidad tienen una altura de 12,5 mm.

- 1,8 pulgadas: 54×8×71 mm. Este factor de forma se introdujo por IntegralPeripherals en 1993 y se involucró con ATA-7 LIF con las dimensionesindicadas y su uso se incrementa en reproductores de audio digital y susubnotebook. La variante original posee de 2GB a 5GB y cabe en unaranura de expansión de tarjeta de ordenador personal. Son usadosnormalmente en iPods y discos duros basados en MP3.

- 1 pulgadas: 42,8×5×36,4 mm. Este factor de forma se introdujo en 1999 porIBM y Microdrive, apto para los slots tipo 2 de compact flash, Samsungllama al mismo factor como 1,3 pulgadas.

- 0,85 pulgadas: 24×5×32 mm. Toshiba anunció este factor de forma el 8 deenero de 2004 para usarse en móviles y aplicaciones similares, incluyendoSD/MMC slot compatible con disco duro optimizado para vídeo yalmacenamiento para micromóviles de 4G. Toshiba actualmente vendeversiones de 4GB (MK4001MTD) y 8GB (MK8003MTD) 5 y tienen elRecord Guinness del disco duro más pequeño. Los principales fabricantessuspendieron la investigación de nuevos productos para 1 pulgada (1,3pulgadas) y 0,85 pulgadas en 2007, debido a la caída de precios de lasmemorias flash, aunque Samsung introdujo en el 2008 con el SpidPoint A1otra unidad de 1,3 pulgadas.

Page 37: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

El nombre de "pulgada" para los factores de forma normalmente no identificaningún producto actual (son especificadas en milímetros para los factores deforma más recientes), pero estos indican el tamaño relativo del disco, para interésde la continuidad histórica.

Estructura lógica del DD

Dentro del disco se encuentran:

- El Master Boot Record (en el sector de arranque), que contiene la tabla departiciones. El sector de arranque o bloque de arranque, es un sector de undisco duro, disquete, o cualquier otro dispositivo de almacenamiento dedatos que contiene código de arranque, por lo general (pero nonecesariamente), de un sistema operativo almacenado en otros sectoresdel disco. La BIOS selecciona un dispositivo de arranque, entonces copiaal primer sector de disco desde el dispositivo (el cual puede ser un MBR,VBR o un código ejecutable), a la ubicación de dirección de disco 0x7C00.

- Las particiones, necesarias para poder colocar los sistemas de archivos.

La tabla de particiones está alojada en el Master Boot Record a partir del byte 446y ocupa 64 bytes, conteniendo 4 registros de 16 bytes, los cuales definen lasparticiones primarias. En ellos se almacena toda la información básica sobre lapartición: si es arrancable, si no lo es, el formato, el tamaño y el sector de inicio.

Un registro de partición se organiza de la siguiente forma:9

512bytes

Primer sector físico del disco duro (pista cero)

446bytes

Código del gestor de arranque

64bytes

16bytes

Primera partición

1 byteMarca de arranque si el bit 7 está activo es una partición dearranque, los otros bits deben ser ceros.

3bytes

CHS de inicio

1 byte Tipo de partición

9 Tabla de particiones. Consultado el 2 de septiembre de 2013.http://es.wikipedia.org/wiki/Tabla_de_particiones

Page 38: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

3bytes

CHS final

4bytes

LBA

4bytes

Tamaño en sectores

16bytes

Segunda partición

1 byteMarca de arranque si el bit 7 está activo es una partición dearranque, los otros bits deben ser ceros.

3bytes

CHS de inicio

1 byte Tipo de partición

3bytes

CHS final

4bytes

LBA

4bytes

Tamaño en sectores

16bytes

Tercera partición

1 byteMarca de arranque si el bit 7 está activo es una partición dearranque, los otros bits deben ser ceros.

3bytes

CHS de inicio

1 byte Tipo de partición

3bytes

CHS final

4 LBA

Page 39: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

bytes

4bytes

Tamaño en sectores

16bytes

Cuarta partición

1 byteMarca de arranque si el bit 7 está activo es una partición dearranque, los otros bits deben ser ceros.

3bytes

CHS de inicio

1 byte Tipo de partición

3bytes

CHS final

4bytes

LBA

4bytes

Tamaño en sectores

2 bytes Firma de unidad arrancable ("55 AA" en hexadecimal)

En los sistemas Windows, la tabla de particiones no es la única información vitaldel MBR. Desde Windows NT 4, Microsoft mantiene 4 bytes a partir de la posición0x1B8 que sirven de identificador de la unidad física completa. Es utilizada por elsistema para referenciarla de manera independiente a la letra de unidad o bus deconexión.

El identificador se mantiene en diferentes lugares del registro, y es una pieza clavedurante el arranque del sistema. Una prueba realizada en Windows Vista haceinarrancable el sistema tras un cambio de esos cuatro bytes. El mensaje de errormostrado culpa del problema a un cambio de hardware o software.

GNU/Linux también hace uso de ese identificador desde la versión del kernel 2.6.

Page 40: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

PARTICIONES

Los sistemas operativos no trabajan con unidades físicas directamente sino conunidades lógicas. Cada una de estas unidades lógicas constituye una partición deldisco duro.

Particiones y directorios.— Ambas estructuras permiten organizar datos dentrode un disco duro. Sin embargo, presentan importantes diferencias:

1ª) Las particiones son divisiones de tamaño fijo del disco duro; los directorios sondivisiones de tamaño variable de la partición;

2ª) Las particiones ocupan un grupo de cilindros contiguos del disco duro (mayorseguridad); los directorios suelen tener su información desperdigada por toda lapartición;

3ª) Cada partición del disco duro puede tener un sistema de archivos (sistemaoperativo) distinto; todos los directorios de la partición tienen el sistema dearchivos de la partición.

Las particiones pueden ser primarias extendidas y lógicas.

Las particiones lógicas se definen dentro de una partición primaria especialdenominada partición extendida.

La partición activa es aquella a la que el programa de inicialización (Master Boot)cede el control al arrancar. El sistema operativo de la partición activa será el quese cargue al arrancar desde el disco duro.

Estructura lógica de las particiones

Dependiendo del sistema de archivos utilizado en cada partición, su estructuralógica será distinta. En los casos de MS-DOS y Windows 98, Windows XP estáformada por sector de arranque (MBR), FAT o NTFS, copia de la FAT, directorioraíz y área de datos. De todas formas, el sector de arranque es un elementocomún a todos los tipos de particiones.

Page 41: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Todas las particiones tienen un sector de arranque (el primero de la partición) coninformación relativa a la partición. Si la partición tiene instalado un sistemaoperativo, este sector se encargará de arrancarlo. Si no hubiese ningún sistemaoperativo (como es el caso de una partición para datos) y se intentara arrancar,mostraría un mensaje de error.

Tipos de particiones

El formato o sistema de archivos de las particiones (p. ej. NTFS) no debe serconfundido con el tipo de partición (p. ej. partición primaria), ya que en realidad notienen directamente mucho que ver. Independientemente del sistema de archivosde una partición (FAT, ext3, NTFS, etc.), existen 3 tipos diferentes de particiones:

• Partición primaria: Son las divisiones crudas o primarias del disco, solopuede haber 4 de éstas o 3 primarias y una extendida. Depende de una tabla departiciones. Un disco físico completamente formateado consiste, en realidad, deuna partición primaria que ocupa todo el espacio del disco y posee un sistema dearchivos. A este tipo de particiones, prácticamente cualquier sistema operativopuede detectarlas y asignarles una unidad, siempre y cuando el sistema operativoreconozca su formato (sistema de archivos).

En los equipos PC, originales de IBM, estas particiones tradicionalmente usan unaestructura llamada Tabla de particiones, ubicada al final del registro de arranquemaestro (MBR, Master Boot Record). Esta tabla, que no puede contener más de 4registros de particiones (también llamados partition descriptors), específica paracada una su principio, final y tamaño en los diferentes modos de direccionamiento,así también como un solo número, llamado partition type, y un marcador queindica si la partición está activa o no (sólo puede haber una partición activa a lavez).

El marcador se usa durante el arranque; después de que el BIOS cargue elregistro de arranque maestro en la memoria y lo ejecute, el MBR de DOScomprueba la tabla de partición a su final y localiza la partición activa. Entonces

Page 42: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

carga el sector de arranque de esta partición en memoria y la ejecuta. A diferenciadel registro de arranque maestro, generalmente independiente del sistemaoperativo, el sector de arranque está instalado junto con el sistema operativo ysabe cómo cargar el sistema ubicado en ese disco en particular.

Notar que mientras la presencia de un marcador activo se estandariza, no seutiliza en todos los gestores de arranque. Por ejemplo, los gestores LILO, GRUB(muy comunes en el sistema Linux) y XOSL no buscan en la tabla de particionesdel MBR la partición activa; simplemente cargan una segunda etapa (que puedeser contenida en el resto del cilindro 0 ó en el sistema de archivos). Después decargar la segunda etapa se puede cargar el sector de arranque de cualquiera delas particiones del disco (permitiendo al usuario seleccionar la partición), o si elgestor conoce cómo localizar el kernel (núcleo) del sistema operativo en una delas particiones (puede permitir al usuario especificar opciones de kerneladicionales para propósitos de recuperación estratégicos.

Particiones extendidas y lógicas

Cualquier versión del DOS puede leer sólo una partición FAT primaria en el discoduro. Esto unido al deterioro de la FAT con el uso y al aumento de tamaño de losdiscos movió a Microsoft a crear un esquema mejorado relativamente simple: unade las entradas de la tabla de partición principal pasó a llamarse particiónextendida y recibió un número de tipo de partición especial (0x05). El campo iniciode partición tiene la ubicación del primer descriptor de la partición extendida, que asu vez tiene un campo similar con la ubicación de la siguiente; así se crea una listaenlazada de descriptores de partición. Los demás campos de una particiónextendida son indefinidos, no tienen espacio asignado y no pueden usarse paraalmacenar datos.

Page 43: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Las particiones iniciales de los elementos de la lista enlazada son las llamadasunidades lógicas; son espacios asignados y pueden almacenar datos. Lossistemas operativos antiguos ignoraban las particiones extendidas con número detipo 0x05, y la compatibilidad se mantenía. Este esquema reemplaza al antiguo yaque todas las particiones de un disco duro se pueden poner dentro de una solapartición extendida. Por alguna razón, Microsoft no actualizó su sistema operativoDOS para arrancar desde una partición extendida, debido a que la necesidad paraparticiones primarias se preservará. Por encima de éstas todavía se habríapermitido una partición FAT primaria por unidad, significando todas las otrasparticiones FAT primarias deben tener sus números de tipo de partición priorcambiando al arranque DOS, para que ésta sea capaz de proceder. Esta técnica,usada por varios administradores de arranque populares, se llama ocultación de lapartición. Sin embargo hay que tener en cuenta una quinta partición que se puedecomprimir pero no es muy recomendable.

Gestores de arranque

Si instala diferentes Sistemas Operativos en un mismo computador, el equipotendrá que utilizar un sistema para poder seleccionar qué Sistema Operativodesea iniciar. El gestor de arranque es un programa que se ejecuta una vezcompletado el inicio normal de la BIOS y que permite seleccionar el SistemaOperativo en caso de disponer de un arranque múltiple.

Entre los principales gestores de arranque se encuentran:10

NTLDR (NT Loader). Es el archivo encargado del arranque de los SistemasOperativos Windows NT, Windows 2000, Windows XP y Windows Server 2003. Seencuentra, normalmente, en el directorio raíz del disco del sistema y requiere,como mínimo, que se encuentre en dicho directorio raíz el archivo boot.ini, quecontiene el menú de opciones de inicio, y el archivo NTDETECT.COM que es elque se encarga de iniciar el sistema seleccionado.

El Administrador de arranque de Windows (Bootmgr). Es el archivo encargadodel arranque de los Sistemas Operativos Windows Vista, Windows 7 y 8, y

10 Antes de instalar un Sistema Operativo - conoce el disco duro y sus particiones. Consultado el 1 deseptiembre de 2013. http://www.lasticenelaula.es/portal/index.php/ubuntu-1204-lts/instalacion-del-sistema/645-antes-de-instalar-conoce-el-disco-duro-y-sus-particiones

Page 44: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Windows Server 2008. Se encuentra, normalmente, en el directorio raíz del discodel sistema. Controla el proceso de arranque mostrando el menú multiarranque (sihubiera más de un Sistema Operativo) instalado en el disco). Después llama alarchivo WinLoad.exe que es el cargador del Sistema Operativo Windows y darápaso al archivo ntoskrnl.exe, que se encargará del resto del arranque del sistema.Puedes localizar el archivo WinLoad.exe en el directorio \Windows\system32

Lilo (Linux Loader). Es un gestor de arranque de Linux que permite iniciar esteSistema Operativo junto con otras plataformas (como Windows) que haya en elmismo ordenador. Funciona en una gran variedad de sistemas de archivos ypuede arrancar un Sistema Operativo desde el disco duro o desde un discoflexible externo.

Grub. Es un gestor de arranque más moderno y flexible que el anterior, ya quepermite que el administrador ejecute cualquier comando desde la línea decomando de Grub. Entre todas sus características hay que destacar la posibilidadde incluir múltiples formatos de ejecutables, el arranque de Sistemas Operativosno-multiarranque, una agradable interfaz de usuario y una interfaz de línea decomando muy flexible.

• Partición extendida: También conocida como partición secundaria es otrotipo de partición que actúa como una partición primaria; sirve para contenerinfinidad de unidades lógicas en su interior. Fue ideada para romper la limitaciónde 4 particiones primarias en un solo disco físico. Solo puede existir una particiónde este tipo por disco, y solo sirve para contener particiones lógicas. Por lo tanto,es el único tipo de partición que no soporta un sistema de archivos directamente.

• Partición lógica: Ocupa una porción de la partición extendida o la totalidadde la misma, la cual se ha formateado con un tipo específico de sistema dearchivos (FAT32, NTFS, ext2,...) y se le ha asignado una unidad, así el sistemaoperativo reconoce las particiones lógicas o su sistema de archivos. Puede haberun máximo de 23 particiones lógicas en una partición extendida. Linux impone unmáximo de 15, incluyendo las 4 primarias, en discos SCSI y en discos IDE 8963.

Ventajas y desventajas de particiones de disco.

Ventajas de un disco duro particionado:

La principal ventaja de particionar un disco duro viene de la segunda opción.Tener una partición exclusiva para los archivos personales del usuario, es ideal ala hora de instalar de cero el sistema operativo.

En una de las particiones se mantiene el sistema operativo y en la otra losarchivos del usuario (documentos, e-mails, descargas, música, etc.). Si senecesita formatear e instalar de cero el sistema por cualquier inconveniente,simplemente se procede a formatear la partición que contiene el sistemaoperativo, dejando intacta la otra.

Page 45: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Esto nos ahorra mucho tiempo, dado que no debemos guardar toda esainformación en otra unidad de almacenamiento.

De todas maneras, emplear una partición como respaldo no es buena idea (seexplica más abajo), siempre se recomienda tener el respaldo en otra unidad dealmacenamiento.

Desventajas de un disco duro particionado:

Si se usa una de las particiones como respaldo, no es muy seguro que digamos.Si se rompe el disco duro, se pueden ver afectadas ambas particiones. Recuerdeque ambas están en el mismo disco físico, aunque en diferentes áreas de éste.

Tampoco particionar aumenta la velocidad del disco duro, de hecho, puedeproducir un mayor desgaste del mecanismo interno del disco. Es es porquecuando se particiona un disco duro en dos, se crean dos áreas de trabajo. Esdecir, dos anillos concéntricos, siendo el anillo interior el de la unidad C, y el anilloexterno generalmente el de la unidad D.

Pero generalmente la aguja de lectura/escritura del disco duro suele trabajarmayormente en el anillo interno (unidad C), y no mucho en el externo, lo quepuede ocasionar, a la larga, un desgaste del motor de la aguja.

Nuevas generaciones de DD.

Actualmente la nueva generación de discos duros utiliza la tecnología degrabación perpendicular (PMR), la cual permite mayor densidad dealmacenamiento. También existen discos llamados "Ecológicos" (GP - GreenPower), los cuales hacen un uso más eficiente de la energía.

Page 46: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Comparativa de Unidades de estado sólido y discos duros

Una unidad de estado sólido o SSD (acrónimo en inglés de solid-state drive) es undispositivo de almacenamiento de datos que puede estar construido con memoriano volátil o con memoria volátil. Las no volátiles son unidades de estado sólidoque como dispositivos electrónicos, están construidos en la actualidad con chipsde memoria flash.11 No son discos, pero juegan el mismo papel a efectos prácticosaportando más ventajas que inconvenientes tecnológicos. Por ello se estáempezando a vislumbrar en el mercado la posibilidad de que en el futuro ese tipode unidades de estado sólido terminen sustituyendo al disco duro paraimplementar el manejo de memorias no volátiles en el campo de la ingenieríainformática.

Esos soportes son muy rápidos ya que no tienen partes móviles y consumenmenos energía. Todo esto les hace muy fiables y físicamente duraderos. Sinembargo su costo por GB es aún muy elevado respecto al mismo coste de GB enun formato de tecnología de Disco Duro siendo un índice muy importante cuando

11 Memoria no volátil, contraria a memoria volátil, es un tipo de memoria que no necesita energía paraperdurar. Algunos dispositivos listados en esta categoría son:

- BD-ROM, BD-R, BD-RW- CD, CD-ROM, CD-R, CD-RW- Cinta magnética- DVD- Diskette- Disco duro- EPROM- EEPROM- MRAM- Memoria de tambor- Flash- NVRAM- PRAM- PROM- ROM- Memoria racetrack

Fuente. Floyd, T.L, Fundamentos de Sistemas Digitales, Sexta Edición, Ed. Prentice Hall, Madrid, ISBN 84-89660-21-2, pp. 599, 1997.

Page 47: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

hablamos de las altas necesidades de almacenamiento que hoy se miden enorden de Terabytes.( Comparativas de precios SSD versus disco duro. 2010).

A pesar de ello la industria apuesta poreste vía de solución tecnológica parael consumo doméstico (Discos deestado sólido 2010) aunque se ha deconsiderar que estos sistemas han deser integrados correctamente(Comparativa entre disco duro. 2008)tal y como se está realizando en elcampo de la alta computación.(Primera supercomputadora 2013).

Unido a la reducción progresiva decostes quizás esa tecnología recorra elcamino de aplicarse como métodogeneral de archivo de datosinformáticos energéticamenterespetuosos con el medio natural sioptimiza su función lógica dentro de

los sistemas operativos actuales. (La verdad sobre el consumo de energía 2013).

Los discos que no son discos: Las Unidades de estado sólido han sidocategorizadas repetidas veces como "discos", cuando es totalmente incorrectodenominarlas así, puesto que a diferencia de sus predecesores, sus datos no sealmacenan sobre superficies cilíndricas ni platos. Esta confusión conllevahabitualmente a creer que "SSD" significa Solid State Disk, en vez de Solid StateDrive. (Seagate 2013)

Unidades híbridas

Las unidades híbridas son aquellas que combinan las ventajas de las unidadesmecánicas convencionales con las de las unidades de estado sólido. Consisten enacoplar un conjunto de unidades de memoria flash dentro de la unidad mecánica,utilizando el área de estado sólido para el almacenamiento dinámico de datos deuso frecuente (determinado por el software de la unidad) y el área mecánica parael almacenamiento masivo de datos. Con esto se logra un rendimiento cercano alde unidades de estado sólido a un costo sustancialmente menor. En el mercadoactual (2012), Seagate ofrece su modelo "Momentus XT" con esta tecnología.(Seagate 2013).

Tabla de asignación de archivos. FAT (file allocation table)

Es un sistema de archivos desarrollado para MS-DOS, así como el sistema dearchivos principal de las ediciones no empresariales de Microsoft Windows hastaWindows Me.

Page 48: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

FAT (File Allocate Table, tabla de asignación de archivos) Este sistema dearchivos se basa, como su nombre indica, en una tabla de asignación de archivoso FAT. Esta tabla es el índice del disco. Almacena los grupos utilizados por cadaarchivo, los grupos libres y los defectuosos. Como consecuencia de lafragmentación de archivos, es corriente que los distintos grupos que contienen unarchivo se hallen desperdigados por toda la partición. La FAT es la encargada deseguir el rastro de cada uno de los archivos por la partición.

Grupo. — Un grupo, cluster o unidad de asignación es la unidad mínima dealmacenamiento de un archivo en una partición y está formada por uno o variossectores contiguos del disco. 4 sectores consecutivos de 512 bytes).

La FAT, es un formato para disquetes admitido prácticamente por todos los SOexistentes para computadores personales. Sobra decir, que aunque el formato dedisquetes prácticamente ha desaparecido, la FAT aun se usa, por lo que se deberepasar o recordar sus características. Así, la FAT se utiliza como mecanismo deintercambio de datos entre sistemas operativos distintos que coexisten en unmismo computador, lo que se conoce como entorno multiarranque. También seutiliza en tarjetas de memoria y dispositivos similares.

Las implementaciones más extendidas de FAT tienen algunas desventajas.Cuando se borran y se escriben nuevos archivos tiende a dejar fragmentosdispersos de éstos por todo el soporte. Con el tiempo, esto hace que el proceso delectura o escritura sea cada vez más lento. La denominada desfragmentación es lasolución a esto, pero es un proceso largo que debe repetirse regularmente paramantener el sistema de archivos en perfectas condiciones. FAT tampoco fue

Page 49: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

diseñado para ser redundante ante fallos. Inicialmente solamente soportabanombres cortos de archivo: ocho caracteres para el nombre más tres para laextensión. También carece de permisos de seguridad: cualquier usuario puedeacceder a cualquier archivo.

FAT12

Es un sistema de archivos para disquete, por lo que tiene varias limitaciones:

No soporta anidación de carpeta, es decir, que el sistema no puedecontener subdirectorios; o lo mismo, que dentro de una carpeta no puedenhaber otras carpetas. Cabe mencionar, que esto sólo ocurre en FAT 12, apartir de ella, si es posible. La causa es porque no soportaba metadatos,(los que asignan atributos para un fichero), en concreto no podía distinguirel campo st_mode si fuera un fichero o un directorio.

Las direcciones de bloque solamente contienen 12 bits. Esto complica laimplementación.

El tamaño del disco se almacena como una cuenta de 16 bits expresada ensectores, lo que limita el espacio manejable a 32MB.

Estructura de la FAT12 en un disquete de 1,44M:

512 Byte

Primer sector físico del disco flexible (Pista Cero)3 Byte Código máquina12 de salto ( jmp short 0x3E; nop ) 0EBh 03Ch 090h

8 Byte Cadena que identifica el fabricante del disco 'mkdosfs',0

2 Byte Bytes por sector 512

1 Byte Sectores por cluster 1

2 Byte Sectores reservados 1

1 Byte Número de FAT's 2

2 Byte Entradas máximas en directorio raíz 244

2 Byte Sectores totales 2880

1 Byte Descriptor de medio (0F0h para discos de 1'44M) 240

2 Byte Sectores por fat 9

2 Byte Sectores por pista 12

2 Byte Número de caras 2

12 Es el sistema de códigos directamente interpretable por un circuito microprogramable, como una CPU o elmicrocontrolador de un autómata (un PLC). Este lenguaje está compuesto por un conjunto de instruccionesque determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadenade estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmenteejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos.El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto deinstrucciones disponibles pueda ser similar entre ellas.

Page 50: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

4 Byte Sectores ocultos 0

4 Byte Longitud total de sectores 0

1 Byte Número de unidad 0

1 Byte Banderas 0

1 Byte Firma (029h) 41

4 Byte Número de serie 4294967295

12 Byte Etiqueta de volumen 'DISCO EJPLO '

8 Byte Identificador de formato 'FAT12 '

446 Byte Código máquina del cargador de arranque [...]

2 Byte Firma de unidad arrancable 055AAh

FAT16

En este formato se eliminó el contador de sectores de 16 bits. El tamaño de lapartición ahora estaba limitado por la cuenta de sectores por clúster, que era de 8bits. Esto obligaba a usar clusters de 32Kbytes con los usuales 512 bytes porsector. Así que el límite definitivo de FAT16 se situó en los 2GB.

Esta mejora estuvo disponible en 1988 con la versión MS-DOS 4.0. Luego,Windows NT aumentó el tamaño máximo del cluster a 64 kilobytes. No obstante, elformato resultante no era compatible con otras implementaciones de la época, yademás, generaba mucha fragmentación interna (se ocupaban clusters enterosaunque solamente se precisaran unos pocos bytes).

FAT32

El sistema FAT32 permite trabajar conparticiones mayores de 2 GB. Nosolamente esto, sino que además eltamaño del grupo (cluster) es mucho menory no se desperdicia tanto espacio comoocurría en las particiones FAT.

Microsoft decidió implementar una nuevageneración de FAT utilizando direccionesde cluster de 32 bits (aunque sólo 28 deesos bits se utilizaban realmente).Teóricamente, esto permitíaaproximadamente 268.435.538 clusters, arrojando tamaños de almacenamientocercanos a los 8TB. Sin embargo, debido a limitaciones en la utilidad ScanDisk deMicrosoft, no se permite que FAT32 crezca más allá de 4.177.920 clusters porpartición (es decir, unos 124 GB). Posteriormente, Windows 2000 y XP situaron ellímite de FAT32 en los 32GB. Microsoft afirma que es una decisión de diseño, sinembargo, es capaz de leer particiones mayores creadas por otros medios.

Page 51: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

El tamaño máximo de un archivo en FAT32 es 4GB (232−1 bytes), lo que resultaengorroso para aplicaciones de captura y edición de video, ya que los archivosgenerados por éstas superan fácilmente ese límite.

En la siguiente tabla, se comparan los tamaños de grupo utilizados según eltamaño de la partición y el sistema de archivos empleado:

Tamaño de la particiónTamaño del cluster

FAT FAT32

< 128 MB 2 KB

No soportado128 MB - 256 MB 4 KB

256 MB - 512 MB 8 KB

512 MB - 1 GB 16 KB

4 KB1 GB - 2 GB 32 KB

2 GB - 8 GB

No soportado8 GB - 16 GB 8 KB

16 GB - 32 GB 16 KB

32 GB - 2 TB 32 KB

La familia de las FAT, se resume en el siguiente cuadro:

FAT12 FAT16 FAT32Desarrollador Microsoft

Nombre completoTabla de Asignación de Archivos

(versión de 12 bits) (versión de 16 bits) (versión de 32bits)

Introducido 1977 (Microsoft Julio de 1988 (MS- Agosto

Page 52: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Existen otros sistemas operativos como GNU/Linux, FreeBSD y BeOS quesoportan FAT, y la mayoría también soportan VFAT y FAT32 en menor extensión.Las primeras ediciones de GNU/Linux también apoyaron un formato conocidocomo UMSDOS. Este consistía en una variante de FAT que admitía los permisosde seguridad en Unix, además de los nombres largos de éste. Para ello, se

Disk BASIC) DOS 4.0) de 1996 (Windows95 OSR2)

Identificador departición 0x01 (MBR) 0x04, 0x06, 0x0E

(MBR)

0x0B, 0x0C (MBR)EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT)

Estructuras FAT12 FAT16 FAT32Contenido de carpeta TablaUbicación de archivo Lista enlazadaBloques defectuosos Lista enlazada

Límites FAT12 FAT16 FAT32Tamaño máximo dearchivo 32 MB 2 GB 4 GB

Número máximo dearchivos 4.077 65.517 268.435.437

Longitud máxima delnombre de archivo

8.3 (11) o 255 caracteres cuando se usan LFNs (Long FileNames)

Tamaño máximo delvolumen 2 MB 2 GB 2 TB

Características FAT12 FAT16 FAT32Fechas almacenadas Creación, modificación, acceso

Rango defechas soportado 1 de enero de 1980 - 31 de diciembre de 2107

Metadatos No de modo nativoAtributos Sólo lectura, oculto, sistema, archivo, nombre del volumen

Permisos No

Compresióntransparente

Por volumen,Stacker,DoubleSpace,DriveSpace

No

Cifrado transparente Por volumen sólocon DR-DOS No

Page 53: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

almacenaba esta información en un archivo FAT separado que se denominaba "--linux--.---" .

UMSDOS quedó en desuso con la aparición de VFAT en recientes versiones delnúcleo Linux. El SO Mac OS X también soporta sistemas de archivos FAT,siempre que no se trate del volumen de arranque del sistema. Esto significa que ala hora de efectuar un formateo del sistema operativo sobre plataforma MAC, ni seles ocurra usar este formato.

VFAT (Virtual FAT)

Este sistema de archivos logra remediar uno de los mayores problemas delsistema FAT: los nombres de archivos y directorios sólo podían contener 8caracteres de nombre y 3 de extensión. Con VFAT, se logra ampliar este límite a255 caracteres entre nombre y extensión.

La mayor ventaja de VFAT es que tiene plena compatibilidad con FAT. Porejemplo, es factible utilizar la misma partición para dos sistemas operativos queutilicen uno FAT y otro VFAT (MS-DOS y Windows 95). Cuando entremos desdeMS-DOS, los nombres largos de archivos se transforman en nombres cortossegún unas reglas establecidas, y pueden ser utilizados de la manera habitual. Detodas maneras, hay que prestar cierta atención cuando se trabaja desde MS-DOScon archivos que tienen nombres largos: no se deben realizar operaciones decopiado o borrado, ya que se corre el riesgo de perder el nombre largo del archivoy quedarnos sólo con el corto. Desde Windows 95, se trabaja de formatransparente con nombres cortos y largos

Nota. Microsoft desde la versión de Windows XP no siguió soportando lossistemas operativos basados en MS-DOS, solo aparece en su archivo como unrecuerdo de su antigua kernel, por lo que pensar en nuevas versiones de FAT espoco probable. Ahora, para el caso de NTFS, es un sistema de archivos superioral FAT en múltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principaldesventaja es el excesivo tamaño que desperdicia en pequeños volúmenes y sulimitado soporte en otros sistemas operativos. Sus especificaciones son un secretocomercial; no obstante, esto está cambiando, ya es posible leer y escribir enparticiones NTFS en Linux con herramientas como NTFS-3G13.

FAT es actualmente el sistema de archivos habitual en medios de almacenamientoextraíbles, a excepción de CDs y DVDs. FAT12 se usa en disquetes, y FAT16 en

13 NTFS-3G es un controlador estable de NTFS para Linux, Mac OS X, FreeBSD, BeOS y Haiku con licenciaGNU GPL y de código abierto. Al contrario que el driver NTFS incluido en el kernel Linux, tiene muy pocaslimitaciones en cuanto a la escritura de archivos: permite crear, renombrar, mover o borrar ficheros decualquier tamaño en particiones NTFS, con la excepción de ficheros cifrados.(http://www.tuxera.com/community/ntfs-3g-faq/#questions)

Page 54: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

el resto de medios (por ejemplo, tarjetas de memoria y memorias USB). Lamayoría de estos medios no son lo suficientemente grandes como parabeneficiarse de FAT32. FAT se utiliza por motivos de compatibilidad y menordesperdicio del espacio disponible.

El soporte FAT32 en Windows 2000 y XP está limitado a discos de 32GB, lo queobliga a usuarios de discos duros modernos a usar NTFS o utilizar utilidades deterceros al margen de Windows.

Esta limitación afecta a la hora de instalar, pero no al uso: Windows 2000/XPpuede acceder a discos FAT32 de hasta 2TB, aunque en el momento de instalar,no permitirá formatear un disco FAT32 de más de 32GB, y obligará a usar NTFS.La solución alternativa es formatear antes el disco en FAT32 (por ejemplo con laayuda de un LiveCd de GNU/Linux o utilidades de terceros), y a continuacióninstalar Windows 2000/XP.

Estructura de la FAT

El sistema de archivos FAT se compone de cuatro secciones:

1. El sector de arranque. Siempre es el primer sector de la partición (volumen)e incluye información básica, punteros a las demás secciones, y la direcciónde la rutina de arranque del sistema operativo. La BIOS selecciona undispositivo de arranque, entonces copia al primer sector de disco desde eldispositivo (el cual puede ser un MBR (master boot record), VBR o uncódigo ejecutable), a la ubicación de dirección de disco 0x7C00.

2. La región FAT. Contiene dos copias de la tabla de asignación de archivos(por motivos de seguridad). Estos son mapas de la partición, indicando quéclusters están ocupados por los archivos.

3. La región del directorio raíz. Es el índice principal de carpetas y archivos.

4. La región de datos. Es el lugar donde se almacena el contenido de archivosy carpetas. Por tanto, ocupa casi toda la partición. El tamaño de cualquierarchivo o carpeta puede ser ampliado siempre que queden suficientesclusters libres. Cada cluster está enlazado con el siguiente mediante unpuntero. Si un determinado cluster no se ocupa por completo, su espacioremanente se desperdicia.

Una partición se divide en un conjunto de clusters de idéntico tamaño. Sonpequeños bloques discontinuos. El tamaño del clúster depende de la variante deFAT utilizada. Varía entre 2 y 32 kilobytes. Cada archivo ocupa uno o más clustersen función de su tamaño. De manera que un archivo queda representado por unacadena secuencial de clusters. Cada clúster de la cadena no tiene por qué seradyacente al anterior. Esto es lo que provoca la fragmentación.

Page 55: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

La tabla de asignación de archivos consta de una lista de entradas. Cada entradacontiene información sobre un clúster:

La dirección del siguiente clúster en la cadena. Si es pertinente, la indicación de "fin de archivo" (que es también el fin de la

cadena). Un carácter especial para indicar que el clúster es defectuoso. Un carácter especial para indicar que el clúster está reservado (es decir,

ocupado por un archivo). El número cero para indicar que el clúster está libre (puede ser usado por

un archivo).

El tamaño de estas entradas también depende de la variante FAT en uso: FAT16usa entradas de 16 bits, FAT32 usa entradas de 32 bits, etc.

El directorio raíz

Este índice es un tipo especial dearchivo que almacena las sub-carpetasy archivos que componen cada carpeta.Cada entrada del directorio contiene elnombre del archivo o carpeta (máximo8 caracteres), su extensión (máximo 3caracteres), sus atributos (archivo,carpeta, oculto, del sistema, ovolumen), la fecha y hora de creación,la dirección del primer cluster dondeestán los datos, y por último, el tamañoque ocupa.

El directorio raíz ocupa una posición concreta en el sistema de archivos, pero losíndices de otras carpetas ocupan la zona de datos como cualquier otro archivo.Los nombres largos se almacenan ocupando varias entradas en el índice para elmismo archivo o carpeta.

VFAT y FASTFAT

Windows 3.11 introdujo un nuevo esquema de acceso a los sistemas de archivos,usando el modo protegido de 32 bits (presente en los Intel 386 y posteriores)esquivando el núcleo de MS-DOS. Para ello, usaba directamente el BIOS o elhardware de la unidad de disco. Esto también permitía utilizar una caché,acelerando el acceso. Todo esto se denominó VFAT o FAT virtual.

Windows NT 3.1 proporcionaba la misma aproximación, pero denominándoloFASTFAT. Sin embargo, los controladores de Windows NT utilizasen el modoprotegido de 32 bits. A menudo se confunde con el soporte LFN (nombres largosde archivo) ya que éste estaba habilitado por defecto en Windows 95.

Page 56: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

LFN o nombres largos de archivo

Se implementó sobre FAT utilizando un truco en el modo de almacenar los índicesde los directorios. Esta implementación también se conoce como VFAT por culpadel controlador de Windows 95 que lo incorporó por primera vez. Los nombreslargos también se soportaron en Windows NT a partir de la versión 3.5.

FAT y metadatos

NOTA: Los [metadatos] son atributos asociados a un archivo, pero que no formanparte de él (por ejemplo, la fecha o el autor). Este concepto recibe otrasdenominaciones tales como filesystem fork, alternate data streams (en Windows).

El sistema de archivos FAT no está diseñado para albergar metadatos. Algunossistemas operativos que los necesitan incorporaron varios métodos parasimularlos. Por ejemplo, almacenándolos en archivos o carpetas extra (de manerasimilar a UMSDOS) o también otorgando una semántica especial a estructuras nousadas en el formato original. No obstante, este último método no es compatiblecon herramientas no preparadas para esta extensión. Por ejemplo, unaherramienta de desfragmentación podría destruir los metadatos. Mac OS, a travésde la utilidad PC Exchange, almacena metadatos en un archivo ocultodenominado "FINDER.DAT" (uno por carpeta). Mac OS X almacena los metadatosen un archivo oculto denominado como su propietario, pero comenzando por ".-".Cuando se trata de meta-datos de una carpeta, los almacena en un archivo ocultollamada ".DS_Store".

OS/2 también depende fuertemente del uso de meta-datos. Cuando se refiere avolúmenes en FAT, los almacena en un archivo oculto denominado"EA DATA. SF" en la carpeta raíz del volumen. También reserva dos bytes en elarchivo (o carpeta) para poder indexarlo. Los metadatos se acceden a través delescritorio Workplace Shell, a través de guiones REXX, o a través de utilidadescomo 4OS2. Cuando se refiere a su sistema de archivos propio HPFS, éste ya dasoporte nativo a meta-datos, denominados atributos extendidos.

Windows NT soporta meta-datos en los sistemas de archivos HPFS, NTFS y FAT(mediante el mismo mecanismo que OS/2). Pero no es posible copiar metadatosentre sistemas de archivos distintos. Windows 2000 se comporta exactamenteigual que Windows NT, pero ignora los metadatos cuando copia archivos desdeFAT32 a otros sistemas de archivos.

ExFat

Permite utilizar archivos de más de 4GB.

Page 57: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

NTFS (New Technology File System (Nueva Tecnología de Sistema deArchivos))

Es un sistemas de archivos de Windows NTincluido en las versiones de Windows 2000,Windows XP, Windows Server 2003,Windows Server 2008, Windows Vista,Windows 7 y 8. Está basado en el sistemade archivos HPFS de IBM/Microsoft usadoen el sistema operativo OS/2, y tambiéntiene ciertas influencias del formato dearchivos HFS diseñado por Apple.

NTFS sólo es recomendable paraparticiones superiores a 400 MB, ya que lasestructuras del sistema consumen gran cantidad de espacio. NTFS permite definirel tamaño del grupo (cluster), a partir de 512 bytes (tamaño de un sector) de formaindependiente al tamaño de la partición.

Las técnicas utilizadas para evitar la fragmentación y el menordesaprovechamiento del disco, hacen de este sistema de archivos el sistema idealpara las particiones de gran tamaño requeridas en grandes ordenadores yservidores.

NTFS ha reemplazado al anterior sistemade ficheros de Microsoft, llamado FAT,común a MS-DOS y a las versionestempranas de Windows. Este formatopermite definir el tamaño del clúster, a partirde 512bytes (tamaño mínimo de un sector)de forma independiente al tamaño de lapartición.

Es un sistema adecuado para lasparticiones de gran tamaño requeridas en

estaciones de trabajo de alto rendimiento y servidores. Puede manejar volúmenesde hasta 264–1 clústeres. En la práctica, el máximo volumen NTFS soportado esde 232–1 clústeres (aproximadamente 16TB usando clústeres de 4KB).

Su principal inconveniente es que necesita para sí mismo una buena cantidad deespacio en disco duro, por lo que no es recomendable su uso en discos conmenos de 400MB libres.

NTFS incorpora muchas mejoras sobre el sistema FAT como compatibilidadmejorada con metadatos, y el uso de estructura de datos avanzadas (árboles-B)para optimizar el rendimiento, estabilidad, y el aprovechamiento del espacio en

Page 58: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

disco, además de nuevas características adicionales, como la seguridad, las listasde control de acceso o el registro de transacciones (journaling)14.

El tamaño mínimo recomendado para la partición es de 10GB. Aunque sonposibles tamaños mayores, el máximo recomendado en la práctica para cadavolumen es de 2TB. El tamaño máximo de fichero viene limitado por el tamaño delvolumen.

Hay tres versiones de NTFS: v1.2 en NT 3.51,NT 4, v3.0 en Windows 2000 y v3.1 enWindows XP, Windows 2003 Server, WindowsVista y Windows 2008. Estas versionesreciben denominaciones v4.0, v5.0, v5.1, v5.2, y v 6.0 en relación con la versión deWindows en la que fueron incluidas. Lasversiones más recientes han incluido algunascaracterísticas nuevas, tales como cuotas de

14 Llamado también como registro ordinario. Es un mecanismo por el cual un sistema informático puedeimplementar transacciones. Se basa en llevar un journal o registro de diario en el que se almacena lainformación necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle.

El procedimiento es básicamente el siguiente:

1. Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso puedamodificarlas mientras dura la transacción.

2. Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, demodo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del SO) el journal sigadisponible una vez reiniciado el sistema.

3. Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:1. Se apunta en el journal como deshacer la modificación y se asegura de que esta información

se escribe físicamente en el disco.2. Se realiza la modificación.

4. Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a unoleyéndolos y borrándolos del journal.

5. Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.

Las aplicaciones más frecuentes de los sistemas de journaling se usan para implementar transacciones desistemas de bases de datos y, más recientemente, para evitar la corrupción de las estructuras de datos en lasque se basan los sistemas de archivos modernos.

En el caso concreto de los sistemas de archivos, el journaling se suele limitar a las operaciones que afectan alas estructuras que mantienen información sobre:

Estructuras de directorio. Bloques libres de disco. Descriptores de archivo (tamaño, fecha de modificación...)

El hecho de que no se suela implementar el journaling de los datos concretos de un archivo suele carecer deimportancia, puesto que lo que persigue el journaling de sistemas de archivos es evitar chequeos de disco queefectúan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deberá deshacer el journalpara tener un sistema coherente de nuevo.

Page 59: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

disco y puntos de montaje de volúmenes.

NTFS incluye:

- Un identificador de la partición 0x07 (MBR15) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT).

- Estructuras Contenido del directorio Árbol –B+16

- Localización de archivo Mapa de bits/Extents.- Bloques malos Mapa de bits/Extents- Límites Máxima dimensión de archivo 16TiB17 con la actual implementación

(16EiB18 según su arquitectura).- Máximo número de archivos 4.294.967.295 (232–1)- Tamaño máximo del nombre de archivo 255 caracteres

15 Un master boot record (MBR) es el primer sector ("sector cero") de un dispositivo de almacenamiento dedatos, como un disco duro. A veces, se emplea para el arranque del SO con bootstrap (Arranque), otras veceses usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo dedisco individual, aunque en algunas máquinas esto último no se usa y es ignorado.

16 Es un tipo de estructura de datos de árboles. Representa una colección de datos ordenados de manera que sepermite una inserción y borrado eficientes de elementos. Es un índice, multinivel, dinámico, con un límitemáximo y mínimo en el número de claves por nodo.

Un árbol-B+ es una variación de un árbol-B. En un árbol-B+, en contraste respecto un árbol-B, toda lainformación se guarda en las hojas. Los nodos internos sólo contienen claves y punteros. Todas las hojas seencuentran en el mismo, más bajo nivel. Los nodos hoja se encuentran unidos entre sí como una lista enlazadapara permitir búsqueda secuencial.

El número máximo de claves en un registro es llamado el orden del árbol-B+.

El mínimo número de claves por registro es la mitad del máximo número de claves. Por ejemplo, si el ordende un árbol-B+ es n, cada nodo (exceptuando la raíz) debe tener entre n/2 y n claves.

El número de claves que pueden ser indexadas usando un árbol-B+ está en función del orden del árbol y sualtura.

Para un árbol-B+ de orden n, con una altura h:

Número máximo de claves es: nh

Número mínimo de claves es: 2(n / 2)h − 1

17 Unidad de almacenamiento de información. Corresponde a 240 bytes, es decir 1.099.511.627.776 bytes. Serepresenta con el símbolo TiB. El empleo del prefijo "Tebi" (Tera binario) se debe a que es la potencia de 2que más se aproxima a "Tera", prefijo cuyo valor es 1012, es decir, 1.000.000.000.000.

18 Un exbibyte es una unidad de almacenamiento de información. Corresponde a 260 bytes, es decir1.152.921.504.606.846.976 bytes. Se representa con el símbolo EiB.

El empleo del prefijo "exbi" (exa binario) se debe a que es la potencia de 2 que más se aproxima a "exa",prefijo cuyo valor es 1018, es decir, 1.000.000.000.000.000.000.

Page 60: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

- Tamaño máximo del volumen 256TiB con la actual implementación (16EiBsegún su arquitectura)

- Caracteres permitidos en nombres de archivo Cualquier carácter excepto'\0' (NULO) y '/'

- Windows también excluye el uso de \ : * ? " < > |- Características: Fechas registradas, Creación, modificación, modificación

POSIX, atributos de Sólo lectura, oculto, sistema, archivo.- Permisos de acceso a archivos ACLs19.- Compresión transparente Per-file, LZ77 (Windows NT 3.51 en adelante).- A nivel de seguridad es compatibles con algunos sistemas de encriptación:

Cifrado transparente Per-file, DESX (Windows 2000 en adelante), TripleDES (Windows XP en adelante), AES (Windows XP Service Pack 1,Windows Server 2003 en adelante) Sistemas operativos soportados FamiliaWindows NT (Windows NT 3.1 a Windows NT 4.0, Windows 2000, WindowsXP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows7 y 8, Windows Server 2008 R2), Mac OS X, Linux

Los nombres de archivo son almacenados en Unicode 20 , y la estructura deficheros en árboles-B, una estructura de datos compleja que acelera el acceso alos ficheros y reduce la fragmentación, que era lo más criticado del sistema FAT.

Se emplea un registro transaccional (journal) para garantizar la integridad delsistema de ficheros (pero no la de cada archivo). Los sistemas que emplean NTFShan demostrado tener una estabilidad mejorada, que resultaba un requisitoineludible considerando la naturaleza inestable de las versiones más antiguas deWindows NT.

HPFS (High Performance File System, sistema de archivos de altorendimiento)

HPFS es el sistema de archivos propio de OS/2. Utiliza una estructura muyeficiente para organizar los datos en las particiones.

HPFS no utiliza grupos sino directamente sectores del disco (que equivalen a ungrupo de 512 bytes). En vez de utilizar una tabla FAT al principio de la partición,

19 Lista de Control de Acceso o ACL (Access Control List) es un concepto de seguridad informática usadopara fomentar la separación de privilegios. Es una forma de determinar los permisos de acceso apropiados aun determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido.

Las ACLs permiten controlar el flujo del tráfico en equipos de redes, tales como enrutadores y conmutadores.Su principal objetivo es filtrar tráfico, permitiendo o denegando el tráfico de red de acuerdo a algunacondición. Sin embargo, también tienen usos adicionales, como por ejemplo, distinguir "tráfico interesante"(tráfico suficientemente importante como para activar o mantener una conexión) en RDSI.

20 Es un estándar de codificación de caracteres diseñado para facilitar el tratamiento informático, transmisióny visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguasmuertas. El término Unicode proviene de los tres objetivos perseguidos: universalidad, uniformidad yunicidad.

Page 61: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

emplea unas bandas distribuidas eficazmente por toda la partición. De esta formase consigue, suprimir el elevado número de movimientos que los cabezales delectura/escritura tienen que realizar a la tabla de asignación en una partición FAT.El resultado de este sistema es una mayor velocidad de acceso y un menordesaprovechamiento del espacio en disco.

Interoperabilidad

Microsoft provee medios para convertir particiones FAT32 a NTFS, pero no ensentido contrario, (NTFS a FAT32). Partition Magic21 de Symantec y el proyecto decódigo abierto NTFSResize son ambos capaces de redimensionar particionesNTFS.

21 Este lo puede descargar dehttp://rapidshare.com/files/283278524/PARAGON_Partition_Manager_Pro_v.9.2.rar o dehttp://es.kioskea.net/download/descargar-264-partition-magic

Page 62: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Con la herramienta convert incluida en los sistemas NT (Windows 2000 enadelante), se puede cambiar un disco con sistema de ficheros FAT32 a NTFS sinperder ningún dato con la instrucción "convert [unidad]:/fs:ntfs"

Por razones históricas todas las versiones de Windows que todavía no soportanNTFS almacenan internamente la fecha y hora como hora local, yconsecuentemente los sistemas de ficheros correspondientes a esas versiones deWindows, también tratan la hora localmente. Sin embargo, Windows NT y sussucesores almacenan la hora en formato GMT (Greenwich Mean Time)/TUC(tiempo universal coordinado), y hacen las conversiones apropiadas a la hora demostrar las fechas. De este modo al copiar archivos entre un volumen NTFS y unono-NTFS, deben hacerse las conversiones, lo que puede originar ambigüedadesen la configuración del horario, dando lugar a ficheros cuya marca de hora estéuna hora desplazada.

Nota: para convertir un sistema de archivos FAT32 a NTFS del disco duro, sedebe proceder de la siguiente manera. En primer lugar verifique en que formatoestá, tal como se muestra en la figura anterior. Cabe notar, que las particioneshechas con FAT32, generan un riesgo para la información contenida en un discoduro, si el sistema utilizado es XP. Cuando este SO detecta un posible daño en elsistema de archivos de Windows o de superficie del disco duro, el comandoChkdsk se ejecuta automáticamente y escanea el sistema buscando los errores eintenta solucionarlo.

Si fuera Fat 32 para convertirlo a Ntfs utilizamos el comando convert

Si la partición es C:

convert c: /fs:ntfs /v

Si la partición es D:

convert d: /fs:ntfs /v

Pasos a seguir:

Inicio – Ejecutar. Se digita cmd clic en aceptar.

Page 63: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

En el prompt que parpadea se digita:

convert c: /fs:ntfs /v

Se presiona la tecla Enter. Un mensaje dirá que no puede llevar a cabo laconversión porque el disco está en uso. Pulse la tecla N.

Preguntará si desea hacer la conversión cuando vuelva a iniciar el sistema. Pulsarla tecla S

Cuando se reinicie se efectuará la conversión de archivos. Al entrar a Windows, sepuede verificar el sistema de archivos, como está indicado arriba. Estasinstrucciones son para Windows XP, para la 7 y 8es muy posible que nofuncionen.

Page 64: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

¿Cuál es el particionado recomendado?

Todo va a depender de los sistemas operativos que se vayan a instalar, donde elparticionado recomendado para aquellos computadores que van a disponer de unsistema Windows además de un sistema GNU/Linux cambia un poco.

Cuando se desea instalar varios sistemas operativos en un mismo disco duro nopuede hacerlo así sin más. Debe saber que cada sistema operativo tendrá queestar alojado en una partición del disco distinta y que existirá un gestor dearranque que se encargará que pueda elegir qué sistema operativo desea utilizarcuando inicie o arranque el equipo.

Por lo general, una configuración bastante habitual en los equipos actuales (sincontar a los equipos con Windows 7 u 8 que tienen una especial particularidad) y apesar de su gran capacidad de espacio (discos de más de 500 GB) suele seraquella que dispone de una partición que abarca prácticamente la totalidad deldisco en la que se encuentra Windows instalado en él. Pero este particionado noes precisamente el más recomendable: al menos, debería tener otra particióndiferente en la que pueda alojar la información personal, archivos y directorios detrabajo (documentos de Word, música, películas, etc.). Una gran ventaja de estesistema de particionado es que, si por algún motivo, falla o se muere el sistema,siempre se podrá solucionar el problema sin tocar la partición de los datos.

También se ha de recordar que cada partición puede tener un sistema dearchivos diferente y dependiente del sistema operativo que va a instalar. Porejemplo Windows usa FAT16, FAT32 o NTFS. Windows XP, Vista, Windows 7 y 8se instalan sobre particiones NTFS, algo que también nos ayuda para identificarlas particiones del disco que están ocupadas precisamente por sistemas WindowsX. También se debe considerar que, además, realizará la instalación en un ordendeterminado: en primer lugar, debe instalar Windows en una partición NTFS (si no

Page 65: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

lo tiene ya instalado y desea tener un arranque dual con este Sistema Operativo)y, a continuación, debe instalar la distribución GNU/Linux en otra partición.

Procedimiento:

Para Windows, necesitará dos particiones diferentes. En la primera, con sistemade archivos NTFS, va a instalar Windows 7 y todas las aplicaciones que precise.Debe crear una partición primaria para alojar este Sistema Operativo en ella. En lasegunda, también con sistema de archivos NTFS (un sistema al que Linux tambiénpuede acceder), que se recomienda denominar ALMACEN o DATOS, esto paraque se pueda identificar más rápido, más si se tienen otra cantidad de archivos,ahí se guardarán todos los archivos y directorios de trabajo. Así se asegura quesiempre tendrá disponible las carpetas y archivos personales tanto desde unsistema como desde el otro. ¡Compatibilidad total! Como es una partición que nova a contener ningún Sistema Operativo puede ser perfectamente una particiónlógica, no tiene que ser una partición primaria.

Windows asignará una letra a cada partición. Por ejemplo, a la primera la llamaráC mientras que la segunda será D y así sucesivamente.

Este particionado del disco es mucho mejor que si no se particiona en absoluto.Así en el caso de desastre total se puede formatear la unidad C, instalar de nuevoWindows y las aplicaciones que precise, dejando la partición D intacta y con ellasus datos.

Para instalar Ubuntu (o cualquier otra distribución GNU/Linux), precisará de unaorganización algo diferente. De un modo equivalente a Windows, los sistemasGNU/Linux también precisan de sus propias particiones para instalar el sistema ycon su propio formato, y no precisamente NTFS. Además, tal y como se ha

Page 66: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

indicado recomendable para Windows, en los sistemas GNU/Linux lo ideal esdisponer de tres particiones, dos de ellas obligatorias así:

1. Una partición para el sistema raíz (punto de montaje /). Sistema de archivosext4. El sistema de archivos ext4 es el nuevo sistema de archivos deGNUT/Linux, que mejora al anterior ext3, entre otras cosas, en velocidad deescritura y menor uso de la CPU. Esta partición sería la equivalente al discoC de un sistema Windows – Obligatoria.

2. Una partición para la carpeta personal de los usuarios (punto de montaje/home). Es la equivalente al disco D, que va a utilizar para guardar losarchivos y documentos personales. Optativa, pero muy recomendable yaque para las distribuciones GNU/Linux el directorio home es la carpetadonde se alojan todas las carpetas personales de los usuarios del sistemacon todos sus documentos y archivos personales.

3. Una partición de intercambio o swap, para la gestión de la memoria virtual.La memoria virtual es un mecanismo del sistema operativo, para tener unamemoria aparentemente mayor de la que realmente tiene, usandoalmacenamiento secundario del disco duro.

4. Se debe reservar el doble de tamaño de la memoria principal para estapartición. Por ejemplo, si tiene 256 MB de memoria RAM, la partición deintercambio será de 512 MB. Sin embargo esto únicamente es aplicable atamaños de memoria de hasta 1GB. Si tiene más memoria (según RussellCoker ) tiene que utilizar la siguiente regla: entre 2GB y 4GB, utilizar comotamaño del swap la mitad del valor de la RAM; mientras que si tiene más de4 GB, utilizar una swap de sólo 2GB. Es obligatoria.

Este particionado ideal responde al mismo mecanismo de seguridad que se havisto en el particionado en sistemas Windows. Si tiene que reinstalar GNU/Linuxpor cualquier motivo, no perderá sus datos personales que se hallaránperfectamente situados en la partición /home.

En resumen, puede crear una partición primaria con el sistema de archivos NTFSpara instalar en ella el sistema Windows de su preferencia, considerando elespacio que quiera asignar en su disco duro y puede crear otra partición primariacon el mismo sistema de archivos NFTS, que puede llamar DATOS, con el fin decontener en ella todos los archivos y carpetas personales. Si lo precisa puedeacceder a esta partición, y a todos los datos contenidos en ella, directamentedesde el sistema Ubuntu que tenga instalado en el PC.

A continuación, sigue con el particionado preciso para la instalación de Ubuntu:Crear una partición extendida:

Page 67: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Una partición lógica raíz, sistema de archivos ext4, punto de montaje /, dondeinstalará Ubuntu 12.10.

Una partición lógica, sistema de archivos ext4, punto de montaje /home, será laque utilice para ubicar en ella todos los documentos y archivos personalesrealizados en Ubuntu.

Una partición de intercambio SWAP (recuerde... el doble de la RAM del equipo)El particionado final del disco duro quedaría así (Por ejemplo sea un disco duro de500 GB, cuyo Sistema Operativo principal será Ubuntu 12.10):

Particiónprimaria – 80

GB

Particiónprimaria – 70

GB

Partición extendida – 350 GB

Partición NTFS -Windows

Partición NTFS– DATOS oAlmacén

Partición lógicaext4 (/home) –250 GB

Partición SWAP– 2 GB(depende de laRAM)

Partición lógica ext4 (/)- 98 GB

Instala Windowsen esta partición

Partición paradocumentos ycarpetaspersonales

Partición paradocumentos ycarpetaspersonas

Memoria deintercambio

Instalar Ubuntu en estapartición. ¡98 GB esuna cantidad deespacio buena paraUbuntu, un sistemacomo Ubuntu con unlistado considerable deaplicaciones apenas

Page 68: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

ocupa 10 GB!

Establecer la cantidad de espacio a cada partición en función del uso que vaya adar al ordenador. Tenga en cuenta que un sistema Ubuntu 12.10 con todas lasherramientas y/o aplicaciones instaladas en el sistema, apenas llega a ocuparentre 10 y 15 GB de espacio.

Observe la siguiente captura de pantalla con el particionado del disco duropresente en un equipo que tiene un arranque dual Windows 7 – Ubuntu 12.10:

¿Qué es sda1, sda2, etc.? Tiene que ver con el tipo de disco duro presente en elcomputador, con el número de discos duros presentes en el equipo y con elnúmero de particiones.

Las tres primeras opciones del gráfico son tres particiones primarias NTFS. Deellas, la segunda, con sistema de archivos NTFS y etiqueta Windows incluye elSistema Operativo Windows 7 y las aplicaciones instaladas en él. Apenas seutiliza este sistema ni tiene aplicaciones instaladas que no sean las propias de unequipo recién comprado. ¡41 GB ya en uso! La partición Data se corresponde conesa partición que se indicó es recomendable para guardar en ella los archivospersonales.

Las particiones sda5, sda6 y sda7 son respectivamente la memoria deintercambio, la partición en la que se encuentra instalado el Sistema OperativoUbuntu 12.10 y la partición home que aloja las carpetas personales de todos losusuarios que utilizan este sistema. La segunda de las anteriores incluye no sólo elsistema sino un amplio listado de aplicaciones instaladas de gráficos, audio, vídeo,internet, etc. y sólo tiene ¡5,80 GB en uso!

El etiquetado de los discos duros en sistemas GNU/Linux

Como se ha indicado, en los sistemas Windows cada dispositivo (incluyendo lasparticiones del disco) tiene asignada una letra. Así, la primera partición del discoduro es C: (donde se instala el sistema operativo y las aplicaciones, de formahabitual), la disquetera es A: la segunda partición del disco duro es D:, el lector de

Page 69: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Cds es E:, y así sucesiva y alfabéticamente si se instalan otros dispositivos, comodiscos duros externos o memorias USB. Esto trae como consecuencia que, cadavez que se quiera acceder a un dispositivo distinto, tiene que volver a Mi PC y/oadivinar qué letra le ha puesto el sistema al dispositivo.

GNU/Linux utiliza una organización de la información mucho más adecuada ycoherente. En Linux todo son ficheros: un lector de CD es un fichero, una USB estambién un fichero, al igual que una partición de un disco duro.

Por ejemplo, los DD comienzan por hd (o sd si el disco es SATA) seguido de unaletra y un número: la letra indica el número del disco duro mientras que el númeroindica el número de la partición.

Así, Ubuntu utiliza dispositivos de archivos para montar los discos duros y nombralos archivos de acuerdo con el esquema determinado que se muestran acontinuación:

. /dev/sda es el primer disco duro identificado

. /dev/sdb es el segundo disco duro identificado

Si tiene más DD en el computador Ubuntu los denominará sdc, sdd y así

sucesivamente.

. /dev/sda1 es la partición primaria en el disco sda

Las otras tres particiones primarias en ese disco serán sda2, sda3 y sda4.Recuerde que este es el límite en el número de particiones primarias. No puede

haber más.

. /dev/sda5 es la primera partición lógica que se encuentra dentro de una partición

extendida. Las siguientes particiones lógicas se llamarán, por tanto, sda6, sda7,

etc.

Este mismo patrón sigue para todos los dispositivos que se conectan al equipo.

Así, si conecta un dispositivo USB o un disco duro externo en un sistema Ubuntu,

estos dispositivos serán etiquetados como /dev/sdb (si sólo tiene un DD) o

sucesivos.

Si ya tiene Ubuntu instalado abrir la consola o terminal y escriba la orden

sudo fdisk -l

Page 70: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Este comando permite tener una visión general de los DD disponibles y los medios

de almacenamiento USB conectados incluyendo además las particiones y

sistemas de ficheros que contienen.

Cuidado de los discos duros

Los discos duros también necesitan cuidado, siga las siguientes instrucciones paraevitar la pérdida de datos y evitar que el disco duro quede inservible:

- No quitar la etiqueta gris semiplateada que se encuentra a los lados y/oalgunas veces en la parte frontal, esto puede causar que entre polvo y rayeel disco, asimismo el polvo que pueda manejar electricidad puede mover losdatos y causar daños.

- No tapar los agujeros pequeños, ya que son un filtro de aire y puede causarsobrecalentamiento.

- De vez en cuando, hacer un respaldo de los archivos más importantes,cosas como apagones pueden dañar el disco duro, si ocurre un apagóndesconectar el ordenador.

- Evitar que el disco sufra golpes físicos, los circuitos, los cabezales y losdiscos pueden dañarse.

- Si un disco pierde información del índice, como el formato que se le asignó,usar programas como scandisk.

Page 71: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Los motivos más frecuentes de avería en un DD están relacionados con laalimentación de este, por lo que una buena fuente de alimentación nos va a evitarmuchos inconvenientes y gastos.

Las averías del disco duro tienen un componente de costo añadido. Al costo deldisco en si hay que añadirle el causado por la pérdida de los datos contenidos eneste, y como mínimo, en el caso de que tengamos copia de seguridad de todosnuestros datos, el de la reinstalación de todo nuestro software.

Las averías de un disco duro pueden ser de dos tipos: 22

- Electrónicas- Capacitor inflamado

Las averías electrónicas en el DD están causadas la inmensa mayoría de lasveces por un fallo eléctrico (sobretensión) que provoca la avería de la placa decontrol del disco. Una característica de estas averías es que el disco deja de serreconocido incluso por la bios de la placa base, aunque se puede dar el caso deque siga siendo reconocido, pero sea incapaz de comunicarse con el ordenador.

Un exceso de temperatura también puede ser causa de una avería electrónica delDD.

22 Fuente. Lo que necesitas saber para armar o Reparar tu pc. Consultado el 2 de septiembre de 2013.http://www.taringa.net/posts/hazlo-tu-mismo/13779959/Lo-que-necesitas-saber-para-armar-o-Reparar-tu-pc.html

Page 72: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

En cuanto a las averías Mecánicas, estas son más frecuentes que laselectrónicas, aunque con las mismas consecuencias, es decir, la inutilización deeste y la consiguiente pérdida de datos.

Estas averías pueden afectar a dos componentes: Al motor que hace que gire eldisco y al sistema de cabezas lectoras. También, pueden estar causadas porproblemas en la alimentación, pero en este caso hay que añadir unos cuantosmotivos más, entre los que cabe destacar:

- Vibraciones: Causadas la mayoría de las veces por una mala colocacióndel disco, como por ejemplo no estar sujeto firmemente por los dos lados(es muy aconsejable que esté sujeto con 4 tornillos correctamente fijados).

- Golpes: A veces golpeamos la caja sin querer, repercutiendo este golpe enlos componentes del ordenador. Esto es especialmente grave si además eldisco está trabajando en ese momento.

- Mala manipulación del disco: A veces se manipula el disco y no se tieneel debido cuidado al ponerlo sobre una superficie, dejándolo caerbruscamente o golpeándolo.

- Apagados continuos cuando está trabajando: Estos apagados puedenestar provocados por fallos eléctricos o por nosotros mismos.

Page 73: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

- Desgaste: Se trata de piezas mecánicas móviles, a lo que hay que añadirque trabajan a una gran velocidad y con una gran precisión. Estas piezastienen un desgaste natural y aunque su ciclo de vida útil es muy grande noes eterno.

Las averías de tipo mecánico tienen la ventajasobre las de tipo electrónico que suelen avisar consíntomas tales como fallos en los accesos al discocada vez más frecuentes y sobre todo ruidos (elclásico clic clic clic muy seguido), con lo quepermite en muchas ocasiones poner a salvo lainformación.

Las averías en los discos duros se puedenprevenir con una serie de cuidados, entre los quepodemos citar:

- Utilizar una buena fuente de alimentación.- Utilizar una buena caja en la que el disco duroquede bien sujeto.- Asegurarse que tenga una buena refrigeración,evitando en lo posible instalar dos discos juntos

(dejando siempre un espacio entre ellos) y recurriendo si es preciso a un sistemade ventilación.- Evitando golpear la caja y los desplazamientos bruscos de esta (sobre todo si elordenador está en funcionamiento).- El uso de un SAI es en todo caso una opción muy recomendable.

Como norma general, apagar o desconectar siempre el ordenador si hay unapagón. Las mayores sobretensiones (y las más peligrosas) se producenprecisamente cuando se restablece el suministro eléctrico. Es convenienteconectar el ordenador, la impresora y la pantalla en una regleta con interruptor y aser posible con fusible.

Page 74: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Las reparaciones de averías en los discos duros pasan siempre por enviarlos alfabricante o bien a servicios técnicos especializados en este tema, y en la mayoríade las ocasiones su costo supera con creces al de un disco duro nuevo.

La excepción es cuando se trata de una pérdida de sectores (sectores dañados).

En estos casos se puede intentar repararlo utilizando un programa del tipo HDDRegenerator, con el que se puede recuperar gran parte de esos sectores dañados.En cuanto a la recuperación los datos contenidos en un DD averiado, existenempresas especializadas en ese tema, pero los costos son altísimos, por lo quesolo suele ser rentable para aquellos que no puedan prescindir de los datosperdidos.

Herramientas de software útiles:

Es un programa informático para realizar particiones sobre el disco duro de unordenador. Originalmente fue creado por PowerQuest Corporation pero hoy día espropiedad de Symantec. Este programa funciona bajo Microsoft Windows o desdeun CD de arranque. Permite la creación y modificación del tamaño de lasparticiones sin pérdida de datos.

Partition Magic es capaz de redimensionar particiones NTFS o FAT (16 ó 32) sinpérdida de datos, y puede copiar y mover particiones incluso a otros discos.

Otras características son conversión de sistemas de archivos FAT16, FAT32 yNTFS, modificación del tamaño del cluster entre FAT16/32 y NTFS, y unión desistemas adyacentes FAT y NTFS.

También es capaz de manejar las particiones Ext2 y Ext3 propias de los sistemasLinux, tal y como se manejan las particiones tipo Windows.

Referencias

- Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, RobertMagnus y Dirk Verworner (1997). Linux Kernel Internals (Second Edition).Editorial: Addison-Wesley.

- Olaf Kirch (1999). Linux Network Aministrator Guide. Fuente: ProyectoLuCAS.

- César Martín Pérez e Ismael Pérez Crespo (1998). Linux. Editorial: AnayaMultimedia.

- Cameron Newhan y Bill Rosenblatt (1995). Learning the Bash Shell.Editorial: O'Reilly & Associates, Inc.

- C. Dennis Mee, Eric D. Daniel (1996). McGraw-Hill. ed. Magnetic StorageHandbook 2nd Ed. . ISBN 0070412758.

Page 75: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

- David A Rusling ([email protected]) (Enero 1998). El núcleo deLinux. Fuente: http://www.hispalinux.org

- Antonio Vaquero Sánchez, Raymundo Hugo Rangel, Gerardo QuirozVieyra, Willy Vega Gálvez y Luis Ernesto Ramírez (1993). Aplique XWindow. Editorial: McGraw-Hill/Interamericana de España, S.A.

- El kernel. Consultado el 20 de junio de 2011.http://danielpecos.com/docs/linux/kernel.html

- Tabla de asignación de archivos.http://es.wikipedia.org/wiki/Tabla_de_asignaci%C3%B3n_de_achivos

- NTFS. Consultado el 15 de octubre de 2011.http://es.wikipedia.org/wiki/NTFS

- Journaling. Consultado el 30 de junio de 2011.http://es.wikipedia.org/wiki/Journaling

- Toshiba America Electronic Components, Inc. «Solid State Drives MemoryProducts». Consultado el 17-07-2009.

- http://www.tuexpertoit.com/2011/12/22/la-diferencia-de-precio-entre-ssd-y-discos-duros-se-reduce/ Comparativas de precios SSD versus disco duro

- http://alt1040.com/2010/11/discos-de-estado-solido-ssd-o-como-hacer-que-tu-computadora-sea-realmente-rapida?utm_source=self&utm_medium=nav&utm_campaign=RelacionadosDiscos de estado sólido (SSD) o cómo hacer que tu computadora searealmente rápida

- http://sololinex.wordpress.com/2008/09/09/comparativa-entre-disco-duro-y-disco-ssd-en-video/#more-755 Comparativa entre disco duro y disco SSDen vídeo

- http://www.diarioti.com/noticia/Presentan_la_primera_supercomputadora_Flash_del_mundo/30931 Presentan la primera supercomputadora Flash delmundo

- http://www.orlandoalonzo.com.mx/tecnologia/ssd-la-verdad-sobre-el-consumo-de-energia/ SSD: la verdad sobre el consumo de energía

- http://www.seagate.com/www/es-es/products/laptops/laptop-hdd/- Andrew Tanenbaum. (2204). Sistemas Operativos: Diseño e

implementación, Capítulo 1: Introducción.

Taller

Ejercicio. Consultar sobre los Sistemas de archivos con journaling

Ext4 de Linux NTFS de Windows 7 y 8 Reiser4 de Linux

Page 76: KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

UFS de SUN Solaris HFS+ de Mac OS X

Ejercicio. Consultar como mínimo tres programas que permitan hacer undiagnóstico del equipo en general. Probarlos y anexar los reportes que arrojancada uno.

Ejercicio. Investigar sobre las características técnicas de los siguientes discosduros internos:

- SSD Sandisk 480GB SATA3 lectura 540 mb/escritura 460 mb- PC 1TB SATA3 WD Caviar Blue- PC 2TB SATA3 Western Digital Caviar Green- PC 3 TB SATA3 western Digital Green.

Ejercicio. Investigar sobre las características técnicas de los siguientes discosduros externos:

- ITB Toshiba USB 3.0- 2TB western Digital USB 3.0/2.5.- 3TB western Digital my book live Ethernet- 4TB Seagate 3.5 USB 3.0

Ejercicio. Investigar sobre mínimo tres programas que permitan particionar undisco duro.