SlideShare a Scribd company logo
1 of 76
Download to read offline
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.)
“La mayoría de las interfaces de usuario se construyen en torno al concepto de
núcleo. La existencia de un núcleo, es decir, de un único programa responsable de
la comunicación entre el hardware y el programa informático, resulta de
compromisos complejos referentes a cuestiones de resultados, seguridad y
arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la
utilizació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 de
los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo
y los programas del espacio del usuario.
Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos
siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de
ficheros o los servicios) necesariamente no son proporcionadas por un núcleo de
sistema de explotación. Pueden establecerse estas funciones del sistema de
explotación tanto en el espacio usuario como en el propio núcleo. Su implantación
en 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 espacio
usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta
llamada de función es frecuente, puede resultar útil integrar estas funciones al
núcleo para mejorar los resultados.”1
No necesariamente se necesita un núcleo para usar una computadora. Los
programas pueden cargarse y ejecutarse directamente en una computadora
«vacía», siempre que sus autores quieran desarrollarlos sin usar ninguna
abstracción del hardware ni ninguna ayuda del sistema operativo. Ésta era la
forma normal de usar muchas de las primeras computadoras: para usar distintos
programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el
tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños
programas auxiliares, como el cargador y el depurador, o se cargaban desde
memoria de sólo lectura. A medida que se fueron desarrollando, se convirtieron en
los fundamentos de lo que llegarían a ser los primeros núcleos de sistema
operativo.
Hay cuatro grandes tipos de núcleos:2
- Los núcleos monolíticos facilitan abstracciones del hardware subyacente
realmente potentes y variadas.
- Los micronúcleos (en inglés microkernel) proporcionan un pequeño
conjunto de abstracciones simples del hardware, y usan las aplicaciones
llamadas servidores para ofrecer mayor funcionalidad. (Andrew Tanenbaum
2004)
1
El kernel. Consultado el 2 de septiembre de 2013.
http://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)
2
Ibid.
- Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los
micronúcleos puros, excepto porque incluyen código adicional en el espacio
de núcleo para que se ejecute más rápidamente.
- Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de
bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo
o casi directo al hardware.
El kernel ó núcleo de linux se puede definir como el corazón de este sistema
operativo. Es el encargado que el software y el hardware del computador puedan
trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
- Administración de la memoria para todos los programas y procesos en
ejecución.
- Administración del tiempo de procesador que los programas y procesos en
ejecucion utilizan.
- Es el encargado de que podamos acceder a los periféricos/elementos de
nuestro ordenador de una manera cómoda.
Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de
versiones del núcleo:
Versión de producción: Era la versión estable hasta el momento, de las versiones
de desarrollo o experimentales.
Versión de desarrollo: Esta versión era experimental y era la que utilizaban los
desarrolladores para programar, comprobar y verificar nuevas características,
correcciones, etc. Estos núcleos solían ser inestables y no se debían usar sin
saber lo que se hacía.
Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguiente
forma: 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 y
estos núcleos se basan en el núcleo ("vanilla") distribuido por Linus Torvalds y el
equipo de programadores del núcleo.
El núcleo se puede bajar de un gran número de servidores en internet pero el sitio
oficial es http://www.kernel.org/ . En este enlace hay una lista internacional oficial
de 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ódigo
tiene el acceso directo a todo el hardware y toda la memoria, incluso a los
espacios de dirección de todos los procesos del modo usuario. La parte de
WINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no es
más que un conjunto de servicios disponibles a todos los componentes del
Sistema Operativo, donde cada grupo de servicios es manipulado por
componentes que son totalmente independientes (entre ellos el Núcleo) entre sí y
se comunican a través de interfaces bien definidas.
Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La
mayoría del código del Sistema Operativo corre en Modo Usuario, así como los
subsistemas de ambiente (Win32 y POSIX que serán explicados posteriormente) y
aplicaciones de usuario. Estos programas solamente acceden a su propio espacio
de direcciones e interactúan con el resto del sistema a través de mensajes
Cliente/Servidor.
Capa de Abstracción de Hardware (HAL).
HAL (Hardware Abstraction Layer) es una interfaz entre el hardware y el resto del
Sistema Operativo, está implementada como una biblioteca de enlace dinámico
(dll) y es responsable de proteger el resto del sistema de las especificaciones del
hardware, 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 tiene
que preocuparse sobre que plataforma está corriendo. Cada plataforma en que el
sistema corre necesita un HAL específico. El diseño intenta que cuando Windows
sea portado a una nueva arquitectura de procesador, el HAL sea reescrito para el
nuevo procesador, pero el resto del sistema simplemente debe ser recompilado.
Microkernel: Es el responsable de todas las acciones que se realizan sobre el
sistema y casi todas las funciones del sistema pasan a través de él, está situado
en el corazón de Windows, trabaja muy estrechamente con el HAL, este planifica
la ejecución de hilos y manipula las interrupciones y excepciones de procesos. El
papel de este es mantener a los procesadores lo más ocupado posible. En sentido
general 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.
Ejecutor de Windows: Se encarga de las tareas importantes, las que son de vital
importancia para el sistema completo, ya que el microkernel está casi siempre
demasiado ocupado para dirigirse directamente.
El Administrador de Objetos (Object Manager): es usado para crear, modificar y
eliminar objetos (tipos de datos abstractos que son usados para representar
recursos del Sistema Operativo) usados por todos los sistemas que conforman el
Ejecutor de Windows. Este también proporciona información sobre el estado de
los 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én
proporciona 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 un
esquema que permite usar los recursos del disco en lugar de la memoria física del
sistema moviendo las páginas al disco cuando estas no están siendo usadas y
recuperándolas cuando se les necesitan. Este es un segmento integral de
Windows el cual asigna espacios de direcciones de 32 bit a cada proceso sin
preocuparse de la cantidad de memoria física del sistema.
El Servicio de Llamadas a Procedimientos Locales (Local Procedure Call Facility o
LPC): se integran al diseño cliente/servidor de Windows. Este es la interfaz entre
todos los procesos clientes y servidores que corren localmente en el sistema.
Monitor de Seguridad (Security Reference Monitor o SRM): es el lecho de toda la
seguridad dentro del sistema WINDOWS y es el responsable de hacer cumplir
todas las políticas de seguridad en la computadora local.
El Administrador de Entrada-Salida (I/O Manager): es responsable de gestionar la
comunicación entre los distintos drivers de dispositivo, para lo cual implementa
una interfaz bien definida que permite el tratamiento de todos los drivers de una
manera homogénea, sin que intervenga el cómo funciona específicamente cada
uno.
Subsistemas de Ambiente Protegido
Dos de los objetivos de WINDOWS son personalidad y compatibilidad. Esto ha
sido logrado a través de los subsistemas de ambiente protegido.
La personalidad esencialmente significa que WINDOWS expone múltiples
conjuntos de interfaces de programas de aplicación (APIs) y puede actuar
eficazmente como si fuera un sistema operativo diferente. WINDOWS viene con
una personalidad POSIX y OS/2 además de sus personalidades Win32, Win16 y
DOS.
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 de
ambiente soportados en WINDOWS, los que actúan como clientes y traducen sus
llamadas API hacia las API apropiadas de Win32.
El subsistema Win32 es responsable de toda la entrada y salida. Este posee el
control de la pantalla, el teclado, y el ratón. Cuando otros subsistemas, como OS/2
o POSIX, necesitan beneficiarse de estos dispositivos, ellos piden los servicios al
subsistema de Win32.
Algunos de los objetivos que se trazaron para mantener la compatibilidad con las
aplicaciones hechas en versiones anteriores fueron:
- Permitir que los programas hechos sobre DOS pudieran correr sin
modificación.
- Suministrar la capacidad para ejecutar la mayoría de las aplicaciones
Windows de 16 bits sin modificación.
- Proteger al sistema y otras aplicaciones de 32 bits de la interferencia de
las aplicaciones de 16 bits y DOS.
- Permitir a las plataformas RISC (Reduced Instruction set Computer,
microprocesador cuyo número de instrucciones es reducido para lograr
una frecuencia más alta de trabajo) ejecutar aplicaciones Windows de
16 bits y DOS.
El Subsistema POSIX
Uno de los estándares más frecuentemente citados soportados por Windows es el
POSIX (Interfaz de Sistema operativo Portable Basado en Unix), el cual
representa la interfaz del Sistema Operativo portable y fue desarrollado por el
IEEE (Instituto de Ingenieros en Electricidad y Electrónica) como un método de
proporcionar portabilidad a las aplicaciones hechas sobre plataformas UNIX. No
obstante, 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 para
aplicaciones UNIX, este subsistema da soporte a las aplicaciones OS/2.
Proporciona la interfaz gráfica y las llamadas al sistema; las llamadas son servidas
con ayuda del Ejecutor de Windows.
Estructura del sistema
Los kernels de Windows NT o Minix son de tipo micro-
kernel, caracterizado porque proveen al sistema de un
estado mínimo necesario de funcionalidad, cargando el
resto de funciones necesarias en procesos autónomos e
independientes unos de otros, comunicándose con este
micro-kernel a través de una interfaz bien definida. Este
tipo de estructura es más fácil de mantener y el
desarrollo de nuevos componentes es mucho más
simple, dando a su vez una mayor estabilidad al
sistema. Por otro lado, debido a la estructura rígida del
interfaz, estos tipos de kernel son mucho más
complicados de reestructurar, y además, debido a las
arquitecturas del hardware actual, el proceso de intercomunicación dentro del
micro-kernel es mucho más que una simple llamada, por lo que hace que esta
estructura 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 de
instrucciones sin estructura alguna. A pesar de la estructura de macro-kernel, se
ha intentado equiparar su velocidad utilizando código optimizado en velocidad, y
se ha recuperado algunas de las mejores características de la estructura de micro-
kernel, como puede ser la carga de los diferentes drivers necesarios como
mó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én
instrucciones en ensamblador, aunque estas últimas se usan mayoritariamente en
los procesos de arranque y en el control de co-procesador. A continuación se
muestra una tabla con la cantidad de líneas en C y ensamblador que se usan
aproximadamente en la versión 2.0 del kernel de Linux, el cual consta de unas
470.000 líneas de código (la versión 1.0 constaba "únicamente" de 165.000
lí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
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 pesar
de 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 la
versión del kernel a la que corresponde dicho archivo, aunque no es simplemente
así. Como se puede suponer, la variación en una unidad del primer grupo de cifras
significa un cambio muy importante en el kernel, siendo ésta menor conforme el
grupo de cifras que varía está más hacia la derecha.
El último grupo de cifras tiene, además del significado anterior como indicador de
versión, un significado añadido, que es el de que si la cifra es par, esa versión de
kernel se considera como una versión estable, si, en cambio ésta es impar, se
considera 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 un
proveedor de servicios. Cada proceso existe por separado y el espacio de
memoria reservado a cada uno de ellos está protegido para que no pueda ser
modificado. Desde este punto de vista, se está llevando a cabo un sistema
multiproceso real (ver figura 2).
Desde un punto de vista interno, el contexto cambia. Solo hay un proceso en
marcha en el computador que puede acceder a todos los recursos, el sistema
operativo. El resto de tareas se llevarán a cabo como co-rutinas, las cuales, de
una forma totalmente independiente, deciden por ellas mismas a qué tarea y
cuándo pasarán el control. Debido a esto, un fallo en la programación del kernel
podría bloquear todo el sistema.
Figura 2 - Los procesos desde una vista interna y externa
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 ser
interrumpido 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ón
producida por el software. Pueden suspender una tarea para llevar a
cabo 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 del
sistema y algunas interrupciones.
6. Preparado (Ready)
El proceso está en espera de ser atendido por el procesador, que está ocupado
con otro proceso en ese momento.
Estos estados no pueden ser adquiridos sin orden alguno o porque sí, sino que
llevan un ciclo el cual debe ser respetado. Además, si se observa la figura 3, se
podrá 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 y
threads. Un thread es una especie de rama o camino en la ejecución de un
programa que puede ser procesado en paralelo con otros threads.
Linux no hace esa distinción. En el kernel, únicamente existe el concepto de un
proceso, el cual puede compartir recursos con otros procesos. Por eso, una tarea
es una generalización del concepto de un thread.
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 de
este tipo. De hecho los algoritmos usados en Linux para su manejo constituyen la
mayor parte del código del kernel.
La descripción de las características de un
proceso, vienen dadas por la estructura
task_struct. Una de las variables usadas es la
llamada state, que es la encargada de
almacenar el estado actual de la tarea (los
valores que puede tomar esta variable los
podemos ver en la figura 4). Otras variables
son counter, que es la variable usada por el
Programador (scheduler) para seleccionar el
siguiente proceso, o signal que contiene una
máscara de un bit (bit mask) para las señales
recibidas por el proceso.
Todos los procesos creados son introducidos en una lista doblemente enlazada
gracias a los dos punteros siguientes (el comienzo y final de esta lista están
almacenados 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ía
familiar según qué proceso lo haya creado, y que al igual que los anteriores están
representados 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 posee
su propia subestructura para el almacenamiento de datos, o que cada proceso
posee un numero identificativo pid, a partir del cual se nos facilitará el manejo de
dicha tarea.
La tabla de procesos
Cada proceso en ejecución que haya en el ordenador, ocupa una entrada en la
tabla 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 tarea
cargada por el kernel. Esto es así porque ella será la encargada de lanzar el resto
de tareas, como los demonios cargados en el inicio (p.ej. lpd) o el controlador del
ratón (gpm).
Ficheros e inodes
En los sistemas UNIX se ha hecho tradicionalmente una distinción entre la
estructura de archivos y la de inodes. La estructura inode describe un archivo,
aunque esto puede ser visto de diferentes formas: por ejemplo, la estructura de
datos en el kernel y la del disco duro describen archivos, y, a pesar de ser
distintas, 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 el
kernel, la cual describe diferentes atributos y propiedades del archivo al que
corresponde.
Principales mecanismos del kernel
- Señales: Desde los primeros sistemas UNIX, esta característica ha sido un
de las que más ventajas le han aportado: el uso de señales. Éstas son
usadas por el kernel para informar a los procesos sobre ciertos eventos, lo
que permite abortarlos o cambiarlos de un estado a otro.
Todas estas señales son enviadas con
la función send_sig(), la cual admite el
paso de tres parámetros, siendo éstos:
el numero de la señal, una descripción
del proceso que va a recibir la señal (un
puntero a la entrada del proceso en
cuestión en la tabla de procesos), y
opcionalmente la prioridad del proceso
que envía la señal. Este último
argumento puede tener dos valores:
desde el kernel, el cual puede enviar
señales a cualquier proceso, o desde un
proceso, para lo que es necesario que
éste último tenga derechos de
superusuario, o bien que tener el mismo
UID y GID que el proceso al que se le
envía la señal.
- Tuberías: Las tuberías o pipes (... | ...) son unos enlaces que se pueden
realizar con cualquier shell, que unen las entradas de algunos programas
con las salidas de los otros. Gracias a esto es posible usar gran parte de los
comandos de Linux como filtros y, así, construir comandos más potentes a
partir de comandos sencillos. Estas pipes, son consideradas como el
método clásico de comunicación entre procesos.
Otra variante de las tuberías son los FIFOs (First In, First Out), que se
diferencian 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 el
SO. En Linux hay dos tipos de interrupciones: rápidas y lentas. Se podría
decir que son tres tipos, considerando el tercero como las llamadas del
sistema, también desencadenadas por interrupciones.
1. Interrupciones lentas: Son las más usuales. Se caracterizan porque
se puede llevar a cabo otras interrupciones mientras éstas son
tratadas. Después de que una interrupción lenta haya sido
procesada, otras tareas adicionales, de carácter periódico, son
llevadas a cabo por el sistema (por ejemplo el scheduler). Otro
ejemplo, es la interrupción lenta del reloj.
2. Interrupciones rápidas: Éstas se usan para tareas más cortas y
menos complejas que las comentadas en el apartado anterior.
Mientras este tipo de interrupciones son llevadas a cabo, el resto de
interrupciones son bloqueadas, a menos que la propia rutina en
ejecución las active. Un ejemplo de este tipo de rutinas es la
interrupción de teclado.
En ambos tipos de interrupciones el proceso que se lleva a cabo es muy
similar: primero todos los registros son salvados con SAVE_ALL y la
interrupción envía una confirmación al controlador de interrupciones con
ACK. En caso de un sistema con múltiples procesadores, se ejecuta una
llamada a la rutina del kernel ENTER_KERNEL para sincronizar el acceso
al kernel de los procesadores. Una vez se ha completado la interrupción, se
ejecuta la rutina RESTORE_MOST que devuelve los registros guardados
previamente a sus valores iniciales, llamando después a iret para continuar
con el proceso interrumpido.
- Iniciando el sistema: LILO3
es el encargado de encontrar el kernel de
Linux 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 por
muchos años. Aunque ahora GRUB es el gestor de arranque por defecto, algunos prefieren usar LILO porque
les es más familiar y otros porque GRUB puede causar problemas al arrancar determinado tipo de hardware.
encuentra el código en ensamblador encargado de inicializar el hardware
esencial. Una vez esto se ha llevado a cabo, el proceso se cambia a Modo
Protegido. 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 del
sistema operativo actual y continúa desde startup_32: En este punto se inician
más secciones del hardware (en particular el MMU, el co-procesador y la tabla de
descripciones de interrupciones) y el entorno requerido para la ejecución de
funciones 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ódigo
ensamblador ha encontrado sobre el hardware hasta este punto. Entonces se
inicializan todas las áreas del kernel. Así se puede citar un ejemplo de su
ejecució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 gestor
de dos etapas.
1. La etapa 1 o el gestor de arranque primario se lee en la memoria por la BIOS desde el MBR. El
gestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR. Su
funció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 secundario
visualiza la pantalla inicial de Red Hat Linux. Esta pantalla le permite seleccionar el sistema
operativo 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 LILO
determina qué sistema operativo iniciar, éste lo carga en la memoria y lleva el control de la máquina
a ese sistema operativo.
Una vez que se ha llevado a cabo la etapa 2 en memoria, LILO visualiza la pantalla inicial de Red Hat Linux
con los diferentes sistemas operativos o kernel que han sido configurados para arrancar. Por defecto, si Red
Hat Linux es el único sistema instalado, linux será la única opción disponible. Si el sistema tiene múltiples
procesadores habrá una opción linux-up para el kernel del procesador único y una opción linux para los
kernel 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 de
arranque.
Para accesar una línea de comandos boot: presione [Ctrl]-[X].
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 los
demonios bdflush y kswap. Entonces se hace una llamada a setup, que será la
encargada de montar el sistema de archivos root.
- Interrupción del Reloj: Todos los sistemas operativos necesitan una forma
de medir el tiempo y de mantener una hora en el sistema. El sistema de
medida se implementa normalmente haciendo interrupciones en intervalos
ya predefinidos. Bajo Linux, el tiempo se mide en ticks desde que el sistema
es arrancado. Un tick representa 10 milisegundos, así que la interrupción
del 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. Sin
embargo, este método provee solo de un base interna de tiempo.
La interrupción del reloj es llamada relativamente a menudo y, por eso, es
un tanto dependiente del tiempo.
La rutina de interrupción en la versión 2.0, actualiza la variable jiffies y
marca como activa una parte de la interrupción del reloj, la cual es llamada
por el sistema más adelante, y se desarrolla el resto del trabajo. Como
pueden ocurrir varias interrupciones de reloj antes de activar el resto de
rutinas, 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.
lost_ticks cuenta las interrupciones de reloj producidas desde la última
activación; lost_ticks_system cuenta, en cambio el número de
interrupciones transcurridas mientras el proceso de interrupción estaba en
Modo de Sistema.
El sistema de archivos de linux
Actualmente es normal encontrar un PC con
su disco duro con distintas particiones, cada
una de ellas con un sistema de ficheros
distinta. Esta variedad es debida a que
prácticamente cada SO tiene su propio
sistema de ficheros, alegando que éste es
más rápido y seguro que el resto.
Puede que una de las razones por las que
Linux ha tenido tanta popularidad, sea por la
cantidad de sistemas de ficheros distintos
que soporta (FAT16 y FAT32 de Windows,
NTFS de WinNT, HPFS de OS/2, ISO 9660 y
Joliet, que son los estándares más comunes
en CD, etc.). El soporte de esta gran cantidad de sistema de ficheros es debido a
la interfaz unificada que usa el kernel llamada Virtual File System Switch (VFS) o
Virtual File System. Este sistema virtual de ficheros es el encargado de cada
proceso pueda manejar información desde los distintos ficheros sin necesidad de
saber donde se encuentran, o de saber si pertenecen a un tipo de sistema de
ficheros u otro.
Conocimientos básicos
La CPU no es el único elemento "inteligente" que existe en la computadora. Cada
elemento hardware que la compone lleva incluido su propio controlador (por
ejemplo el ratón y el teclado son controlados por el chip SuperIO, el disco IDE por
el controlador IDE o el SCSI por la controladora SCSI). Esto implica que el acceso
a cada uno de estos dispositivos se realizará de forma distinta, por lo que cada
utilidad debería incluir unos controladores. En vez de eso, los controladores se
incluyen en el kernel como unas librerías conocidas como device drivers
(controlador de dispositivo), de tal forma que se puede acceder a todos los
dispositivos así configurados, sin necesidad de conocer cómo funciona el
dispositivo a bajo nivel. De esta forma se consigue una abstracción en lo que se
refiere al acceso a dispositivos.
En Linux, como en Unix, a los distintos sistemas de ficheros que el sistema puede
usar no se accede por identificadores de dispositivo (como un número o nombre
de unidad) pero, en cambio se combinan en una estructura jerárquica de árbol que
representa el sistema de ficheros como una entidad única y sencilla. Linux añade
cada sistema de ficheros nuevo en este árbol de sistemas de ficheros cuando se
monta. Todos los sistemas de ficheros, de cualquier tipo, se montan sobre un
directorio 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. Cuando
el sistema de ficheros se desmonta, los ficheros propios del directorio de montaje
son visibles de nuevo.
Además, gracias a esta forma de
trabajo, no es necesario implementar el
código necesario para acceder a los
distintos dispositivos, sino que cada
proceso se comunica con los
dispositivos que necesite a través del
acceso que le es proporcionado a través
del VFS, como se puede observar en la
figura 4.
El primer sistema de ficheros diseñado
específicamente para Linux, el sistema de Ficheros Extendido, o EXT, fue
introducido en Abril de 1992 y solventó muchos problemas pero era aún falto de
rapidez. Así, en 1993, el Segundo sistema de Ficheros Extendido, o EXT2, fue
añadida al kernel como sistema principal de ficheros.
Figura 4 - Estructura del VFS
En ese momento un importante desarrollo tuvo lugar en Linux. El sistema de
ficheros real se separó del SO y servicios del sistema a favor de un interfaz
conocido como el Sistema de Ficheros Virtual, o VFS. VFS permite a Linux
soportar muchos, incluso muy diferentes, sistemas de ficheros, cada uno
presentando un interfaz software común a través del VFS. Todos los detalles del
sistema de ficheros de Linux son traducidos mediante software de forma que todo
el sistema de ficheros parece idéntico al resto del kernel de Linux y a los
programas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtual
de Linux permite al usuario montar de forma transparente diferentes sistemas de
ficheros al mismo tiempo.
El sistema de Ficheros Virtual está
implementado de forma que el acceso a
los ficheros es tan rápido y eficiente como
sea posible. También debe asegurar que
los ficheros y los datos que contiene son
correctos. Estos dos requisitos pueden ser
incompatibles entre sí. El VFS de Linux
mantiene una antememoria con
información de cada sistema de ficheros
montado y en uso. Se debe tener mucho
cuidado al actualizar correctamente el
sistema de ficheros ya que los datos
contenidos en las antememorias se modifican cuando se crean, escriben y borran
ficheros y directorios.
Si se pudieran ver las estructuras de datos del sistema de ficheros dentro del
kernel en ejecución, se podría ver los bloques de datos que se leen y escriben por
el sistema de ficheros. Las estructuras de datos, que describen los ficheros y
directorios que son accedidos serian creadas y destruidas y todo el tiempo los
controladores 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 se
accede a los bloques se ponen en el Buffer Cache y se almacenan en varias colas
dependiendo 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 de
dispositivos de bloque.
El Virtual File System
Como en el sistema de ficheros EXT2, cada fichero, directorio y demás se
representan en el VFS por un y sólo un inodo VFS. La información en cada inodo
VFS se construye a partir de información del sistema de ficheros por las rutinas
específicas del sistema de ficheros. Los inodos VFS existen sólo en la memoria
del 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 los
siguientes campos:
1. device: Este es el identificador de dispositivo del dispositivo que
contiene el fichero o lo que este inodo VFS represente,
2. inode number: Este es el número del inodo y es único en este
sistema 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 este
inodo 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 realizan
operaciones para este inodo, por ejemplo, truncar el fichero que
representa este inodo.
8. count: El número de componentes del sistema que están usando
actualmente este inodo VFS. Un contador de cero indica que el inodo
está 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 de
ficheros 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 ha
cosechado, siendo básico en cualquier distribución de este SO. Su construcción
se 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 esta
elección del tamaño se hace al crear el sistema con mke2fs). Cuando se
almacena un fichero, se hace de tal forma que ocupe un número entero de
bloques, quedando gran parte de la capacidad del último bloque usado bastante
desperdiciada, a no ser que el fichero de datos ocupe exactamente un número de
bloques, tal como se ha explicado reiteradas veces en clase.
No todos los bloques del sistema de ficheros contienen datos, algunos deben
usarse para mantener la información que describe la estructura del sistema de
ficheros. EXT2 define la topología del sistema de ficheros describiendo cada
fichero del sistema con una estructura de datos inodo. Un inodo describe que
bloques ocupan los datos de un fichero y también los permisos de acceso del
fichero, las horas de modificación del fichero y el tipo del fichero. Cada fichero en
el 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 almacenan
juntos en tablas de inodos. Los directorios EXT2 son ficheros especiales (ellos
mismos descritos por inodos) que contienen punteros a los inodos de sus entradas
de directorio.
El sistema de ficheros EXT2 divide
las particiones lógicas que ocupa en
Grupos de Bloque (Block Groups).
Cada grupo duplica información
crítica para la integridad del sistema
de ficheros ya sea valiéndose de
ficheros y directorios como de
bloques de información y datos.
Esta duplicación es necesaria por si
ocurriera un desastre y el sistema
de 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 de
inodos con un mapa de bits que permite al sistema seguir la pista de inodos
reservados y libres. Un inodo EXT2, entre otra información, contiene los siguientes
campos:
1. mode: Esto mantiene dos partes de información; qué inodo describe
y los permisos que tienen los usuarios. Para EXT2, un inodo puede
describir un fichero, directorio, enlace simbólico, dispositivo de
bloque, dispositivo de carácter o FIFO.
2. owner Information: Los identificadores de usuario y grupo de los
dueños de este fichero o directorio. Esto permite al sistema de
ficheros 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 hora
en que se modificó.
5. datablocks: Punteros a los bloques que contienen los datos que
este inodo describe. Los doce primeros son punteros a los bloques
fí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 de
punteros que apuntan a bloques de datos. Esto significa que ficheros
menores o iguales a 12 bloques de datos en longitud son más
fácilmente accedidos que ficheros más grandes.
Los inodos EXT2 pueden describir ficheros de dispositivo especiales, aunque no
se consideran como ficheros reales, aunque permiten que los programas puedan
usarlos para acceder a los dispositivos. Todos los ficheros de dispositivo de /dev
están ahí para permitir a los programas acceder a los dispositivos de Linux. Por
ejemplo el programa mount toma como argumento el fichero de dispositivo que el
usuario desee montar.
El Superbloque contiene una descripción del tamaño y forma base del sistema de
ficheros. La información contenida permite al administrador del sistema de ficheros
usar y mantener el sistema de ficheros. Normalmente sólo se lee el Superbloque
del Grupo de Bloque 0 cuando se monta el sistema de ficheros pero cada Grupo
de Bloque contiene una copia duplicada en caso de que se corrompa sistema de
ficheros. Entre otra información contiene:
1. Magic Number: Permite al software de montaje comprobar que es
realmente el Superbloque para un sistema de ficheros EXT2. Para la
versión actual de EXT2 éste es 0xEF53.
2. Revision Level: Los niveles de revisión mayor y menor permiten al
código de montaje determinar si este sistema de ficheros soporta o
no características que sólo son disponibles para revisiones
particulares del sistema de ficheros. También hay campos de
compatibilidad que ayudan al código de montaje determinar que
nuevas características se pueden usar con seguridad en ese sistema
de ficheros.
3. Mount Count and Maximum Mount Count: Juntos permiten al
sistema determinar si el sistema de ficheros fue comprobado
correctamente. El contador de montaje se incrementa cada vez que
se monta el sistema de ficheros y cuando es igual al contador
máximo de montaje muestra el mensaje de aviso «maximal mount
count reached, running e2fsck is recommended».
4. Block Group Number: El número del Grupo de Bloque que tiene la
copia de este Superbloque.
5. Block Size: El tamaño de bloque para este sistema de ficheros en
bytes, por ejemplo 1024 bytes.
6. Blocks per Group: El número de bloques en un grupo. Como el
tamañ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 el
sistema de ficheros. El primer inodo en un sistema de ficheros EXT2
raíz seria la entrada directorio para el directorio '/'.
Sistema de Ficheros Proc
El sistema de ficheros /proc muestra realmente la potencia del Sistema Virtual de
Ficheros. Este sistema no existe en realidad. Éste como el resto de sistemas de
ficheros, 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 estructuras
del 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 variado
mucho, desde los primeros discos
IBM hasta los formatos
estandarizados actualmente: 3,5 " los
modelos para PC y servidores, 2,5 "
los modelos para dispositivos
portátiles. Todos se comunican con
la computadora a través del
controlador de disco, empleando una
interfaz estandarizada. Los más
comunes hasta los años 2000 han
sido IDE (también llamado ATA o
PATA), SCSI (generalmente usado
en servidores y estaciones de
trabajo). Desde el 2000 en adelante
ha ido masificándose el uso de los
Serial ATA. Existe además FC
(empleado exclusivamente en
servidores).
Para poder utilizar un disco duro, un
sistema operativo debe aplicar un
formato de bajo nivel que defina una
o más particiones. La operación de
formateo requiere el uso de una
fracción del espacio disponible en el
disco, que dependerá del formato
empleado. Además, los fabricantes
de discos duros, unidades de estado
sólido y tarjetas flash miden la capacidad de los mismos usando prefijos SI, que
emplean múltiplos de potencias de 1000 según la normativa IEC y IEEE, en lugar
de los prefijos binarios, que emplean múltiplos de potencias de 1024, y son los
usados por sistemas operativos de Microsoft. Esto provoca que en algunos
sistemas operativos sea representado como múltiplos 1024 o como 1000, y por
tanto existan confusiones, por ejemplo un disco duro de 500 GB, en algunos
sistemas 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 y
emplean las mismas interfaces, pero no están formadas por discos mecánicos,
sino por memorias de circuitos integrados para almacenar la información. El uso
de 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 para
el mercado doméstico. C. Dennis Mee, Eric D. Daniel (1996).
Los discos duros pertenecen a la llamada memoria secundaria o almacenamiento
secundario. El disco duro es más rápido, sin embargo su velocidad depende de la
zona 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 la
pista y el sector deseado; es la suma del Tiempo medio de búsqueda (situarse en
la 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 la
pista deseada; es la mitad del tiempo empleado por la aguja en ir desde la pista
má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_duro
5
ibid
Tiempo de lectura/escritura: Tiempo medio que tarda el disco en leer o escribir
nueva información: Depende de la cantidad de información que se quiere leer o
escribir, el tamaño de bloque, el número de cabezales, el tiempo por vuelta y la
cantidad de sectores por pista.
Latencia media: Tiempo medio que tarda la aguja en situarse en el sector
deseado; 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 velocidad
de 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 los
mismos (independientemente de donde estemos ubicados) ya que son definidos
por las revoluciones del motor (4200, 5400, 7200, 10mil y 15mil rpm) y por
el 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 hasta
6 ó 7 según el modelo), y que giran todos a la vez sobre el mismo eje, al que están
unidos. El cabezal (dispositivo de lectura y escritura) está formado por un conjunto
de brazos paralelos a los platos, alineados verticalmente y que también se
desplazan de forma simultánea, en cuya punta están las cabezas de
lectura/escritura. Por norma general hay una cabeza de lectura/escritura para cada
superficie de cada plato. Los cabezales pueden moverse hacia el interior o el
exterior de los platos, lo cual combinado con la rotación de los mismos permite
que los cabezales puedan alcanzar cualquier posición de la superficie de los
platos.
Interior de un disco duro; se aprecia la superficie de un plato y el cabezal de lectura/escritura
retraí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 la
computadora 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 (Small
Computer System Interface) paralelo, aunque sigue utilizando comandos SCSI para interaccionar con los
dispositivos SAS. Aumenta la velocidad y permite la conexión y desconexión de forma rápida.
Tener forma redondeada y partes mecánicas (motor, cabeza lectora y discos) es
una gran desventaja: La forma redondeada significa que la velocidad de
lectura/escritura es mejor al comienzo del disco que al final y las partes mecánicas
generan una latencia significativa en milisegundos.
Cada plato posee dos ojos, y es necesaria una cabeza de lectura/escritura para
cada cara. Si se observa el esquema Cilindro-Cabeza-Sector de más abajo, a
primera vista se ven 4 brazos, uno para cada plato. En realidad, cada uno de los
brazos es doble, y contiene 2 cabezas: una para leer la cara superior del plato, y
otra para leer la cara inferior. Por tanto, hay 8 cabezas para leer 4 platos, aunque
por cuestiones comerciales, no siempre se usan todas las caras de los discos y
existen discos duros con un número impar de cabezas, o con cabezas
deshabilitadas.
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 que
impide que los cabezales pasen por encima de los platos hasta que alcancen una
velocidad de giro que garantice la formación de esta película). Si alguna de las
cabezas 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.200
revoluciones por minuto se mueve a 129 km/h en el borde de un disco de 3,5
pulgadas).
La estructura física de un disco es la siguiente: un disco duro se organiza en
platos (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 dividen
en sectores (SECTORS). El disco duro tiene una cabeza (HEAD) en cada lado de
cada plato, y esta cabeza es movida por un motor cuando busca los datos
almacenados en una pista y un sector concreto.
El concepto "cilindro" (CYLINDER) es un parámetro de organización: el cilindro
está formado por las pistas concéntricas de cada cara de cada plato que están
situadas unas justo encima de las otras, de modo que la cabeza no tiene que
moverse 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 un
comité que impulsa llevarlo a 4 KiB. Antiguamente el número de sectores
por pista era fijo, lo cual desaprovechaba el espacio significativamente, ya
que en las pistas exteriores pueden almacenarse más sectores que en las
interiores. 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ás
eficientemente el disco duro. Así las pistas se agrupan en zonas de pistas
de igual cantidad de sectores. Cuanto más lejos del centro de cada plato se
encuentra una zona, ésta contiene una mayor cantidad de sectores en sus
pistas. Además mediante ZBR, cuando se leen sectores de cilindros más
externos la tasa de transferencia de bits por segundo es mayor; por tener la
misma velocidad angular que cilindros internos pero mayor cantidad de
sectores. 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 de
bloques), que consiste en dividir el disco entero en sectores y asignar a cada uno
un único número. Éste es el que actualmente se usa.
En cuanto a organización lógica, cuando damos formato lógico (el físico, o a bajo
nivel, viene hecho de fábrica y no es recomendable hacerlo de nuevo, excepto en
casos excepcionales, pues podría dejar inutilizado el disco) lo que hacemos es
agrupar los sectores en unidades de asignación (CLUSTERS) que es donde se
almacenan los datos de manera organizada. Cada unidad de asignación sólo
puede ser ocupado por un archivo (nunca dos diferentes), pero un archivo puede
ocupar más de una unidad de asignación.
Dentro de un disco duro hay varios platos (entre 2 y 4), que son discos (de
aluminio o cristal) concéntricos y que giran todos a la vez. El cabezal (dispositivo
de lectura y escritura) es un conjunto de brazos alineados verticalmente que se
mueven hacia dentro o fuera según convenga, todos a la vez. En la punta de
dichos brazos están las cabezas de lectura/escritura, que gracias al movimiento
del cabezal pueden leer tanto zonas interiores como exteriores del disco.
Cada plato tiene dos caras, y es necesaria una cabeza de lectura/escritura para
cada cara (no es una cabeza por plato, sino una por cara). Si se mira el esquema
Cilindro-Cabeza-Sector (más abajo), a primera vista se ven 4 brazos, uno para
cada plato. En realidad, cada uno de los brazos es doble contiene 2 cabezas: una
para leer la cara superior del plato, y otra para leer la cara inferior. Por tanto, hay 8
cabezas 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 que
giran 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ón
que puede grabarse o almacenar en un disco duro. Hasta hace poco se medía en
Gigabytes (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 del
sector (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 que
corresponde a 8.455.200.768 bytes = 8257032 KB =8063,5 MB si hacemos el
cálculo con bytes "auténticos", es decir, si tenemos en cuenta que 1 KB son 1024
bytes y no 1000 como indican los fabricantes.
Velocidad de Rotación (RPM)
Es la velocidad a la que gira el disco duro, más exactamente, la velocidad a la que
giran el/los platos del disco, que es donde se almacenan magnéticamente los
datos. La regla es: a mayor velocidad de rotación, más alta será la transferencia
de datos, pero también mayor será el ruido y mayor será el calor generado por el
disco duro.
Se mide en número revoluciones por minuto (RPM). No debe comprarse un disco
duro IDE de menos de 5400 RPM (ya hay discos IDE de 7200 RPM), a menos que
te lo den a un muy buen precio, ni un disco SCSI de menos de 7200RPM (los hay
de 10.000 RPM). Una velocidad de 5400 RPM permitirá una transferencia entre
10MB y 16MB por segundo con los datos que están en la parte exterior del cilindro
o 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 datos
que necesitamos. Realmente es la suma de varias velocidades:
 El tiempo que tarda el disco en cambiar de una cabeza a otra cuando busca
datos.
 El tiempo que tarda la cabeza lectora en buscar la pista con los datos
saltando de una a otra.
 El tiempo que tarda la cabeza en buscar el sector correcto dentro de la
pista.
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 datos
que le hemos pedido. Hoy en día en un disco moderno, lo normal son 10
milisegundos.
Memoria CACHE (Tamaño del BUFFER)
El BUFFER o CACHE es una memoria que va incluida en la controladora interna
del disco duro, de modo que todos los datos que se leen y escriben a disco duro
se almacenan primeramente en el buffer. La regla de mano aquí es 128 KB para
discos de menos de 1 GB, 256 KB para discos mayores de 1 GB y 512 KB para
discos duros de 2 GB o mayores. Generalmente los discos duros actuales de más
de 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 a
continuación de una lectura estará situada en una posición físicamente contigua a
la última lectura, por eso los discos duros almacenas en la caché los datos
contiguos, 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 a
la 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 parte
más exterior del disco o plato en un periodo de un segundo. Normalmente se mide
en Mbits/segundo, y hoy en día, en un disco de 5400 RPM, un valor habitual es
100 Mbits/s, que equivale a 10 MB/s.
Interfaz: Medio de comunicación
entre el disco duro y el ordenador.
Puede ser IDE/ATA, SCSI, SATA,
USB o Firewire.
La memoria flash (usb) carece de
partes móviles y esto disminuye
enormemente su latencia
(retardo). La velocidad de
lectura/escritura es estable sin
importar la ubicación dentro de la
memoria flash; sin embargo hasta
ahora no se ha logrado igualar a la
ofrecida por los discos duros.
Velocidad en color AZUL, Latencia en color AMARILLO
Tal vez lo que muchos no saben es que los discos duros contienen un chip con
el 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 de
operaciones mecánicas de lectura/escritura.
En conclusión, la parte de la alta velocidad de los discos duros se debe a la
existencia de un chip que funciona bajo los mismos principios de las memorias
flash (no partes mecánicas y baja latencia).
Se puede observar el chip principal controlador del disco duro. Es un chip
controlador SATA, que además incluye los 16MB de memoria caché especificados
en el disco duro.
Adicionalmente: No todas las BIOS son memorias FLASH (hay Bios PLCC y DIP),
pero modernamente la tendencia ha sido FLASH.
Tipos de conexión7
Existen distintos tipos de conexión asociados a los discos duros que poseen los
mismos 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 de
almacenamiento masivo de datos, como los discos duros y ATAPI
(Advanced Technology Attachment Packet Interface) Hasta
aproximadamente el 2004, el estándar principal por su versatilidad y
asequibilidad. Son planos, anchos y alargados.
- SCSI: Son interfaces preparadas para discos duros de gran capacidad de
almacenamiento y velocidad de rotación. Se presentan bajo tres
7
Ibidem.
especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (Fast
SCSI) y SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de acceso
puede llegar a 7 milisegundos y su velocidad de transmisión secuencial de
información puede alcanzar teóricamente los 5 Mbit/s en los discos SCSI
Estándares, los 10 Mbit/s en los discos SCSI Rápidos y los 20 Mbit/s en los
discos SCSI Anchos-Rápidos (SCSI-2). Un controlador SCSI puede
manejar hasta 7 discos duros SCSI (o 7 periféricos SCSI) con conexión tipo
margarita (daisy-chain). A diferencia de los discos IDE, pueden trabajar
asincrónicamente con relación al microprocesador, lo que posibilita una
mayor 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ápido
y eficiente que IDE. Existen tres versiones, SATA 1 con velocidad de
transferencia de hasta 150 MB/s (hoy día descatalogado), SATA 2 de hasta
300 MB/s, el más extendido en la actualidad; y por último SATA 3 de hasta
600 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 de
permitir conexión en caliente.
- SAS (Serial Attached SCSI): Interfaz de transferencia de datos en serie,
sucesor del SCSI paralelo, aunque sigue utilizando comandos SCSI para
interaccionar con los dispositivos SAS. Aumenta la velocidad y permite la
conexión y desconexión en caliente. Una de las principales características
es que aumenta la velocidad de transferencia al aumentar el número de
dispositivos conectados, es decir, puede gestionar una tasa de
transferencia constante para cada dispositivo conectado, además de
terminar con la limitación de 16 dispositivos existente en SCSI, es por ello
que se vaticina que la tecnología SAS irá reemplazando a su predecesora
SCSI. Además, el conector es el mismo que en la interfaz SATA y permite
utilizar estos discos duros, para aplicaciones con menos necesidad de
velocidad, ahorrando costes. Por lo tanto, las unidades SATA pueden ser
utilizadas por controladoras SAS pero no a la inversa, una controladora
SATA no reconoce discos SAS.
Dimensiones de los DD8
La dimensión de los DD está asociada a un concepto denominado "factor de
forma", heredada da las dimensiones de las disqueteras. Pueden ser montados en
8
Ibídem.
los mismos chasis y así los discos duros con factor de forma, pasaron a llamarse
coloquialmente 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 dimensiones
má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 disco
duros, SA1000, teniendo las mismas dimensiones y siendo compatible con
la interfaz de 8 pulgadas de las disqueteras. Había dos versiones
disponibles, 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 de
forma es el primero usado por los discos duros de Seagate en 1980 con el
mismo 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únmente
se usa hoy; por ejemplo: 41,4 mm (1,64 pulgadas). La mayoría de los
modelos de unidades ópticas (DVD/CD) de 120 mm usan el tamaño del
factor de forma de media altura de 5¼, pero también para discos duros. El
modelo 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 de
forma es el primero usado por los discos duros de Rodine que tienen el
mismo tamaño que las disqueteras de 3½, 41,4 mm de altura. Hoy ha sido
en 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 se
corresponde con el tamaño de las lectoras de disquete. Este es
frecuentemente usado por los discos duros de los equipos móviles
(portátiles, reproductores de música, etc...) y en 2008 fue reemplazado por
unidades de 3,5 pulgadas de la clase multiplataforma. Hoy en día la
dominante de este factor de forma son las unidades para portátiles de 9,5
mm, 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 Integral
Peripherals en 1993 y se involucró con ATA-7 LIF con las dimensiones
indicadas y su uso se incrementa en reproductores de audio digital y su
subnotebook. La variante original posee de 2GB a 5GB y cabe en una
ranura de expansión de tarjeta de ordenador personal. Son usados
normalmente en iPods y discos duros basados en MP3.
- 1 pulgadas: 42,8×5×36,4 mm. Este factor de forma se introdujo en 1999 por
IBM y Microdrive, apto para los slots tipo 2 de compact flash, Samsung
llama al mismo factor como 1,3 pulgadas.
- 0,85 pulgadas: 24×5×32 mm. Toshiba anunció este factor de forma el 8 de
enero de 2004 para usarse en móviles y aplicaciones similares, incluyendo
SD/MMC slot compatible con disco duro optimizado para vídeo y
almacenamiento para micromóviles de 4G. Toshiba actualmente vende
versiones de 4GB (MK4001MTD) y 8GB (MK8003MTD) 5 y tienen el
Record Guinness del disco duro más pequeño. Los principales fabricantes
suspendieron la investigación de nuevos productos para 1 pulgada (1,3
pulgadas) y 0,85 pulgadas en 2007, debido a la caída de precios de las
memorias flash, aunque Samsung introdujo en el 2008 con el SpidPoint A1
otra unidad de 1,3 pulgadas.
El nombre de "pulgada" para los factores de forma normalmente no identifica
ningún producto actual (son especificadas en milímetros para los factores de
forma más recientes), pero estos indican el tamaño relativo del disco, para interés
de 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 de
particiones. El sector de arranque o bloque de arranque, es un sector de un
disco duro, disquete, o cualquier otro dispositivo de almacenamiento de
datos que contiene código de arranque, por lo general (pero no
necesariamente), de un sistema operativo almacenado en otros sectores
del disco. La BIOS selecciona un dispositivo de arranque, entonces copia
al 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 446
y ocupa 64 bytes, conteniendo 4 registros de 16 bytes, los cuales definen las
particiones primarias. En ellos se almacena toda la información básica sobre la
partició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
512
bytes
Primer sector físico del disco duro (pista cero)
446
bytes
Código del gestor de arranque
64
bytes
16
bytes
Primera partición
1 byte
Marca de arranque si el bit 7 está activo es una partición de
arranque, los otros bits deben ser ceros.
3
bytes
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
3
bytes
CHS final
4
bytes
LBA
4
bytes
Tamaño en sectores
16
bytes
Segunda partición
1 byte
Marca de arranque si el bit 7 está activo es una partición de
arranque, los otros bits deben ser ceros.
3
bytes
CHS de inicio
1 byte Tipo de partición
3
bytes
CHS final
4
bytes
LBA
4
bytes
Tamaño en sectores
16
bytes
Tercera partición
1 byte
Marca de arranque si el bit 7 está activo es una partición de
arranque, los otros bits deben ser ceros.
3
bytes
CHS de inicio
1 byte Tipo de partición
3
bytes
CHS final
4 LBA
bytes
4
bytes
Tamaño en sectores
16
bytes
Cuarta partición
1 byte
Marca de arranque si el bit 7 está activo es una partición de
arranque, los otros bits deben ser ceros.
3
bytes
CHS de inicio
1 byte Tipo de partición
3
bytes
CHS final
4
bytes
LBA
4
bytes
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 vital
del MBR. Desde Windows NT 4, Microsoft mantiene 4 bytes a partir de la posición
0x1B8 que sirven de identificador de la unidad física completa. Es utilizada por el
sistema para referenciarla de manera independiente a la letra de unidad o bus de
conexión.
El identificador se mantiene en diferentes lugares del registro, y es una pieza clave
durante el arranque del sistema. Una prueba realizada en Windows Vista hace
inarrancable el sistema tras un cambio de esos cuatro bytes. El mensaje de error
mostrado 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.
PARTICIONES
Los sistemas operativos no trabajan con unidades físicas directamente sino con
unidades lógicas. Cada una de estas unidades lógicas constituye una partición del
disco duro.
Particiones y directorios.— Ambas estructuras permiten organizar datos dentro
de un disco duro. Sin embargo, presentan importantes diferencias:
1ª) Las particiones son divisiones de tamaño fijo del disco duro; los directorios son
divisiones de tamaño variable de la partición;
2ª) Las particiones ocupan un grupo de cilindros contiguos del disco duro (mayor
seguridad); los directorios suelen tener su información desperdigada por toda la
partición;
3ª) Cada partición del disco duro puede tener un sistema de archivos (sistema
operativo) distinto; todos los directorios de la partición tienen el sistema de
archivos 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 especial
denominada 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 que
se cargue al arrancar desde el disco duro.
Estructura lógica de las particiones
Dependiendo del sistema de archivos utilizado en cada partición, su estructura
ló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, directorio
raíz y área de datos. De todas formas, el sector de arranque es un elemento
común a todos los tipos de particiones.
Todas las particiones tienen un sector de arranque (el primero de la partición) con
información relativa a la partición. Si la partición tiene instalado un sistema
operativo, este sector se encargará de arrancarlo. Si no hubiese ningún sistema
operativo (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 ser
confundido con el tipo de partición (p. ej. partición primaria), ya que en realidad no
tienen directamente mucho que ver. Independientemente del sistema de archivos
de una partición (FAT, ext3, NTFS, etc.), existen 3 tipos diferentes de particiones:
• Partición primaria: Son las divisiones crudas o primarias del disco, solo
puede haber 4 de éstas o 3 primarias y una extendida. Depende de una tabla de
particiones. Un disco físico completamente formateado consiste, en realidad, de
una partición primaria que ocupa todo el espacio del disco y posee un sistema de
archivos. A este tipo de particiones, prácticamente cualquier sistema operativo
puede detectarlas y asignarles una unidad, siempre y cuando el sistema operativo
reconozca su formato (sistema de archivos).
En los equipos PC, originales de IBM, estas particiones tradicionalmente usan una
estructura llamada Tabla de particiones, ubicada al final del registro de arranque
maestro (MBR, Master Boot Record). Esta tabla, que no puede contener más de 4
registros de particiones (también llamados partition descriptors), específica para
cada 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 que
indica si la partición está activa o no (sólo puede haber una partición activa a la
vez).
El marcador se usa durante el arranque; después de que el BIOS cargue el
registro de arranque maestro en la memoria y lo ejecute, el MBR de DOS
comprueba la tabla de partición a su final y localiza la partición activa. Entonces
carga el sector de arranque de esta partición en memoria y la ejecuta. A diferencia
del registro de arranque maestro, generalmente independiente del sistema
operativo, el sector de arranque está instalado junto con el sistema operativo y
sabe cómo cargar el sistema ubicado en ese disco en particular.
Notar que mientras la presencia de un marcador activo se estandariza, no se
utiliza 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 particiones
del MBR la partición activa; simplemente cargan una segunda etapa (que puede
ser contenida en el resto del cilindro 0 ó en el sistema de archivos). Después de
cargar la segunda etapa se puede cargar el sector de arranque de cualquiera de
las particiones del disco (permitiendo al usuario seleccionar la partición), o si el
gestor conoce cómo localizar el kernel (núcleo) del sistema operativo en una de
las particiones (puede permitir al usuario especificar opciones de kernel
adicionales 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 disco
duro. Esto unido al deterioro de la FAT con el uso y al aumento de tamaño de los
discos movió a Microsoft a crear un esquema mejorado relativamente simple: una
de las entradas de la tabla de partición principal pasó a llamarse partición
extendida y recibió un número de tipo de partición especial (0x05). El campo inicio
de partición tiene la ubicación del primer descriptor de la partición extendida, que a
su vez tiene un campo similar con la ubicación de la siguiente; así se crea una lista
enlazada de descriptores de partición. Los demás campos de una partición
extendida son indefinidos, no tienen espacio asignado y no pueden usarse para
almacenar datos.
Las particiones iniciales de los elementos de la lista enlazada son las llamadas
unidades lógicas; son espacios asignados y pueden almacenar datos. Los
sistemas operativos antiguos ignoraban las particiones extendidas con número de
tipo 0x05, y la compatibilidad se mantenía. Este esquema reemplaza al antiguo ya
que todas las particiones de un disco duro se pueden poner dentro de una sola
partición extendida. Por alguna razón, Microsoft no actualizó su sistema operativo
DOS para arrancar desde una partición extendida, debido a que la necesidad para
particiones primarias se preservará. Por encima de éstas todavía se habría
permitido una partición FAT primaria por unidad, significando todas las otras
particiones FAT primarias deben tener sus números de tipo de partición prior
cambiando 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 la
partición. Sin embargo hay que tener en cuenta una quinta partición que se puede
comprimir pero no es muy recomendable.
Gestores de arranque
Si instala diferentes Sistemas Operativos en un mismo computador, el equipo
tendrá que utilizar un sistema para poder seleccionar qué Sistema Operativo
desea iniciar. El gestor de arranque es un programa que se ejecuta una vez
completado el inicio normal de la BIOS y que permite seleccionar el Sistema
Operativo 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 Sistemas
Operativos Windows NT, Windows 2000, Windows XP y Windows Server 2003. Se
encuentra, 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, que
contiene el menú de opciones de inicio, y el archivo NTDETECT.COM que es el
que se encarga de iniciar el sistema seleccionado.
El Administrador de arranque de Windows (Bootmgr). Es el archivo encargado
del 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 de
septiembre 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
Windows Server 2008. Se encuentra, normalmente, en el directorio raíz del disco
del sistema. Controla el proceso de arranque mostrando el menú multiarranque (si
hubiera más de un Sistema Operativo) instalado en el disco). Después llama al
archivo 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 Windowssystem32
Lilo (Linux Loader). Es un gestor de arranque de Linux que permite iniciar este
Sistema Operativo junto con otras plataformas (como Windows) que haya en el
mismo ordenador. Funciona en una gran variedad de sistemas de archivos y
puede arrancar un Sistema Operativo desde el disco duro o desde un disco
flexible externo.
Grub. Es un gestor de arranque más moderno y flexible que el anterior, ya que
permite que el administrador ejecute cualquier comando desde la línea de
comando de Grub. Entre todas sus características hay que destacar la posibilidad
de incluir múltiples formatos de ejecutables, el arranque de Sistemas Operativos
no-multiarranque, una agradable interfaz de usuario y una interfaz de línea de
comando muy flexible.
• Partición extendida: También conocida como partición secundaria es otro
tipo de partición que actúa como una partición primaria; sirve para contener
infinidad de unidades lógicas en su interior. Fue ideada para romper la limitación
de 4 particiones primarias en un solo disco físico. Solo puede existir una partición
de 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 totalidad
de la misma, la cual se ha formateado con un tipo específico de sistema de
archivos (FAT32, NTFS, ext2,...) y se le ha asignado una unidad, así el sistema
operativo reconoce las particiones lógicas o su sistema de archivos. Puede haber
un máximo de 23 particiones lógicas en una partición extendida. Linux impone un
má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 a
la hora de instalar de cero el sistema operativo.
En una de las particiones se mantiene el sistema operativo y en la otra los
archivos del usuario (documentos, e-mails, descargas, música, etc.). Si se
necesita formatear e instalar de cero el sistema por cualquier inconveniente,
simplemente se procede a formatear la partición que contiene el sistema
operativo, dejando intacta la otra.
Esto nos ahorra mucho tiempo, dado que no debemos guardar toda esa
información en otra unidad de almacenamiento.
De todas maneras, emplear una partición como respaldo no es buena idea (se
explica más abajo), siempre se recomienda tener el respaldo en otra unidad de
almacenamiento.
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. Recuerde
que 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, puede
producir un mayor desgaste del mecanismo interno del disco. Es es porque
cuando se particiona un disco duro en dos, se crean dos áreas de trabajo. Es
decir, dos anillos concéntricos, siendo el anillo interior el de la unidad C, y el anillo
externo generalmente el de la unidad D.
Pero generalmente la aguja de lectura/escritura del disco duro suele trabajar
mayormente en el anillo interno (unidad C), y no mucho en el externo, lo que
puede 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 de
grabación perpendicular (PMR), la cual permite mayor densidad de
almacenamiento. También existen discos llamados "Ecológicos" (GP - Green
Power), los cuales hacen un uso más eficiente de la energía.
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 un
dispositivo de almacenamiento de datos que puede estar construido con memoria
no volátil o con memoria volátil. Las no volátiles son unidades de estado sólido
que como dispositivos electrónicos, están construidos en la actualidad con chips
de memoria flash.11
No son discos, pero juegan el mismo papel a efectos prácticos
aportando 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 tipo
de unidades de estado sólido terminen sustituyendo al disco duro para
implementar el manejo de memorias no volátiles en el campo de la ingeniería
informática.
Esos soportes son muy rápidos ya que no tienen partes móviles y consumen
menos energía. Todo esto les hace muy fiables y físicamente duraderos. Sin
embargo su costo por GB es aún muy elevado respecto al mismo coste de GB en
un 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 para
perdurar. 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.
hablamos de las altas necesidades de almacenamiento que hoy se miden en
orden de Terabytes.( Comparativas de precios SSD versus disco duro. 2010).
A pesar de ello la industria apuesta por
este vía de solución tecnológica para
el consumo doméstico (Discos de
estado sólido 2010) aunque se ha de
considerar que estos sistemas han de
ser integrados correctamente
(Comparativa entre disco duro. 2008)
tal y como se está realizando en el
campo de la alta computación.
(Primera supercomputadora 2013).
Unido a la reducción progresiva de
costes quizás esa tecnología recorra el
camino de aplicarse como método
general de archivo de datos
informáticos energéticamente
respetuosos con el medio natural si
optimiza 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 sido
categorizadas repetidas veces como "discos", cuando es totalmente incorrecto
denominarlas así, puesto que a diferencia de sus predecesores, sus datos no se
almacenan sobre superficies cilíndricas ni platos. Esta confusión conlleva
habitualmente a creer que "SSD" significa Solid State Disk, en vez de Solid State
Drive. (Seagate 2013)
Unidades híbridas
Las unidades híbridas son aquellas que combinan las ventajas de las unidades
mecánicas convencionales con las de las unidades de estado sólido. Consisten en
acoplar 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 de
uso frecuente (determinado por el software de la unidad) y el área mecánica para
el almacenamiento masivo de datos. Con esto se logra un rendimiento cercano al
de unidades de estado sólido a un costo sustancialmente menor. En el mercado
actual (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 de
archivos principal de las ediciones no empresariales de Microsoft Windows hasta
Windows Me.
FAT (File Allocate Table, tabla de asignación de archivos) Este sistema de
archivos se basa, como su nombre indica, en una tabla de asignación de archivos
o FAT. Esta tabla es el índice del disco. Almacena los grupos utilizados por cada
archivo, los grupos libres y los defectuosos. Como consecuencia de la
fragmentación de archivos, es corriente que los distintos grupos que contienen un
archivo se hallen desperdigados por toda la partición. La FAT es la encargada de
seguir 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 de
almacenamiento de un archivo en una partición y está formada por uno o varios
sectores contiguos del disco. 4 sectores consecutivos de 512 bytes).
La FAT, es un formato para disquetes admitido prácticamente por todos los SO
existentes para computadores personales. Sobra decir, que aunque el formato de
disquetes prácticamente ha desaparecido, la FAT aun se usa, por lo que se debe
repasar o recordar sus características. Así, la FAT se utiliza como mecanismo de
intercambio de datos entre sistemas operativos distintos que coexisten en un
mismo computador, lo que se conoce como entorno multiarranque. También se
utiliza 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 fragmentos
dispersos de éstos por todo el soporte. Con el tiempo, esto hace que el proceso de
lectura o escritura sea cada vez más lento. La denominada desfragmentación es la
solución a esto, pero es un proceso largo que debe repetirse regularmente para
mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue
diseñado para ser redundante ante fallos. Inicialmente solamente soportaba
nombres cortos de archivo: ocho caracteres para el nombre más tres para la
extensión. También carece de permisos de seguridad: cualquier usuario puede
acceder 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 puede
contener subdirectorios; o lo mismo, que dentro de una carpeta no pueden
haber otras carpetas. Cabe mencionar, que esto sólo ocurre en FAT 12, a
partir de ella, si es posible. La causa es porque no soportaba metadatos,
(los que asignan atributos para un fichero), en concreto no podía distinguir
el campo st_mode si fuera un fichero o un directorio.
 Las direcciones de bloque solamente contienen 12 bits. Esto complica la
implementación.
 El tamaño del disco se almacena como una cuenta de 16 bits expresada en
sectores, 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 el
microcontrolador de un autómata (un PLC). Este lenguaje está compuesto por un conjunto de instrucciones
que determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadena
de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente
ejecutadas 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 de
instrucciones disponibles pueda ser similar entre ellas.
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 la
partición ahora estaba limitado por la cuenta de sectores por clúster, que era de 8
bits. Esto obligaba a usar clusters de 32Kbytes con los usuales 512 bytes por
sector. 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, el
formato resultante no era compatible con otras implementaciones de la época, y
además, generaba mucha fragmentación interna (se ocupaban clusters enteros
aunque solamente se precisaran unos pocos bytes).
FAT32
El sistema FAT32 permite trabajar con
particiones mayores de 2 GB. No
solamente esto, sino que además el
tamaño del grupo (cluster) es mucho menor
y no se desperdicia tanto espacio como
ocurría en las particiones FAT.
Microsoft decidió implementar una nueva
generación de FAT utilizando direcciones
de cluster de 32 bits (aunque sólo 28 de
esos bits se utilizaban realmente).
Teóricamente, esto permitía
aproximadamente 268.435.538 clusters, arrojando tamaños de almacenamiento
cercanos a los 8TB. Sin embargo, debido a limitaciones en la utilidad ScanDisk de
Microsoft, no se permite que FAT32 crezca más allá de 4.177.920 clusters por
partición (es decir, unos 124 GB). Posteriormente, Windows 2000 y XP situaron el
límite de FAT32 en los 32GB. Microsoft afirma que es una decisión de diseño, sin
embargo, es capaz de leer particiones mayores creadas por otros medios.
El tamaño máximo de un archivo en FAT32 es 4GB (232
−1 bytes), lo que resulta
engorroso para aplicaciones de captura y edición de video, ya que los archivos
generados por éstas superan fácilmente ese límite.
En la siguiente tabla, se comparan los tamaños de grupo utilizados según el
tamaño de la partición y el sistema de archivos empleado:
Tamaño de la partición
Tamañ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 soportado
8 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 FAT32
Desarrollador Microsoft
Nombre completo
Tabla de Asignación de Archivos
(versión de 12 bits) (versión de 16 bits)
(versión de 32
bits)
Introducido 1977 (Microsoft Julio de 1988 (MS- Agosto
Existen otros sistemas operativos como GNU/Linux, FreeBSD y BeOS que
soportan 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 conocido
como UMSDOS. Este consistía en una variante de FAT que admitía los permisos
de seguridad en Unix, además de los nombres largos de éste. Para ello, se
Disk BASIC) DOS 4.0) de 1996 (Windows
95 OSR2)
Identificador de
partición
0x01 (MBR)
0x04, 0x06, 0x0E
(MBR)
0x0B, 0x0C (MBR)
EBD0A0A2-B9E5-
4433
-87C0-
68B6B72699C7
(GPT)
Estructuras FAT12 FAT16 FAT32
Contenido de carpeta Tabla
Ubicación de archivo Lista enlazada
Bloques defectuosos Lista enlazada
Límites FAT12 FAT16 FAT32
Tamaño máximo de
archivo
32 MB 2 GB 4 GB
Número máximo de
archivos
4.077 65.517 268.435.437
Longitud máxima del
nombre de archivo
8.3 (11) o 255 caracteres cuando se usan LFNs (Long File
Names)
Tamaño máximo del
volumen
2 MB 2 GB 2 TB
Características FAT12 FAT16 FAT32
Fechas almacenadas Creación, modificación, acceso
Rango de
fechas soportado
1 de enero de 1980 - 31 de diciembre de 2107
Metadatos No de modo nativo
Atributos Sólo lectura, oculto, sistema, archivo, nombre del volumen
Permisos
No
Compresión
transparente
Por volumen,
Stacker,
DoubleSpace,
DriveSpace
No
Cifrado transparente
Por volumen sólo
con DR-DOS
No
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 del
nú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 a
la hora de efectuar un formateo del sistema operativo sobre plataforma MAC, ni se
les ocurra usar este formato.
VFAT (Virtual FAT)
Este sistema de archivos logra remediar uno de los mayores problemas del
sistema FAT: los nombres de archivos y directorios sólo podían contener 8
caracteres de nombre y 3 de extensión. Con VFAT, se logra ampliar este límite a
255 caracteres entre nombre y extensión.
La mayor ventaja de VFAT es que tiene plena compatibilidad con FAT. Por
ejemplo, es factible utilizar la misma partición para dos sistemas operativos que
utilicen uno FAT y otro VFAT (MS-DOS y Windows 95). Cuando entremos desde
MS-DOS, los nombres largos de archivos se transforman en nombres cortos
según unas reglas establecidas, y pueden ser utilizados de la manera habitual. De
todas maneras, hay que prestar cierta atención cuando se trabaja desde MS-DOS
con archivos que tienen nombres largos: no se deben realizar operaciones de
copiado o borrado, ya que se corre el riesgo de perder el nombre largo del archivo
y quedarnos sólo con el corto. Desde Windows 95, se trabaja de forma
transparente con nombres cortos y largos
Nota. Microsoft desde la versión de Windows XP no siguió soportando los
sistemas operativos basados en MS-DOS, solo aparece en su archivo como un
recuerdo de su antigua kernel, por lo que pensar en nuevas versiones de FAT es
poco probable. Ahora, para el caso de NTFS, es un sistema de archivos superior
al FAT en múltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principal
desventaja es el excesivo tamaño que desperdicia en pequeños volúmenes y su
limitado soporte en otros sistemas operativos. Sus especificaciones son un secreto
comercial; no obstante, esto está cambiando, ya es posible leer y escribir en
particiones NTFS en Linux con herramientas como NTFS-3G13
.
FAT es actualmente el sistema de archivos habitual en medios de almacenamiento
extraí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 licencia
GNU GPL y de código abierto. Al contrario que el driver NTFS incluido en el kernel Linux, tiene muy pocas
limitaciones en cuanto a la escritura de archivos: permite crear, renombrar, mover o borrar ficheros de
cualquier tamaño en particiones NTFS, con la excepción de ficheros cifrados.
(http://www.tuxera.com/community/ntfs-3g-faq/#questions)
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS
KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

More Related Content

What's hot

CompactacióN De Memoria Fer
CompactacióN De Memoria FerCompactacióN De Memoria Fer
CompactacióN De Memoria Fermaverito
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicasdanielchecar
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidoscarlosmax10
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxjcfarit
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosCamilo Pacheco
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windowsomfib123
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesosCariEli
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosRichard J. Nuñez
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de softwareAdes27
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)UAEMex
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 

What's hot (20)

CompactacióN De Memoria Fer
CompactacióN De Memoria FerCompactacióN De Memoria Fer
CompactacióN De Memoria Fer
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linux
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficheros
 
Particion disco duro
Particion disco duroParticion disco duro
Particion disco duro
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Iniciación a OpenGL
Iniciación a OpenGLIniciación a OpenGL
Iniciación a OpenGL
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Creacion y terminacion de procesos
Creacion y terminacion de procesosCreacion y terminacion de procesos
Creacion y terminacion de procesos
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas Operativos
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
linux kernel overview 2013
linux kernel overview 2013linux kernel overview 2013
linux kernel overview 2013
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 

Viewers also liked (11)

Estrutura De Arquivos
Estrutura De ArquivosEstrutura De Arquivos
Estrutura De Arquivos
 
Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
Integración a muy gran escala y paralelismo VLSI
Integración a muy gran escala y paralelismo VLSIIntegración a muy gran escala y paralelismo VLSI
Integración a muy gran escala y paralelismo VLSI
 
Hongos que crecen en los humanos y cuidados
Hongos que crecen en los humanos y cuidadosHongos que crecen en los humanos y cuidados
Hongos que crecen en los humanos y cuidados
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dados
 
Configuración electrónica aufbau kernel
Configuración electrónica aufbau  kernelConfiguración electrónica aufbau  kernel
Configuración electrónica aufbau kernel
 
CONFIGURACIÓN ELECTRÓNICA
CONFIGURACIÓN ELECTRÓNICACONFIGURACIÓN ELECTRÓNICA
CONFIGURACIÓN ELECTRÓNICA
 
Kernel de los sistemas operativos
Kernel de los  sistemas operativosKernel de los  sistemas operativos
Kernel de los sistemas operativos
 
DIAPOSITIVAS Suse sistema operativo
DIAPOSITIVAS Suse sistema operativo DIAPOSITIVAS Suse sistema operativo
DIAPOSITIVAS Suse sistema operativo
 
BOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁS
BOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁSBOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁS
BOARD, ALIMENTACIÓN, PUERTOS, BUSES, OVERCLOKING, GPUS Y ALGO MÁS
 

Similar to KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

Similar to KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS (20)

El kernel en los sistemas operativos
El kernel en los sistemas operativosEl kernel en los sistemas operativos
El kernel en los sistemas operativos
 
Kernel
KernelKernel
Kernel
 
Nucleo kernel
Nucleo kernelNucleo kernel
Nucleo kernel
 
¿Qué es un sistema operativo?
¿Qué es un sistema operativo?¿Qué es un sistema operativo?
¿Qué es un sistema operativo?
 
Taller sistemas operativos
Taller sistemas operativosTaller sistemas operativos
Taller sistemas operativos
 
Definición de los so
Definición de los soDefinición de los so
Definición de los so
 
Definición de los so
Definición de los soDefinición de los so
Definición de los so
 
Taller so
Taller soTaller so
Taller so
 
Sistemas Operativos
Sistemas Operativos Sistemas Operativos
Sistemas Operativos
 
Kernel- herramientas
Kernel- herramientas Kernel- herramientas
Kernel- herramientas
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistemas operativos 180604 correa_duque
Sistemas operativos 180604 correa_duqueSistemas operativos 180604 correa_duque
Sistemas operativos 180604 correa_duque
 
prueba
pruebaprueba
prueba
 
Tarea 3 SO
Tarea 3 SOTarea 3 SO
Tarea 3 SO
 
Kernel y shell tipos
Kernel y shell   tiposKernel y shell   tipos
Kernel y shell tipos
 
Taller sistemas operativos
Taller sistemas operativosTaller sistemas operativos
Taller sistemas operativos
 
Reporte windows8
Reporte windows8Reporte windows8
Reporte windows8
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
preinf2.docx
preinf2.docxpreinf2.docx
preinf2.docx
 
Kernel
KernelKernel
Kernel
 

More from Universidad Militar Nueva Granada-Universidad de Cundinamarca

More from Universidad Militar Nueva Granada-Universidad de Cundinamarca (20)

Whats app messenger
Whats app messengerWhats app messenger
Whats app messenger
 
Internet protocol-television
Internet protocol-televisionInternet protocol-television
Internet protocol-television
 
Categoria de-los-modelos-atomicos
Categoria de-los-modelos-atomicosCategoria de-los-modelos-atomicos
Categoria de-los-modelos-atomicos
 
Plan de-contingencias
Plan de-contingenciasPlan de-contingencias
Plan de-contingencias
 
Magnetoresistencia gigante
Magnetoresistencia giganteMagnetoresistencia gigante
Magnetoresistencia gigante
 
Dns caracteristicas-y-propiedades
Dns caracteristicas-y-propiedadesDns caracteristicas-y-propiedades
Dns caracteristicas-y-propiedades
 
Ransomware
RansomwareRansomware
Ransomware
 
Tutorial file inyector
Tutorial file inyectorTutorial file inyector
Tutorial file inyector
 
Ejercicios electrónica básica
Ejercicios electrónica básicaEjercicios electrónica básica
Ejercicios electrónica básica
 
Ultrasonidos y tejidos biológicos
Ultrasonidos y tejidos biológicosUltrasonidos y tejidos biológicos
Ultrasonidos y tejidos biológicos
 
Taller de termodinámica
Taller de termodinámicaTaller de termodinámica
Taller de termodinámica
 
Qué es la radiación
Qué es la radiaciónQué es la radiación
Qué es la radiación
 
Metabolismo basal
Metabolismo basalMetabolismo basal
Metabolismo basal
 
El escalón de potencial
El escalón de potencialEl escalón de potencial
El escalón de potencial
 
Taller de termodinámica
Taller de termodinámicaTaller de termodinámica
Taller de termodinámica
 
Tipos de memoria usadas para sistemas informáticos
Tipos de memoria usadas para sistemas informáticosTipos de memoria usadas para sistemas informáticos
Tipos de memoria usadas para sistemas informáticos
 
Las neuronas y su funcionalidad
Las neuronas  y su funcionalidadLas neuronas  y su funcionalidad
Las neuronas y su funcionalidad
 
Comandos telnet
Comandos telnetComandos telnet
Comandos telnet
 
Aerogeneradores urbanos 2.0
Aerogeneradores urbanos 2.0Aerogeneradores urbanos 2.0
Aerogeneradores urbanos 2.0
 
Sistemas operativos de red
Sistemas operativos de redSistemas operativos de red
Sistemas operativos de red
 

Recently uploaded

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptxEfrain Yungan
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdfLIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdfManuelVillarreal44
 

Recently uploaded (20)

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx4.3 Subestaciones eléctricas tipos caracteristicas.pptx
4.3 Subestaciones eléctricas tipos caracteristicas.pptx
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdfLIQUIDACION OBRAS PUBLICAS  POR CONTRATA.pdf
LIQUIDACION OBRAS PUBLICAS POR CONTRATA.pdf
 

KERNEL, SISTEMA Y TABLA DE ASIGNACIÓN DE ARCHIVOS

  • 1. 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.)
  • 2. “La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilizació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 de los procesos, las entradas/salidas y proponer una interfaz entre el espacio núcleo y los programas del espacio del usuario. Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y sistemas de ficheros o los servicios) necesariamente no son proporcionadas por un núcleo de sistema de explotación. Pueden establecerse estas funciones del sistema de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en 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 espacio usuario o el espacio núcleo tiene un coste temporal obviamente diferente. Si esta llamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo para mejorar los resultados.”1 No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora «vacía», siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda del sistema operativo. Ésta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de sólo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema operativo. Hay cuatro grandes tipos de núcleos:2 - Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. - Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. (Andrew Tanenbaum 2004) 1 El kernel. Consultado el 2 de septiembre de 2013. http://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica) 2 Ibid.
  • 3. - Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente. - Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware. El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado que el software y el hardware del computador puedan trabajar juntos. Las funciones más importantes del mismo, aunque no las únicas, son: - Administración de la memoria para todos los programas y procesos en ejecución. - Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan. - Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda. Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo: Versión de producción: Era la versión estable hasta el momento, de las versiones de desarrollo o experimentales. Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solían ser inestables y no se debían usar sin saber lo que se hacía. Las versiones del núcleo se numeran hoy en día con 4 dígitos, de la siguiente forma: 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 y estos núcleos se basan en el núcleo ("vanilla") distribuido por Linus Torvalds y el equipo de programadores del núcleo.
  • 4. El núcleo se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/ . En este enlace hay una lista internacional oficial de 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ódigo tiene el acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario. La parte de WINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no es más que un conjunto de servicios disponibles a todos los componentes del Sistema Operativo, donde cada grupo de servicios es manipulado por componentes que son totalmente independientes (entre ellos el Núcleo) entre sí y se comunican a través de interfaces bien definidas. Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría del código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de ambiente (Win32 y POSIX que serán explicados posteriormente) y aplicaciones de usuario. Estos programas solamente acceden a su propio espacio de direcciones e interactúan con el resto del sistema a través de mensajes Cliente/Servidor. Capa de Abstracción de Hardware (HAL). HAL (Hardware Abstraction Layer) es una interfaz entre el hardware y el resto del Sistema Operativo, está implementada como una biblioteca de enlace dinámico (dll) y es responsable de proteger el resto del sistema de las especificaciones del hardware, 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 tiene que preocuparse sobre que plataforma está corriendo. Cada plataforma en que el sistema corre necesita un HAL específico. El diseño intenta que cuando Windows sea portado a una nueva arquitectura de procesador, el HAL sea reescrito para el nuevo procesador, pero el resto del sistema simplemente debe ser recompilado. Microkernel: Es el responsable de todas las acciones que se realizan sobre el sistema y casi todas las funciones del sistema pasan a través de él, está situado en el corazón de Windows, trabaja muy estrechamente con el HAL, este planifica la ejecución de hilos y manipula las interrupciones y excepciones de procesos. El papel de este es mantener a los procesadores lo más ocupado posible. En sentido general 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.
  • 5. Ejecutor de Windows: Se encarga de las tareas importantes, las que son de vital importancia para el sistema completo, ya que el microkernel está casi siempre demasiado ocupado para dirigirse directamente. El Administrador de Objetos (Object Manager): es usado para crear, modificar y eliminar objetos (tipos de datos abstractos que son usados para representar recursos del Sistema Operativo) usados por todos los sistemas que conforman el Ejecutor de Windows. Este también proporciona información sobre el estado de los 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én proporciona 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 un esquema que permite usar los recursos del disco en lugar de la memoria física del sistema moviendo las páginas al disco cuando estas no están siendo usadas y recuperándolas cuando se les necesitan. Este es un segmento integral de Windows el cual asigna espacios de direcciones de 32 bit a cada proceso sin preocuparse de la cantidad de memoria física del sistema. El Servicio de Llamadas a Procedimientos Locales (Local Procedure Call Facility o LPC): se integran al diseño cliente/servidor de Windows. Este es la interfaz entre todos los procesos clientes y servidores que corren localmente en el sistema. Monitor de Seguridad (Security Reference Monitor o SRM): es el lecho de toda la seguridad dentro del sistema WINDOWS y es el responsable de hacer cumplir todas las políticas de seguridad en la computadora local. El Administrador de Entrada-Salida (I/O Manager): es responsable de gestionar la comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin que intervenga el cómo funciona específicamente cada uno. Subsistemas de Ambiente Protegido Dos de los objetivos de WINDOWS son personalidad y compatibilidad. Esto ha sido logrado a través de los subsistemas de ambiente protegido. La personalidad esencialmente significa que WINDOWS expone múltiples conjuntos de interfaces de programas de aplicación (APIs) y puede actuar eficazmente como si fuera un sistema operativo diferente. WINDOWS viene con una personalidad POSIX y OS/2 además de sus personalidades Win32, Win16 y DOS.
  • 6. 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 de ambiente soportados en WINDOWS, los que actúan como clientes y traducen sus llamadas API hacia las API apropiadas de Win32. El subsistema Win32 es responsable de toda la entrada y salida. Este posee el control de la pantalla, el teclado, y el ratón. Cuando otros subsistemas, como OS/2 o POSIX, necesitan beneficiarse de estos dispositivos, ellos piden los servicios al subsistema de Win32. Algunos de los objetivos que se trazaron para mantener la compatibilidad con las aplicaciones hechas en versiones anteriores fueron: - Permitir que los programas hechos sobre DOS pudieran correr sin modificación. - Suministrar la capacidad para ejecutar la mayoría de las aplicaciones Windows de 16 bits sin modificación. - Proteger al sistema y otras aplicaciones de 32 bits de la interferencia de las aplicaciones de 16 bits y DOS. - Permitir a las plataformas RISC (Reduced Instruction set Computer, microprocesador cuyo número de instrucciones es reducido para lograr una frecuencia más alta de trabajo) ejecutar aplicaciones Windows de 16 bits y DOS. El Subsistema POSIX Uno de los estándares más frecuentemente citados soportados por Windows es el POSIX (Interfaz de Sistema operativo Portable Basado en Unix), el cual representa la interfaz del Sistema Operativo portable y fue desarrollado por el IEEE (Instituto de Ingenieros en Electricidad y Electrónica) como un método de proporcionar portabilidad a las aplicaciones hechas sobre plataformas UNIX. No obstante, 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 para aplicaciones UNIX, este subsistema da soporte a las aplicaciones OS/2. Proporciona la interfaz gráfica y las llamadas al sistema; las llamadas son servidas con ayuda del Ejecutor de Windows.
  • 7. Estructura del sistema Los kernels de Windows NT o Minix son de tipo micro- kernel, caracterizado porque proveen al sistema de un estado mínimo necesario de funcionalidad, cargando el resto de funciones necesarias en procesos autónomos e independientes unos de otros, comunicándose con este micro-kernel a través de una interfaz bien definida. Este tipo de estructura es más fácil de mantener y el desarrollo de nuevos componentes es mucho más simple, dando a su vez una mayor estabilidad al sistema. Por otro lado, debido a la estructura rígida del interfaz, estos tipos de kernel son mucho más complicados de reestructurar, y además, debido a las arquitecturas del hardware actual, el proceso de intercomunicación dentro del micro-kernel es mucho más que una simple llamada, por lo que hace que esta estructura 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 de instrucciones sin estructura alguna. A pesar de la estructura de macro-kernel, se ha intentado equiparar su velocidad utilizando código optimizado en velocidad, y se ha recuperado algunas de las mejores características de la estructura de micro- kernel, como puede ser la carga de los diferentes drivers necesarios como mó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én instrucciones en ensamblador, aunque estas últimas se usan mayoritariamente en los procesos de arranque y en el control de co-procesador. A continuación se muestra una tabla con la cantidad de líneas en C y ensamblador que se usan aproximadamente en la versión 2.0 del kernel de Linux, el cual consta de unas 470.000 líneas de código (la versión 1.0 constaba "únicamente" de 165.000 lí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
  • 8. 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 pesar de 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 la versión del kernel a la que corresponde dicho archivo, aunque no es simplemente así. Como se puede suponer, la variación en una unidad del primer grupo de cifras significa un cambio muy importante en el kernel, siendo ésta menor conforme el grupo de cifras que varía está más hacia la derecha. El último grupo de cifras tiene, además del significado anterior como indicador de versión, un significado añadido, que es el de que si la cifra es par, esa versión de kernel se considera como una versión estable, si, en cambio ésta es impar, se considera 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 un proveedor de servicios. Cada proceso existe por separado y el espacio de memoria reservado a cada uno de ellos está protegido para que no pueda ser modificado. Desde este punto de vista, se está llevando a cabo un sistema multiproceso real (ver figura 2). Desde un punto de vista interno, el contexto cambia. Solo hay un proceso en marcha en el computador que puede acceder a todos los recursos, el sistema operativo. El resto de tareas se llevarán a cabo como co-rutinas, las cuales, de una forma totalmente independiente, deciden por ellas mismas a qué tarea y cuándo pasarán el control. Debido a esto, un fallo en la programación del kernel podría bloquear todo el sistema. Figura 2 - Los procesos desde una vista interna y externa
  • 9. 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 ser interrumpido 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ón producida por el software. Pueden suspender una tarea para llevar a cabo 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 del sistema y algunas interrupciones. 6. Preparado (Ready) El proceso está en espera de ser atendido por el procesador, que está ocupado con otro proceso en ese momento. Estos estados no pueden ser adquiridos sin orden alguno o porque sí, sino que llevan un ciclo el cual debe ser respetado. Además, si se observa la figura 3, se podrá 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 y threads. Un thread es una especie de rama o camino en la ejecución de un programa que puede ser procesado en paralelo con otros threads. Linux no hace esa distinción. En el kernel, únicamente existe el concepto de un proceso, el cual puede compartir recursos con otros procesos. Por eso, una tarea es una generalización del concepto de un thread.
  • 10. 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 de este tipo. De hecho los algoritmos usados en Linux para su manejo constituyen la mayor parte del código del kernel. La descripción de las características de un proceso, vienen dadas por la estructura task_struct. Una de las variables usadas es la llamada state, que es la encargada de almacenar el estado actual de la tarea (los valores que puede tomar esta variable los podemos ver en la figura 4). Otras variables son counter, que es la variable usada por el Programador (scheduler) para seleccionar el siguiente proceso, o signal que contiene una máscara de un bit (bit mask) para las señales recibidas por el proceso.
  • 11. Todos los procesos creados son introducidos en una lista doblemente enlazada gracias a los dos punteros siguientes (el comienzo y final de esta lista están almacenados 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ía familiar según qué proceso lo haya creado, y que al igual que los anteriores están representados 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 posee su propia subestructura para el almacenamiento de datos, o que cada proceso posee un numero identificativo pid, a partir del cual se nos facilitará el manejo de dicha tarea.
  • 12. La tabla de procesos Cada proceso en ejecución que haya en el ordenador, ocupa una entrada en la tabla 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 tarea cargada por el kernel. Esto es así porque ella será la encargada de lanzar el resto de tareas, como los demonios cargados en el inicio (p.ej. lpd) o el controlador del ratón (gpm). Ficheros e inodes En los sistemas UNIX se ha hecho tradicionalmente una distinción entre la estructura de archivos y la de inodes. La estructura inode describe un archivo, aunque esto puede ser visto de diferentes formas: por ejemplo, la estructura de datos en el kernel y la del disco duro describen archivos, y, a pesar de ser distintas, 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 el kernel, la cual describe diferentes atributos y propiedades del archivo al que corresponde. Principales mecanismos del kernel - Señales: Desde los primeros sistemas UNIX, esta característica ha sido un de las que más ventajas le han aportado: el uso de señales. Éstas son usadas por el kernel para informar a los procesos sobre ciertos eventos, lo que permite abortarlos o cambiarlos de un estado a otro. Todas estas señales son enviadas con la función send_sig(), la cual admite el paso de tres parámetros, siendo éstos: el numero de la señal, una descripción del proceso que va a recibir la señal (un puntero a la entrada del proceso en cuestión en la tabla de procesos), y opcionalmente la prioridad del proceso que envía la señal. Este último argumento puede tener dos valores: desde el kernel, el cual puede enviar señales a cualquier proceso, o desde un proceso, para lo que es necesario que éste último tenga derechos de superusuario, o bien que tener el mismo UID y GID que el proceso al que se le envía la señal.
  • 13. - Tuberías: Las tuberías o pipes (... | ...) son unos enlaces que se pueden realizar con cualquier shell, que unen las entradas de algunos programas con las salidas de los otros. Gracias a esto es posible usar gran parte de los comandos de Linux como filtros y, así, construir comandos más potentes a partir de comandos sencillos. Estas pipes, son consideradas como el método clásico de comunicación entre procesos. Otra variante de las tuberías son los FIFOs (First In, First Out), que se diferencian 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 el SO. En Linux hay dos tipos de interrupciones: rápidas y lentas. Se podría decir que son tres tipos, considerando el tercero como las llamadas del sistema, también desencadenadas por interrupciones. 1. Interrupciones lentas: Son las más usuales. Se caracterizan porque se puede llevar a cabo otras interrupciones mientras éstas son tratadas. Después de que una interrupción lenta haya sido procesada, otras tareas adicionales, de carácter periódico, son llevadas a cabo por el sistema (por ejemplo el scheduler). Otro ejemplo, es la interrupción lenta del reloj. 2. Interrupciones rápidas: Éstas se usan para tareas más cortas y menos complejas que las comentadas en el apartado anterior. Mientras este tipo de interrupciones son llevadas a cabo, el resto de interrupciones son bloqueadas, a menos que la propia rutina en ejecución las active. Un ejemplo de este tipo de rutinas es la interrupción de teclado. En ambos tipos de interrupciones el proceso que se lleva a cabo es muy similar: primero todos los registros son salvados con SAVE_ALL y la interrupción envía una confirmación al controlador de interrupciones con ACK. En caso de un sistema con múltiples procesadores, se ejecuta una llamada a la rutina del kernel ENTER_KERNEL para sincronizar el acceso al kernel de los procesadores. Una vez se ha completado la interrupción, se ejecuta la rutina RESTORE_MOST que devuelve los registros guardados previamente a sus valores iniciales, llamando después a iret para continuar con el proceso interrumpido. - Iniciando el sistema: LILO3 es el encargado de encontrar el kernel de Linux 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 por muchos años. Aunque ahora GRUB es el gestor de arranque por defecto, algunos prefieren usar LILO porque les es más familiar y otros porque GRUB puede causar problemas al arrancar determinado tipo de hardware.
  • 14. encuentra el código en ensamblador encargado de inicializar el hardware esencial. Una vez esto se ha llevado a cabo, el proceso se cambia a Modo Protegido. 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 del sistema operativo actual y continúa desde startup_32: En este punto se inician más secciones del hardware (en particular el MMU, el co-procesador y la tabla de descripciones de interrupciones) y el entorno requerido para la ejecución de funciones 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ódigo ensamblador ha encontrado sobre el hardware hasta este punto. Entonces se inicializan todas las áreas del kernel. Así se puede citar un ejemplo de su ejecució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 gestor de dos etapas. 1. La etapa 1 o el gestor de arranque primario se lee en la memoria por la BIOS desde el MBR. El gestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR. Su funció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 secundario visualiza la pantalla inicial de Red Hat Linux. Esta pantalla le permite seleccionar el sistema operativo 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 LILO determina qué sistema operativo iniciar, éste lo carga en la memoria y lleva el control de la máquina a ese sistema operativo. Una vez que se ha llevado a cabo la etapa 2 en memoria, LILO visualiza la pantalla inicial de Red Hat Linux con los diferentes sistemas operativos o kernel que han sido configurados para arrancar. Por defecto, si Red Hat Linux es el único sistema instalado, linux será la única opción disponible. Si el sistema tiene múltiples procesadores habrá una opción linux-up para el kernel del procesador único y una opción linux para los kernel 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 de arranque. Para accesar una línea de comandos boot: presione [Ctrl]-[X].
  • 15. 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 los demonios bdflush y kswap. Entonces se hace una llamada a setup, que será la encargada de montar el sistema de archivos root. - Interrupción del Reloj: Todos los sistemas operativos necesitan una forma de medir el tiempo y de mantener una hora en el sistema. El sistema de medida se implementa normalmente haciendo interrupciones en intervalos ya predefinidos. Bajo Linux, el tiempo se mide en ticks desde que el sistema es arrancado. Un tick representa 10 milisegundos, así que la interrupción del 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. Sin embargo, este método provee solo de un base interna de tiempo. La interrupción del reloj es llamada relativamente a menudo y, por eso, es un tanto dependiente del tiempo. La rutina de interrupción en la versión 2.0, actualiza la variable jiffies y marca como activa una parte de la interrupción del reloj, la cual es llamada por el sistema más adelante, y se desarrolla el resto del trabajo. Como pueden ocurrir varias interrupciones de reloj antes de activar el resto de rutinas, 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.
  • 16. lost_ticks cuenta las interrupciones de reloj producidas desde la última activación; lost_ticks_system cuenta, en cambio el número de interrupciones transcurridas mientras el proceso de interrupción estaba en Modo de Sistema. El sistema de archivos de linux Actualmente es normal encontrar un PC con su disco duro con distintas particiones, cada una de ellas con un sistema de ficheros distinta. Esta variedad es debida a que prácticamente cada SO tiene su propio sistema de ficheros, alegando que éste es más rápido y seguro que el resto. Puede que una de las razones por las que Linux ha tenido tanta popularidad, sea por la cantidad de sistemas de ficheros distintos que soporta (FAT16 y FAT32 de Windows, NTFS de WinNT, HPFS de OS/2, ISO 9660 y Joliet, que son los estándares más comunes en CD, etc.). El soporte de esta gran cantidad de sistema de ficheros es debido a la interfaz unificada que usa el kernel llamada Virtual File System Switch (VFS) o Virtual File System. Este sistema virtual de ficheros es el encargado de cada proceso pueda manejar información desde los distintos ficheros sin necesidad de saber donde se encuentran, o de saber si pertenecen a un tipo de sistema de ficheros u otro. Conocimientos básicos La CPU no es el único elemento "inteligente" que existe en la computadora. Cada elemento hardware que la compone lleva incluido su propio controlador (por ejemplo el ratón y el teclado son controlados por el chip SuperIO, el disco IDE por el controlador IDE o el SCSI por la controladora SCSI). Esto implica que el acceso a cada uno de estos dispositivos se realizará de forma distinta, por lo que cada utilidad debería incluir unos controladores. En vez de eso, los controladores se incluyen en el kernel como unas librerías conocidas como device drivers (controlador de dispositivo), de tal forma que se puede acceder a todos los dispositivos así configurados, sin necesidad de conocer cómo funciona el dispositivo a bajo nivel. De esta forma se consigue una abstracción en lo que se refiere al acceso a dispositivos. En Linux, como en Unix, a los distintos sistemas de ficheros que el sistema puede usar no se accede por identificadores de dispositivo (como un número o nombre de unidad) pero, en cambio se combinan en una estructura jerárquica de árbol que representa el sistema de ficheros como una entidad única y sencilla. Linux añade cada sistema de ficheros nuevo en este árbol de sistemas de ficheros cuando se
  • 17. monta. Todos los sistemas de ficheros, de cualquier tipo, se montan sobre un directorio 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. Cuando el sistema de ficheros se desmonta, los ficheros propios del directorio de montaje son visibles de nuevo. Además, gracias a esta forma de trabajo, no es necesario implementar el código necesario para acceder a los distintos dispositivos, sino que cada proceso se comunica con los dispositivos que necesite a través del acceso que le es proporcionado a través del VFS, como se puede observar en la figura 4. El primer sistema de ficheros diseñado específicamente para Linux, el sistema de Ficheros Extendido, o EXT, fue introducido en Abril de 1992 y solventó muchos problemas pero era aún falto de rapidez. Así, en 1993, el Segundo sistema de Ficheros Extendido, o EXT2, fue añadida al kernel como sistema principal de ficheros. Figura 4 - Estructura del VFS
  • 18. En ese momento un importante desarrollo tuvo lugar en Linux. El sistema de ficheros real se separó del SO y servicios del sistema a favor de un interfaz conocido como el Sistema de Ficheros Virtual, o VFS. VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas de ficheros, cada uno presentando un interfaz software común a través del VFS. Todos los detalles del sistema de ficheros de Linux son traducidos mediante software de forma que todo el sistema de ficheros parece idéntico al resto del kernel de Linux y a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros Virtual de Linux permite al usuario montar de forma transparente diferentes sistemas de ficheros al mismo tiempo. El sistema de Ficheros Virtual está implementado de forma que el acceso a los ficheros es tan rápido y eficiente como sea posible. También debe asegurar que los ficheros y los datos que contiene son correctos. Estos dos requisitos pueden ser incompatibles entre sí. El VFS de Linux mantiene una antememoria con información de cada sistema de ficheros montado y en uso. Se debe tener mucho cuidado al actualizar correctamente el sistema de ficheros ya que los datos contenidos en las antememorias se modifican cuando se crean, escriben y borran ficheros y directorios. Si se pudieran ver las estructuras de datos del sistema de ficheros dentro del kernel en ejecución, se podría ver los bloques de datos que se leen y escriben por el sistema de ficheros. Las estructuras de datos, que describen los ficheros y directorios que son accedidos serian creadas y destruidas y todo el tiempo los controladores 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 se accede a los bloques se ponen en el Buffer Cache y se almacenan en varias colas dependiendo 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 de dispositivos de bloque. El Virtual File System Como en el sistema de ficheros EXT2, cada fichero, directorio y demás se representan en el VFS por un y sólo un inodo VFS. La información en cada inodo VFS se construye a partir de información del sistema de ficheros por las rutinas específicas del sistema de ficheros. Los inodos VFS existen sólo en la memoria del 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 los siguientes campos:
  • 19. 1. device: Este es el identificador de dispositivo del dispositivo que contiene el fichero o lo que este inodo VFS represente, 2. inode number: Este es el número del inodo y es único en este sistema 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 este inodo 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 realizan operaciones para este inodo, por ejemplo, truncar el fichero que representa este inodo. 8. count: El número de componentes del sistema que están usando actualmente este inodo VFS. Un contador de cero indica que el inodo está 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 de ficheros 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 ha cosechado, siendo básico en cualquier distribución de este SO. Su construcción se 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 esta elección del tamaño se hace al crear el sistema con mke2fs). Cuando se almacena un fichero, se hace de tal forma que ocupe un número entero de bloques, quedando gran parte de la capacidad del último bloque usado bastante desperdiciada, a no ser que el fichero de datos ocupe exactamente un número de bloques, tal como se ha explicado reiteradas veces en clase. No todos los bloques del sistema de ficheros contienen datos, algunos deben usarse para mantener la información que describe la estructura del sistema de ficheros. EXT2 define la topología del sistema de ficheros describiendo cada fichero del sistema con una estructura de datos inodo. Un inodo describe que bloques ocupan los datos de un fichero y también los permisos de acceso del fichero, las horas de modificación del fichero y el tipo del fichero. Cada fichero en el 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 almacenan juntos en tablas de inodos. Los directorios EXT2 son ficheros especiales (ellos
  • 20. mismos descritos por inodos) que contienen punteros a los inodos de sus entradas de directorio. El sistema de ficheros EXT2 divide las particiones lógicas que ocupa en Grupos de Bloque (Block Groups). Cada grupo duplica información crítica para la integridad del sistema de ficheros ya sea valiéndose de ficheros y directorios como de bloques de información y datos. Esta duplicación es necesaria por si ocurriera un desastre y el sistema de 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 de inodos con un mapa de bits que permite al sistema seguir la pista de inodos reservados y libres. Un inodo EXT2, entre otra información, contiene los siguientes campos: 1. mode: Esto mantiene dos partes de información; qué inodo describe y los permisos que tienen los usuarios. Para EXT2, un inodo puede describir un fichero, directorio, enlace simbólico, dispositivo de bloque, dispositivo de carácter o FIFO. 2. owner Information: Los identificadores de usuario y grupo de los dueños de este fichero o directorio. Esto permite al sistema de ficheros 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 hora en que se modificó. 5. datablocks: Punteros a los bloques que contienen los datos que este inodo describe. Los doce primeros son punteros a los bloques fí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 de punteros que apuntan a bloques de datos. Esto significa que ficheros menores o iguales a 12 bloques de datos en longitud son más fácilmente accedidos que ficheros más grandes. Los inodos EXT2 pueden describir ficheros de dispositivo especiales, aunque no se consideran como ficheros reales, aunque permiten que los programas puedan
  • 21. usarlos para acceder a los dispositivos. Todos los ficheros de dispositivo de /dev están ahí para permitir a los programas acceder a los dispositivos de Linux. Por ejemplo el programa mount toma como argumento el fichero de dispositivo que el usuario desee montar. El Superbloque contiene una descripción del tamaño y forma base del sistema de ficheros. La información contenida permite al administrador del sistema de ficheros usar y mantener el sistema de ficheros. Normalmente sólo se lee el Superbloque del Grupo de Bloque 0 cuando se monta el sistema de ficheros pero cada Grupo de Bloque contiene una copia duplicada en caso de que se corrompa sistema de ficheros. Entre otra información contiene: 1. Magic Number: Permite al software de montaje comprobar que es realmente el Superbloque para un sistema de ficheros EXT2. Para la versión actual de EXT2 éste es 0xEF53. 2. Revision Level: Los niveles de revisión mayor y menor permiten al código de montaje determinar si este sistema de ficheros soporta o no características que sólo son disponibles para revisiones particulares del sistema de ficheros. También hay campos de compatibilidad que ayudan al código de montaje determinar que nuevas características se pueden usar con seguridad en ese sistema de ficheros. 3. Mount Count and Maximum Mount Count: Juntos permiten al sistema determinar si el sistema de ficheros fue comprobado correctamente. El contador de montaje se incrementa cada vez que se monta el sistema de ficheros y cuando es igual al contador máximo de montaje muestra el mensaje de aviso «maximal mount count reached, running e2fsck is recommended». 4. Block Group Number: El número del Grupo de Bloque que tiene la copia de este Superbloque. 5. Block Size: El tamaño de bloque para este sistema de ficheros en bytes, por ejemplo 1024 bytes. 6. Blocks per Group: El número de bloques en un grupo. Como el tamañ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 el sistema de ficheros. El primer inodo en un sistema de ficheros EXT2 raíz seria la entrada directorio para el directorio '/'.
  • 22. Sistema de Ficheros Proc El sistema de ficheros /proc muestra realmente la potencia del Sistema Virtual de Ficheros. Este sistema no existe en realidad. Éste como el resto de sistemas de ficheros, 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 estructuras del 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 variado mucho, desde los primeros discos IBM hasta los formatos estandarizados actualmente: 3,5 " los modelos para PC y servidores, 2,5 " los modelos para dispositivos portátiles. Todos se comunican con la computadora a través del controlador de disco, empleando una interfaz estandarizada. Los más comunes hasta los años 2000 han sido IDE (también llamado ATA o PATA), SCSI (generalmente usado en servidores y estaciones de trabajo). Desde el 2000 en adelante ha ido masificándose el uso de los Serial ATA. Existe además FC (empleado exclusivamente en servidores). Para poder utilizar un disco duro, un sistema operativo debe aplicar un formato de bajo nivel que defina una o más particiones. La operación de formateo requiere el uso de una fracción del espacio disponible en el disco, que dependerá del formato empleado. Además, los fabricantes de discos duros, unidades de estado sólido y tarjetas flash miden la capacidad de los mismos usando prefijos SI, que emplean múltiplos de potencias de 1000 según la normativa IEC y IEEE, en lugar de los prefijos binarios, que emplean múltiplos de potencias de 1024, y son los usados por sistemas operativos de Microsoft. Esto provoca que en algunos sistemas operativos sea representado como múltiplos 1024 o como 1000, y por
  • 23. tanto existan confusiones, por ejemplo un disco duro de 500 GB, en algunos sistemas 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 y emplean las mismas interfaces, pero no están formadas por discos mecánicos, sino por memorias de circuitos integrados para almacenar la información. El uso de 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 para el mercado doméstico. C. Dennis Mee, Eric D. Daniel (1996). Los discos duros pertenecen a la llamada memoria secundaria o almacenamiento secundario. El disco duro es más rápido, sin embargo su velocidad depende de la zona 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 la pista y el sector deseado; es la suma del Tiempo medio de búsqueda (situarse en la 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 la pista deseada; es la mitad del tiempo empleado por la aguja en ir desde la pista má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_duro 5 ibid
  • 24. Tiempo de lectura/escritura: Tiempo medio que tarda el disco en leer o escribir nueva información: Depende de la cantidad de información que se quiere leer o escribir, el tamaño de bloque, el número de cabezales, el tiempo por vuelta y la cantidad de sectores por pista. Latencia media: Tiempo medio que tarda la aguja en situarse en el sector deseado; 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 velocidad de 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 los mismos (independientemente de donde estemos ubicados) ya que son definidos por las revoluciones del motor (4200, 5400, 7200, 10mil y 15mil rpm) y por el 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 hasta 6 ó 7 según el modelo), y que giran todos a la vez sobre el mismo eje, al que están unidos. El cabezal (dispositivo de lectura y escritura) está formado por un conjunto de brazos paralelos a los platos, alineados verticalmente y que también se desplazan de forma simultánea, en cuya punta están las cabezas de
  • 25. lectura/escritura. Por norma general hay una cabeza de lectura/escritura para cada superficie de cada plato. Los cabezales pueden moverse hacia el interior o el exterior de los platos, lo cual combinado con la rotación de los mismos permite que los cabezales puedan alcanzar cualquier posición de la superficie de los platos. Interior de un disco duro; se aprecia la superficie de un plato y el cabezal de lectura/escritura retraí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 la computadora 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 (Small Computer System Interface) paralelo, aunque sigue utilizando comandos SCSI para interaccionar con los dispositivos SAS. Aumenta la velocidad y permite la conexión y desconexión de forma rápida.
  • 26. Tener forma redondeada y partes mecánicas (motor, cabeza lectora y discos) es una gran desventaja: La forma redondeada significa que la velocidad de lectura/escritura es mejor al comienzo del disco que al final y las partes mecánicas generan una latencia significativa en milisegundos. Cada plato posee dos ojos, y es necesaria una cabeza de lectura/escritura para cada cara. Si se observa el esquema Cilindro-Cabeza-Sector de más abajo, a primera vista se ven 4 brazos, uno para cada plato. En realidad, cada uno de los brazos es doble, y contiene 2 cabezas: una para leer la cara superior del plato, y otra para leer la cara inferior. Por tanto, hay 8 cabezas para leer 4 platos, aunque por cuestiones comerciales, no siempre se usan todas las caras de los discos y existen discos duros con un número impar de cabezas, o con cabezas deshabilitadas. 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 que impide que los cabezales pasen por encima de los platos hasta que alcancen una velocidad de giro que garantice la formación de esta película). Si alguna de las cabezas 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.200 revoluciones por minuto se mueve a 129 km/h en el borde de un disco de 3,5 pulgadas).
  • 27. La estructura física de un disco es la siguiente: un disco duro se organiza en platos (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 dividen en sectores (SECTORS). El disco duro tiene una cabeza (HEAD) en cada lado de cada plato, y esta cabeza es movida por un motor cuando busca los datos almacenados en una pista y un sector concreto. El concepto "cilindro" (CYLINDER) es un parámetro de organización: el cilindro está formado por las pistas concéntricas de cada cara de cada plato que están situadas unas justo encima de las otras, de modo que la cabeza no tiene que moverse 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 un comité que impulsa llevarlo a 4 KiB. Antiguamente el número de sectores por pista era fijo, lo cual desaprovechaba el espacio significativamente, ya que en las pistas exteriores pueden almacenarse más sectores que en las interiores. 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ás eficientemente el disco duro. Así las pistas se agrupan en zonas de pistas de igual cantidad de sectores. Cuanto más lejos del centro de cada plato se encuentra una zona, ésta contiene una mayor cantidad de sectores en sus pistas. Además mediante ZBR, cuando se leen sectores de cilindros más externos la tasa de transferencia de bits por segundo es mayor; por tener la misma velocidad angular que cilindros internos pero mayor cantidad de sectores. 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 de bloques), que consiste en dividir el disco entero en sectores y asignar a cada uno un único número. Éste es el que actualmente se usa.
  • 28. En cuanto a organización lógica, cuando damos formato lógico (el físico, o a bajo nivel, viene hecho de fábrica y no es recomendable hacerlo de nuevo, excepto en casos excepcionales, pues podría dejar inutilizado el disco) lo que hacemos es agrupar los sectores en unidades de asignación (CLUSTERS) que es donde se almacenan los datos de manera organizada. Cada unidad de asignación sólo puede ser ocupado por un archivo (nunca dos diferentes), pero un archivo puede ocupar más de una unidad de asignación. Dentro de un disco duro hay varios platos (entre 2 y 4), que son discos (de aluminio o cristal) concéntricos y que giran todos a la vez. El cabezal (dispositivo de lectura y escritura) es un conjunto de brazos alineados verticalmente que se mueven hacia dentro o fuera según convenga, todos a la vez. En la punta de dichos brazos están las cabezas de lectura/escritura, que gracias al movimiento del cabezal pueden leer tanto zonas interiores como exteriores del disco. Cada plato tiene dos caras, y es necesaria una cabeza de lectura/escritura para cada cara (no es una cabeza por plato, sino una por cara). Si se mira el esquema
  • 29. Cilindro-Cabeza-Sector (más abajo), a primera vista se ven 4 brazos, uno para cada plato. En realidad, cada uno de los brazos es doble contiene 2 cabezas: una para leer la cara superior del plato, y otra para leer la cara inferior. Por tanto, hay 8 cabezas 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 que giran 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ón que puede grabarse o almacenar en un disco duro. Hasta hace poco se medía en Gigabytes (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 del sector (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 que corresponde a 8.455.200.768 bytes = 8257032 KB =8063,5 MB si hacemos el cálculo con bytes "auténticos", es decir, si tenemos en cuenta que 1 KB son 1024 bytes y no 1000 como indican los fabricantes.
  • 30. Velocidad de Rotación (RPM) Es la velocidad a la que gira el disco duro, más exactamente, la velocidad a la que giran el/los platos del disco, que es donde se almacenan magnéticamente los datos. La regla es: a mayor velocidad de rotación, más alta será la transferencia de datos, pero también mayor será el ruido y mayor será el calor generado por el disco duro. Se mide en número revoluciones por minuto (RPM). No debe comprarse un disco duro IDE de menos de 5400 RPM (ya hay discos IDE de 7200 RPM), a menos que te lo den a un muy buen precio, ni un disco SCSI de menos de 7200RPM (los hay de 10.000 RPM). Una velocidad de 5400 RPM permitirá una transferencia entre 10MB y 16MB por segundo con los datos que están en la parte exterior del cilindro o 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 datos que necesitamos. Realmente es la suma de varias velocidades:  El tiempo que tarda el disco en cambiar de una cabeza a otra cuando busca datos.  El tiempo que tarda la cabeza lectora en buscar la pista con los datos saltando de una a otra.  El tiempo que tarda la cabeza en buscar el sector correcto dentro de la pista. 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 datos que le hemos pedido. Hoy en día en un disco moderno, lo normal son 10 milisegundos. Memoria CACHE (Tamaño del BUFFER) El BUFFER o CACHE es una memoria que va incluida en la controladora interna del disco duro, de modo que todos los datos que se leen y escriben a disco duro se almacenan primeramente en el buffer. La regla de mano aquí es 128 KB para discos de menos de 1 GB, 256 KB para discos mayores de 1 GB y 512 KB para discos duros de 2 GB o mayores. Generalmente los discos duros actuales de más de 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 a continuación de una lectura estará situada en una posición físicamente contigua a
  • 31. la última lectura, por eso los discos duros almacenas en la caché los datos contiguos, 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 a la 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 parte más exterior del disco o plato en un periodo de un segundo. Normalmente se mide en Mbits/segundo, y hoy en día, en un disco de 5400 RPM, un valor habitual es 100 Mbits/s, que equivale a 10 MB/s. Interfaz: Medio de comunicación entre el disco duro y el ordenador. Puede ser IDE/ATA, SCSI, SATA, USB o Firewire. La memoria flash (usb) carece de partes móviles y esto disminuye enormemente su latencia (retardo). La velocidad de lectura/escritura es estable sin importar la ubicación dentro de la memoria flash; sin embargo hasta ahora no se ha logrado igualar a la ofrecida por los discos duros. Velocidad en color AZUL, Latencia en color AMARILLO
  • 32. Tal vez lo que muchos no saben es que los discos duros contienen un chip con el 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 de operaciones mecánicas de lectura/escritura. En conclusión, la parte de la alta velocidad de los discos duros se debe a la existencia de un chip que funciona bajo los mismos principios de las memorias flash (no partes mecánicas y baja latencia). Se puede observar el chip principal controlador del disco duro. Es un chip controlador SATA, que además incluye los 16MB de memoria caché especificados en el disco duro. Adicionalmente: No todas las BIOS son memorias FLASH (hay Bios PLCC y DIP), pero modernamente la tendencia ha sido FLASH.
  • 33. Tipos de conexión7 Existen distintos tipos de conexión asociados a los discos duros que poseen los mismos 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 de almacenamiento masivo de datos, como los discos duros y ATAPI (Advanced Technology Attachment Packet Interface) Hasta aproximadamente el 2004, el estándar principal por su versatilidad y asequibilidad. Son planos, anchos y alargados. - SCSI: Son interfaces preparadas para discos duros de gran capacidad de almacenamiento y velocidad de rotación. Se presentan bajo tres 7 Ibidem.
  • 34. especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (Fast SCSI) y SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de acceso puede llegar a 7 milisegundos y su velocidad de transmisión secuencial de información puede alcanzar teóricamente los 5 Mbit/s en los discos SCSI Estándares, los 10 Mbit/s en los discos SCSI Rápidos y los 20 Mbit/s en los discos SCSI Anchos-Rápidos (SCSI-2). Un controlador SCSI puede manejar hasta 7 discos duros SCSI (o 7 periféricos SCSI) con conexión tipo margarita (daisy-chain). A diferencia de los discos IDE, pueden trabajar asincrónicamente con relación al microprocesador, lo que posibilita una mayor 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ápido y eficiente que IDE. Existen tres versiones, SATA 1 con velocidad de transferencia de hasta 150 MB/s (hoy día descatalogado), SATA 2 de hasta 300 MB/s, el más extendido en la actualidad; y por último SATA 3 de hasta 600 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 de permitir conexión en caliente. - SAS (Serial Attached SCSI): Interfaz de transferencia de datos en serie, sucesor del SCSI paralelo, aunque sigue utilizando comandos SCSI para interaccionar con los dispositivos SAS. Aumenta la velocidad y permite la conexión y desconexión en caliente. Una de las principales características es que aumenta la velocidad de transferencia al aumentar el número de dispositivos conectados, es decir, puede gestionar una tasa de transferencia constante para cada dispositivo conectado, además de terminar con la limitación de 16 dispositivos existente en SCSI, es por ello que se vaticina que la tecnología SAS irá reemplazando a su predecesora SCSI. Además, el conector es el mismo que en la interfaz SATA y permite utilizar estos discos duros, para aplicaciones con menos necesidad de velocidad, ahorrando costes. Por lo tanto, las unidades SATA pueden ser utilizadas por controladoras SAS pero no a la inversa, una controladora SATA no reconoce discos SAS. Dimensiones de los DD8 La dimensión de los DD está asociada a un concepto denominado "factor de forma", heredada da las dimensiones de las disqueteras. Pueden ser montados en 8 Ibídem.
  • 35. los mismos chasis y así los discos duros con factor de forma, pasaron a llamarse coloquialmente 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 dimensiones má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 disco duros, SA1000, teniendo las mismas dimensiones y siendo compatible con la interfaz de 8 pulgadas de las disqueteras. Había dos versiones disponibles, 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 de forma es el primero usado por los discos duros de Seagate en 1980 con el mismo 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únmente se usa hoy; por ejemplo: 41,4 mm (1,64 pulgadas). La mayoría de los modelos de unidades ópticas (DVD/CD) de 120 mm usan el tamaño del
  • 36. factor de forma de media altura de 5¼, pero también para discos duros. El modelo 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 de forma es el primero usado por los discos duros de Rodine que tienen el mismo tamaño que las disqueteras de 3½, 41,4 mm de altura. Hoy ha sido en 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 se corresponde con el tamaño de las lectoras de disquete. Este es frecuentemente usado por los discos duros de los equipos móviles (portátiles, reproductores de música, etc...) y en 2008 fue reemplazado por unidades de 3,5 pulgadas de la clase multiplataforma. Hoy en día la dominante de este factor de forma son las unidades para portátiles de 9,5 mm, 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 Integral Peripherals en 1993 y se involucró con ATA-7 LIF con las dimensiones indicadas y su uso se incrementa en reproductores de audio digital y su subnotebook. La variante original posee de 2GB a 5GB y cabe en una ranura de expansión de tarjeta de ordenador personal. Son usados normalmente en iPods y discos duros basados en MP3. - 1 pulgadas: 42,8×5×36,4 mm. Este factor de forma se introdujo en 1999 por IBM y Microdrive, apto para los slots tipo 2 de compact flash, Samsung llama al mismo factor como 1,3 pulgadas. - 0,85 pulgadas: 24×5×32 mm. Toshiba anunció este factor de forma el 8 de enero de 2004 para usarse en móviles y aplicaciones similares, incluyendo SD/MMC slot compatible con disco duro optimizado para vídeo y almacenamiento para micromóviles de 4G. Toshiba actualmente vende versiones de 4GB (MK4001MTD) y 8GB (MK8003MTD) 5 y tienen el Record Guinness del disco duro más pequeño. Los principales fabricantes suspendieron la investigación de nuevos productos para 1 pulgada (1,3 pulgadas) y 0,85 pulgadas en 2007, debido a la caída de precios de las memorias flash, aunque Samsung introdujo en el 2008 con el SpidPoint A1 otra unidad de 1,3 pulgadas.
  • 37. El nombre de "pulgada" para los factores de forma normalmente no identifica ningún producto actual (son especificadas en milímetros para los factores de forma más recientes), pero estos indican el tamaño relativo del disco, para interés de 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 de particiones. El sector de arranque o bloque de arranque, es un sector de un disco duro, disquete, o cualquier otro dispositivo de almacenamiento de datos que contiene código de arranque, por lo general (pero no necesariamente), de un sistema operativo almacenado en otros sectores del disco. La BIOS selecciona un dispositivo de arranque, entonces copia al 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 446 y ocupa 64 bytes, conteniendo 4 registros de 16 bytes, los cuales definen las particiones primarias. En ellos se almacena toda la información básica sobre la partició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 512 bytes Primer sector físico del disco duro (pista cero) 446 bytes Código del gestor de arranque 64 bytes 16 bytes Primera partición 1 byte Marca de arranque si el bit 7 está activo es una partición de arranque, los otros bits deben ser ceros. 3 bytes 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
  • 38. 3 bytes CHS final 4 bytes LBA 4 bytes Tamaño en sectores 16 bytes Segunda partición 1 byte Marca de arranque si el bit 7 está activo es una partición de arranque, los otros bits deben ser ceros. 3 bytes CHS de inicio 1 byte Tipo de partición 3 bytes CHS final 4 bytes LBA 4 bytes Tamaño en sectores 16 bytes Tercera partición 1 byte Marca de arranque si el bit 7 está activo es una partición de arranque, los otros bits deben ser ceros. 3 bytes CHS de inicio 1 byte Tipo de partición 3 bytes CHS final 4 LBA
  • 39. bytes 4 bytes Tamaño en sectores 16 bytes Cuarta partición 1 byte Marca de arranque si el bit 7 está activo es una partición de arranque, los otros bits deben ser ceros. 3 bytes CHS de inicio 1 byte Tipo de partición 3 bytes CHS final 4 bytes LBA 4 bytes 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 vital del MBR. Desde Windows NT 4, Microsoft mantiene 4 bytes a partir de la posición 0x1B8 que sirven de identificador de la unidad física completa. Es utilizada por el sistema para referenciarla de manera independiente a la letra de unidad o bus de conexión. El identificador se mantiene en diferentes lugares del registro, y es una pieza clave durante el arranque del sistema. Una prueba realizada en Windows Vista hace inarrancable el sistema tras un cambio de esos cuatro bytes. El mensaje de error mostrado 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.
  • 40. PARTICIONES Los sistemas operativos no trabajan con unidades físicas directamente sino con unidades lógicas. Cada una de estas unidades lógicas constituye una partición del disco duro. Particiones y directorios.— Ambas estructuras permiten organizar datos dentro de un disco duro. Sin embargo, presentan importantes diferencias: 1ª) Las particiones son divisiones de tamaño fijo del disco duro; los directorios son divisiones de tamaño variable de la partición; 2ª) Las particiones ocupan un grupo de cilindros contiguos del disco duro (mayor seguridad); los directorios suelen tener su información desperdigada por toda la partición; 3ª) Cada partición del disco duro puede tener un sistema de archivos (sistema operativo) distinto; todos los directorios de la partición tienen el sistema de archivos 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 especial denominada 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 que se cargue al arrancar desde el disco duro. Estructura lógica de las particiones Dependiendo del sistema de archivos utilizado en cada partición, su estructura ló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, directorio raíz y área de datos. De todas formas, el sector de arranque es un elemento común a todos los tipos de particiones.
  • 41. Todas las particiones tienen un sector de arranque (el primero de la partición) con información relativa a la partición. Si la partición tiene instalado un sistema operativo, este sector se encargará de arrancarlo. Si no hubiese ningún sistema operativo (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 ser confundido con el tipo de partición (p. ej. partición primaria), ya que en realidad no tienen directamente mucho que ver. Independientemente del sistema de archivos de una partición (FAT, ext3, NTFS, etc.), existen 3 tipos diferentes de particiones: • Partición primaria: Son las divisiones crudas o primarias del disco, solo puede haber 4 de éstas o 3 primarias y una extendida. Depende de una tabla de particiones. Un disco físico completamente formateado consiste, en realidad, de una partición primaria que ocupa todo el espacio del disco y posee un sistema de archivos. A este tipo de particiones, prácticamente cualquier sistema operativo puede detectarlas y asignarles una unidad, siempre y cuando el sistema operativo reconozca su formato (sistema de archivos). En los equipos PC, originales de IBM, estas particiones tradicionalmente usan una estructura llamada Tabla de particiones, ubicada al final del registro de arranque maestro (MBR, Master Boot Record). Esta tabla, que no puede contener más de 4 registros de particiones (también llamados partition descriptors), específica para cada 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 que indica si la partición está activa o no (sólo puede haber una partición activa a la vez). El marcador se usa durante el arranque; después de que el BIOS cargue el registro de arranque maestro en la memoria y lo ejecute, el MBR de DOS comprueba la tabla de partición a su final y localiza la partición activa. Entonces
  • 42. carga el sector de arranque de esta partición en memoria y la ejecuta. A diferencia del registro de arranque maestro, generalmente independiente del sistema operativo, el sector de arranque está instalado junto con el sistema operativo y sabe cómo cargar el sistema ubicado en ese disco en particular. Notar que mientras la presencia de un marcador activo se estandariza, no se utiliza 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 particiones del MBR la partición activa; simplemente cargan una segunda etapa (que puede ser contenida en el resto del cilindro 0 ó en el sistema de archivos). Después de cargar la segunda etapa se puede cargar el sector de arranque de cualquiera de las particiones del disco (permitiendo al usuario seleccionar la partición), o si el gestor conoce cómo localizar el kernel (núcleo) del sistema operativo en una de las particiones (puede permitir al usuario especificar opciones de kernel adicionales 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 disco duro. Esto unido al deterioro de la FAT con el uso y al aumento de tamaño de los discos movió a Microsoft a crear un esquema mejorado relativamente simple: una de las entradas de la tabla de partición principal pasó a llamarse partición extendida y recibió un número de tipo de partición especial (0x05). El campo inicio de partición tiene la ubicación del primer descriptor de la partición extendida, que a su vez tiene un campo similar con la ubicación de la siguiente; así se crea una lista enlazada de descriptores de partición. Los demás campos de una partición extendida son indefinidos, no tienen espacio asignado y no pueden usarse para almacenar datos.
  • 43. Las particiones iniciales de los elementos de la lista enlazada son las llamadas unidades lógicas; son espacios asignados y pueden almacenar datos. Los sistemas operativos antiguos ignoraban las particiones extendidas con número de tipo 0x05, y la compatibilidad se mantenía. Este esquema reemplaza al antiguo ya que todas las particiones de un disco duro se pueden poner dentro de una sola partición extendida. Por alguna razón, Microsoft no actualizó su sistema operativo DOS para arrancar desde una partición extendida, debido a que la necesidad para particiones primarias se preservará. Por encima de éstas todavía se habría permitido una partición FAT primaria por unidad, significando todas las otras particiones FAT primarias deben tener sus números de tipo de partición prior cambiando 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 la partición. Sin embargo hay que tener en cuenta una quinta partición que se puede comprimir pero no es muy recomendable. Gestores de arranque Si instala diferentes Sistemas Operativos en un mismo computador, el equipo tendrá que utilizar un sistema para poder seleccionar qué Sistema Operativo desea iniciar. El gestor de arranque es un programa que se ejecuta una vez completado el inicio normal de la BIOS y que permite seleccionar el Sistema Operativo 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 Sistemas Operativos Windows NT, Windows 2000, Windows XP y Windows Server 2003. Se encuentra, 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, que contiene el menú de opciones de inicio, y el archivo NTDETECT.COM que es el que se encarga de iniciar el sistema seleccionado. El Administrador de arranque de Windows (Bootmgr). Es el archivo encargado del 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 de septiembre 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
  • 44. Windows Server 2008. Se encuentra, normalmente, en el directorio raíz del disco del sistema. Controla el proceso de arranque mostrando el menú multiarranque (si hubiera más de un Sistema Operativo) instalado en el disco). Después llama al archivo 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 Windowssystem32 Lilo (Linux Loader). Es un gestor de arranque de Linux que permite iniciar este Sistema Operativo junto con otras plataformas (como Windows) que haya en el mismo ordenador. Funciona en una gran variedad de sistemas de archivos y puede arrancar un Sistema Operativo desde el disco duro o desde un disco flexible externo. Grub. Es un gestor de arranque más moderno y flexible que el anterior, ya que permite que el administrador ejecute cualquier comando desde la línea de comando de Grub. Entre todas sus características hay que destacar la posibilidad de incluir múltiples formatos de ejecutables, el arranque de Sistemas Operativos no-multiarranque, una agradable interfaz de usuario y una interfaz de línea de comando muy flexible. • Partición extendida: También conocida como partición secundaria es otro tipo de partición que actúa como una partición primaria; sirve para contener infinidad de unidades lógicas en su interior. Fue ideada para romper la limitación de 4 particiones primarias en un solo disco físico. Solo puede existir una partición de 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 totalidad de la misma, la cual se ha formateado con un tipo específico de sistema de archivos (FAT32, NTFS, ext2,...) y se le ha asignado una unidad, así el sistema operativo reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo de 23 particiones lógicas en una partición extendida. Linux impone un má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 a la hora de instalar de cero el sistema operativo. En una de las particiones se mantiene el sistema operativo y en la otra los archivos del usuario (documentos, e-mails, descargas, música, etc.). Si se necesita formatear e instalar de cero el sistema por cualquier inconveniente, simplemente se procede a formatear la partición que contiene el sistema operativo, dejando intacta la otra.
  • 45. Esto nos ahorra mucho tiempo, dado que no debemos guardar toda esa información en otra unidad de almacenamiento. De todas maneras, emplear una partición como respaldo no es buena idea (se explica más abajo), siempre se recomienda tener el respaldo en otra unidad de almacenamiento. 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. Recuerde que 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, puede producir un mayor desgaste del mecanismo interno del disco. Es es porque cuando se particiona un disco duro en dos, se crean dos áreas de trabajo. Es decir, dos anillos concéntricos, siendo el anillo interior el de la unidad C, y el anillo externo generalmente el de la unidad D. Pero generalmente la aguja de lectura/escritura del disco duro suele trabajar mayormente en el anillo interno (unidad C), y no mucho en el externo, lo que puede 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 de grabación perpendicular (PMR), la cual permite mayor densidad de almacenamiento. También existen discos llamados "Ecológicos" (GP - Green Power), los cuales hacen un uso más eficiente de la energía.
  • 46. 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 un dispositivo de almacenamiento de datos que puede estar construido con memoria no volátil o con memoria volátil. Las no volátiles son unidades de estado sólido que como dispositivos electrónicos, están construidos en la actualidad con chips de memoria flash.11 No son discos, pero juegan el mismo papel a efectos prácticos aportando 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 tipo de unidades de estado sólido terminen sustituyendo al disco duro para implementar el manejo de memorias no volátiles en el campo de la ingeniería informática. Esos soportes son muy rápidos ya que no tienen partes móviles y consumen menos energía. Todo esto les hace muy fiables y físicamente duraderos. Sin embargo su costo por GB es aún muy elevado respecto al mismo coste de GB en un 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 para perdurar. 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.
  • 47. hablamos de las altas necesidades de almacenamiento que hoy se miden en orden de Terabytes.( Comparativas de precios SSD versus disco duro. 2010). A pesar de ello la industria apuesta por este vía de solución tecnológica para el consumo doméstico (Discos de estado sólido 2010) aunque se ha de considerar que estos sistemas han de ser integrados correctamente (Comparativa entre disco duro. 2008) tal y como se está realizando en el campo de la alta computación. (Primera supercomputadora 2013). Unido a la reducción progresiva de costes quizás esa tecnología recorra el camino de aplicarse como método general de archivo de datos informáticos energéticamente respetuosos con el medio natural si optimiza 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 sido categorizadas repetidas veces como "discos", cuando es totalmente incorrecto denominarlas así, puesto que a diferencia de sus predecesores, sus datos no se almacenan sobre superficies cilíndricas ni platos. Esta confusión conlleva habitualmente a creer que "SSD" significa Solid State Disk, en vez de Solid State Drive. (Seagate 2013) Unidades híbridas Las unidades híbridas son aquellas que combinan las ventajas de las unidades mecánicas convencionales con las de las unidades de estado sólido. Consisten en acoplar 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 de uso frecuente (determinado por el software de la unidad) y el área mecánica para el almacenamiento masivo de datos. Con esto se logra un rendimiento cercano al de unidades de estado sólido a un costo sustancialmente menor. En el mercado actual (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 de archivos principal de las ediciones no empresariales de Microsoft Windows hasta Windows Me.
  • 48. FAT (File Allocate Table, tabla de asignación de archivos) Este sistema de archivos se basa, como su nombre indica, en una tabla de asignación de archivos o FAT. Esta tabla es el índice del disco. Almacena los grupos utilizados por cada archivo, los grupos libres y los defectuosos. Como consecuencia de la fragmentación de archivos, es corriente que los distintos grupos que contienen un archivo se hallen desperdigados por toda la partición. La FAT es la encargada de seguir 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 de almacenamiento de un archivo en una partición y está formada por uno o varios sectores contiguos del disco. 4 sectores consecutivos de 512 bytes). La FAT, es un formato para disquetes admitido prácticamente por todos los SO existentes para computadores personales. Sobra decir, que aunque el formato de disquetes prácticamente ha desaparecido, la FAT aun se usa, por lo que se debe repasar o recordar sus características. Así, la FAT se utiliza como mecanismo de intercambio de datos entre sistemas operativos distintos que coexisten en un mismo computador, lo que se conoce como entorno multiarranque. También se utiliza 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 fragmentos dispersos de éstos por todo el soporte. Con el tiempo, esto hace que el proceso de lectura o escritura sea cada vez más lento. La denominada desfragmentación es la solución a esto, pero es un proceso largo que debe repetirse regularmente para mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue
  • 49. diseñado para ser redundante ante fallos. Inicialmente solamente soportaba nombres cortos de archivo: ocho caracteres para el nombre más tres para la extensión. También carece de permisos de seguridad: cualquier usuario puede acceder 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 puede contener subdirectorios; o lo mismo, que dentro de una carpeta no pueden haber otras carpetas. Cabe mencionar, que esto sólo ocurre en FAT 12, a partir de ella, si es posible. La causa es porque no soportaba metadatos, (los que asignan atributos para un fichero), en concreto no podía distinguir el campo st_mode si fuera un fichero o un directorio.  Las direcciones de bloque solamente contienen 12 bits. Esto complica la implementación.  El tamaño del disco se almacena como una cuenta de 16 bits expresada en sectores, 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 el microcontrolador de un autómata (un PLC). Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente ejecutadas 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 de instrucciones disponibles pueda ser similar entre ellas.
  • 50. 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 la partición ahora estaba limitado por la cuenta de sectores por clúster, que era de 8 bits. Esto obligaba a usar clusters de 32Kbytes con los usuales 512 bytes por sector. 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, el formato resultante no era compatible con otras implementaciones de la época, y además, generaba mucha fragmentación interna (se ocupaban clusters enteros aunque solamente se precisaran unos pocos bytes). FAT32 El sistema FAT32 permite trabajar con particiones mayores de 2 GB. No solamente esto, sino que además el tamaño del grupo (cluster) es mucho menor y no se desperdicia tanto espacio como ocurría en las particiones FAT. Microsoft decidió implementar una nueva generación de FAT utilizando direcciones de cluster de 32 bits (aunque sólo 28 de esos bits se utilizaban realmente). Teóricamente, esto permitía aproximadamente 268.435.538 clusters, arrojando tamaños de almacenamiento cercanos a los 8TB. Sin embargo, debido a limitaciones en la utilidad ScanDisk de Microsoft, no se permite que FAT32 crezca más allá de 4.177.920 clusters por partición (es decir, unos 124 GB). Posteriormente, Windows 2000 y XP situaron el límite de FAT32 en los 32GB. Microsoft afirma que es una decisión de diseño, sin embargo, es capaz de leer particiones mayores creadas por otros medios.
  • 51. El tamaño máximo de un archivo en FAT32 es 4GB (232 −1 bytes), lo que resulta engorroso para aplicaciones de captura y edición de video, ya que los archivos generados por éstas superan fácilmente ese límite. En la siguiente tabla, se comparan los tamaños de grupo utilizados según el tamaño de la partición y el sistema de archivos empleado: Tamaño de la partición Tamañ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 soportado 8 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 FAT32 Desarrollador Microsoft Nombre completo Tabla de Asignación de Archivos (versión de 12 bits) (versión de 16 bits) (versión de 32 bits) Introducido 1977 (Microsoft Julio de 1988 (MS- Agosto
  • 52. Existen otros sistemas operativos como GNU/Linux, FreeBSD y BeOS que soportan 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 conocido como UMSDOS. Este consistía en una variante de FAT que admitía los permisos de seguridad en Unix, además de los nombres largos de éste. Para ello, se Disk BASIC) DOS 4.0) de 1996 (Windows 95 OSR2) Identificador de partición 0x01 (MBR) 0x04, 0x06, 0x0E (MBR) 0x0B, 0x0C (MBR) EBD0A0A2-B9E5- 4433 -87C0- 68B6B72699C7 (GPT) Estructuras FAT12 FAT16 FAT32 Contenido de carpeta Tabla Ubicación de archivo Lista enlazada Bloques defectuosos Lista enlazada Límites FAT12 FAT16 FAT32 Tamaño máximo de archivo 32 MB 2 GB 4 GB Número máximo de archivos 4.077 65.517 268.435.437 Longitud máxima del nombre de archivo 8.3 (11) o 255 caracteres cuando se usan LFNs (Long File Names) Tamaño máximo del volumen 2 MB 2 GB 2 TB Características FAT12 FAT16 FAT32 Fechas almacenadas Creación, modificación, acceso Rango de fechas soportado 1 de enero de 1980 - 31 de diciembre de 2107 Metadatos No de modo nativo Atributos Sólo lectura, oculto, sistema, archivo, nombre del volumen Permisos No Compresión transparente Por volumen, Stacker, DoubleSpace, DriveSpace No Cifrado transparente Por volumen sólo con DR-DOS No
  • 53. 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 del nú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 a la hora de efectuar un formateo del sistema operativo sobre plataforma MAC, ni se les ocurra usar este formato. VFAT (Virtual FAT) Este sistema de archivos logra remediar uno de los mayores problemas del sistema FAT: los nombres de archivos y directorios sólo podían contener 8 caracteres de nombre y 3 de extensión. Con VFAT, se logra ampliar este límite a 255 caracteres entre nombre y extensión. La mayor ventaja de VFAT es que tiene plena compatibilidad con FAT. Por ejemplo, es factible utilizar la misma partición para dos sistemas operativos que utilicen uno FAT y otro VFAT (MS-DOS y Windows 95). Cuando entremos desde MS-DOS, los nombres largos de archivos se transforman en nombres cortos según unas reglas establecidas, y pueden ser utilizados de la manera habitual. De todas maneras, hay que prestar cierta atención cuando se trabaja desde MS-DOS con archivos que tienen nombres largos: no se deben realizar operaciones de copiado o borrado, ya que se corre el riesgo de perder el nombre largo del archivo y quedarnos sólo con el corto. Desde Windows 95, se trabaja de forma transparente con nombres cortos y largos Nota. Microsoft desde la versión de Windows XP no siguió soportando los sistemas operativos basados en MS-DOS, solo aparece en su archivo como un recuerdo de su antigua kernel, por lo que pensar en nuevas versiones de FAT es poco probable. Ahora, para el caso de NTFS, es un sistema de archivos superior al FAT en múltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principal desventaja es el excesivo tamaño que desperdicia en pequeños volúmenes y su limitado soporte en otros sistemas operativos. Sus especificaciones son un secreto comercial; no obstante, esto está cambiando, ya es posible leer y escribir en particiones NTFS en Linux con herramientas como NTFS-3G13 . FAT es actualmente el sistema de archivos habitual en medios de almacenamiento extraí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 licencia GNU GPL y de código abierto. Al contrario que el driver NTFS incluido en el kernel Linux, tiene muy pocas limitaciones en cuanto a la escritura de archivos: permite crear, renombrar, mover o borrar ficheros de cualquier tamaño en particiones NTFS, con la excepción de ficheros cifrados. (http://www.tuxera.com/community/ntfs-3g-faq/#questions)