Particiones

  • Cada disco duro constituye una unidad física distinta. Sin embargo, los sistemas operativos no trabajan con unidades físicas directamente sino con unidades lógicas. Dentro de una misma unidad física de disco duro puede haber varias unidades lógicas. Cada una de estas unidades lógicas constituye una partición del disco duro. Esto quiere decir que podemos dividir un disco duro en, por ejemplo, dos particiones (dos unidades lógicas dentro de una misma unidad física) y trabajar de la misma manera que si tuviésemos dos discos duros (una unidad lógica para cada unidad física).

  • 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.

  • Como mínimo, es necesario crear una partición para cada disco duro. Esta partición puede contener la totalidad del espacio del disco duro o sólo una parte. Las razones que nos pueden llevar a crear más de una partición por disco se suelen reducir a tres:

      1. Razones organizativas. Considérese el caso de un ordenador que es compartido por dos usuarios y, con objeto de lograr una mejor organización y seguridad de sus datos deciden utilizar particiones separadas.
      2. Instalación de más de un sistema operativo. Debido a que cada sistema operativo requiere (como norma general) una partición propia para trabajar, si queremos instalar dos sistemas operativos a la vez en el mismo disco duro (por ejemplo, Windows 98 y Linux), será necesario particionar el disco.
      3. Razones de eficiencia. Por ejemplo, suele ser preferible tener varias particiones FAT pequeñas antes que una gran partición FAT. Esto es debido a que cuanto mayor es el tamaño de una partición, mayor es el tamaño del grupo (cluster) y, por consiguiente, se desaprovecha más espacio de la partición.

  • Las particiones pueden ser de dos tipos: primarias o lógicas. Las particiones lógicas se definen dentro de una partición primaria especial denominada partición extendida.

  • En un disco duro sólo pueden existir 4 particiones primarias (incluida la partición extendida, si existe). Las particiones existentes deben inscribirse en una tabla de particiones de 4 entradas situada en el primer sector de todo disco duro. De estas 4 entradas de la tabla puede que no esté utilizada ninguna (disco duro sin particionar, tal y como viene de fábrica) o que estén utilizadas una, dos, tres o las cuatro entradas. En cualquiera de estos últimos casos (incluso cuando sólo hay una partición), es necesario que en la tabla de particiones figure una de ellas como partición activa. 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.

  • De todo lo anterior se pueden deducir varias conclusiones: Para que un disco duro sea utilizable debe tener al menos una partición primaria. Además para que un disco duro sea arrancable debe tener activada una de las particiones y un sistema operativo instalado en ella. Un disco duro no arrancará si no se ha definido una partición activa o si, habiéndose definido, la partición no es arrancable (no contiene un sistema operativo).

  • Hemos visto antes que no es posible crear más de cuatro particiones primarias. Este límite, ciertamente pequeño, se logra subsanar mediante la creación de una partición extendida (como máximo una). Esta partición ocupa, al igual que el resto de las particiones primarias, una de las cuatro entradas posibles de la tabla de particiones. Dentro de una partición extendida se pueden definir particiones lógicas sin límite. El espacio de la partición extendida puede estar ocupado en su totalidad por particiones lógicas o bien, tener espacio libre sin particionar.

  • En la tabla de particiones del Master Boot Record debe existir una entrada con una partición extendida (la cual no tiene sentido activar). Esta entrada apunta a una nueva tabla de particiones similar a la ya estudiada, de la que sólo se utilizan sus dos primeras entradas. La primera entrada corresponde a la primera partición lógica; la segunda, apuntará a una nueva tabla de particiones. Esta nueva tabla contendrá en su primera entrada la segunda partición lógica y en su segunda, una nueva referencia a otra tabla. De esta manera, se va creando una cadena de tablas de particiones hasta llegar a la última, identificada por tener su segunda entrada en blanco.

Particiones primarias y particiones lógicas

  • Ambos tipos de particiones generan las correspondientes unidades lógicas del ordenador. Sin embargo, hay una diferencia importante: sólo las particiones primarias se pueden activar. Además, algunos sistemas operativos no pueden acceder a particiones primarias distintas a la suya.

  • Lo anterior nos da una idea de qué tipo de partición utilizar para cada necesidad. Los sistemas operativos deben instalarse en particiones primarias, ya que de otra manera no podrían arrancar. El resto de particiones que no contengan un sistema operativo, es más conveniente crearlas como particiones lógicas. Por dos razones: primera, no se malgastan entradas de la tabla de particiones del disco duro y, segunda, se evitan problemas para acceder a estos datos desde los sistemas operativos instalados. Las particiones lógicas son los lugares ideales para contener las unidades que deben ser visibles desde todos los sistemas operativos.

  • Algunos sistemas operativos presumen de poder ser instalados en particiones lógicas (Windows XP), sin embargo, esto no es del todo cierto: necesitan instalar un pequeño programa en una partición primaria que sea capaz de cederles el control.

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 95, está formada por sector de arranque, FAT, 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.

Proceso de inicio en Windows XP.
  • Uno de los procesos mas ocultos que existe en un sistema operativo grafico como Windows XP, es el proceso de inicio del sistema o BOOTING; este proceso es un proceso critico en el sistema, dado que en él se define el comportamiento posterior del sistema.

  • El primer paso de todo el proceso de encendido de un sistemas es el denominado POST (Power-on Self Test) este proceso abarca una comprobación eléctrica del sistema es realizado por la BIOS, y abarca los siguientes pasos:

      • PROM Checksum: esta verificación se hace para lograr validar que la información almacenada en la memoria ROM del sistema es igual a la información de los dispositivos instalados, es una suma de comprobación.
      • Segment Map Addres: en este punto se prepara la memoria para recibir la información, se envía una serie de códigos que luego son leídos para probar que la memoria es completamente funcional.
      • Page Map Address: divide la memoria en segmentos de paginación, y se realiza la comprobación de paginación.
      • Se lee la información de la memoria C-MOS para ser usada en el resto del proceso.

  • Una vez el sistema ha realizado las comprobaciones eléctricas y físicas (POST) se procede a buscar el sistema operativo que se desea cargar, se puede definir el orden de la búsqueda, este orden corresponde a BOOT ORDER en la información almacenada en la BIOS. Depende del orden definido, la secuencia tomara caminos diferentes, en general se dice que la mayoría de los sistemas se pueden programar para que hagan la búsqueda en los siguientes dispositivos:

      • Floppy disk
      • CD-ROM
      • Disco duro
      • Adaptadores de red (si el adaptador soporta este sistema)
      • Unidades de ZIP
      • O almacenamientos externos.

  • Cuando se intenta iniciar el sistema por la unidad de disco duro se busca el MBR

MBR

  • MBR o master boot record son los primeros 512 byes de todo disco duro que le dicen al sistema como proceder para lograr el inicio del sistema, adicionalmente contiene los datos de la tabla de partición. En caso de el disco duro no tenga un sistema operativo instalado, o en caso de tener problemas con MBR, el mensaje de error que tendrá será el siguiente:

  • Invalid partition table
  • Error loading operating system
  • Missing operating system
  • BOOT: Couldn't find NTLDR
  • NTLDR is missing

  • Después se cargan una serie de archivos en un orden específico; y el cambio del modo de operación del procesador es el primer paso. El proceso de boot difiere a partir de este punto en los equipos con procesador X86 y los equipos con procesador de 64bits. Asumiremos los procesadores X86. Al Inicio el procesador después de encendido el equipo o reiniciado el procesador arranca en modo REAL esto implica que el procesador es puesto en modo de compatibilidad, lo que quiere decir que le brinda soporte a aplicaciones desarrolladas para 8Bits y 16bits, así se ofrece compatibilidad hacia atrás con aplicaciones antiguas y DOS, para poder aprovechar todo el rendimiento del procesador se debe cambiar de modo REAL a modos EXTENDIDO o Enhanced. Este cambio en los procesadores de familia X86 se hace por medio de software y se puede realizar sin necesidad de reiniciar el equipo, este cambio fue posible desde la serie 486 de Intel. El cambio es realizado por el programa NTLDR. Al hacer este cambio se puede además tener accesos a porciones superiores de memoria puesto que hasta este punto el sistema solo tiene acceso a los primero 640Kb de memoria.

Carga del sistema de archivos
  • La carga del sistema de archivos se realiza solo después que el sistema tiene un procesador de 32bits disponible, el sistema de archivos según sea el caso será NTFS, FAT o FAT32; en este punto es que en realidad se puede acceder a la estructura de árbol de la partición y se puede proceder a la lectura de toda la configuración, puesto que hasta este punto solo se podía acceder a los archivos que estuvieran en la raíz de la partición.

BOOT.INI


  • En este punto se carga por medio de NTLDR el archivo BOOT.INI, el cual permite en sistemas con varios sistemas operativos seleccionar cual de ellos desea iniciar. Si el equipo no tiene varios sistemas operativos, se procede a la de detección de hardware que permite a la parte lógica reconocer la parte física en el equipo.

Detección de hardware

  • Este proceso se lleva acabo por medio del NTDETECT.COM (archivo que da la información necesaria al KERNEL de Windows para iniciar de manera apropiada), entre otros datos este sistema busca los perfiles de hardware que se han podido crear y brinda la posibilidad de selección de los mismos para cargar la configuración mas apropiada según el caso; en los sistemas portátiles, esto será muy importante debido a que permite habilitar o no dispositivos de consumo elevado como tarjetas de red o módems, que de estar permanentemente activos acabarían la pila de una manera muy rápida. Adicionalmente se hace la detección de los sistemas de ahorro de energía tipo ACPI incorporados en las torres ATX y en los equipos portátiles. El reconocimiento de hardware es uno de los puntos mas problemáticos sobre todo cuando se instalan nuevos dispositivos que no son de tipo PLUG AND PLAY ; la lista de sistemas que se reconocen es la siguiente:

      • Firmware del sistema
      • Tipos de Buses y adaptadores
      • Adaptadores de video.
      • Teclados
      • Dispositivos de entrada
      • Unidades de disco fijo (disco duro)
      • Unidades de disco removible (floppy)
      • Puertos paralelo y seriales
      • Dispositivos instalados en buses ISA

  • En el apartado de Firmware cabe anotar que se debe hacer hincapié en que el sistema ACPI juega un papel vital puesto que la carga de controladores varia según si el sistema es o no compatible con dicho sistema, dado que se debe cargar determinados controladores, así como reservar recursos para su manejo de manera apropiada. Debido a que el sistema Windows ha sido diseñado para poder ser ejecutado en una amplia variedad de sistemas, se debió diseñar una capa de abstracción de hardware, que le permitiera adaptarse a las distintas configuraciones de procesador y modos de funcionamiento.

Carga de KERNEL
  • La carga del Kernel de sistema operativo inicia por ejecutar el sistema de abstracción mencionado con anterioridad, a este se le denomina HAL ( o capa de abstracción de hardware por sus siglas en INGLES) y esta ubicado en el archivo HAL.DLL; según sea el sistema en el proceso de instalación se ha seleccionado entre un conjunto de archivos genéricos que al ser copiado se renombran como HAL.DLL.

Carga de dispositivos
  • En razón a que el proceso de carga desde este punto comprende la activación de un gran numero de dispositivos y a la cantidad de información de activación de cada dispositivo toda la información para dicho procesos se encuentra almacenada en un conjunto de entradas dentro del registro, bajo la llave HKEY_LOCAL_MACHINESYSTEM entrada a la cual se le hace una copia o clonación que permite ir validando y modificando el estado de cada dispositivo, para asegurar el correcto funcionamiento del sistema y de los dispositivos individuales. Cada entrada dentro de este conjunto informa al sistema operativo cuando se debe cargar el dispositivo y sus respectivos controladores.

Manejador de sesión
  • Una vez se han cargado los dispositivos, se inicia el manejador de sesión, el que es el encargado de pasar de modo texto a modo grafico, y otras funcionalidades así:
      • Creación de las variables de ambiente
      • Iniciar el modo del Kernel (ubicado en systemrootSystem32Win32k.sys) el que se encarga de cambiar de modo texto a modo grafico, para que las aplicaciones basadas en Windows puedan ser ejecutadas de aquí en adelante, es el encargado de permitir que las aplicaciones puedan desplegar en modo grafico la información y se puedan comunicar a su vez con el sistema operativo.
      • Inicia el modo de usuario que permitirá de aquí en adelante la interacción del usuario con el sistema todo ello implementado en systemrootSystem32Csrss.exe.
      • Inicia al manejador de inicio de session (winlogon) ubicado en systemrootSystem32Winlogon.exe.
      • Crea memoria virtual adicional para cargar mas información del sistema en operación.
      • Ejecuta acciones tardías para operaciones del registro, como la de reiniciar el sistema por cambios en el mismo, por ejemplo instalaciones de nuevos dispositivos encontrados u otros que requieran reiniciar el sistema después de su configuración.

  • El subsistemas Windows y el de modo de usuario nunca tiene accesos directo a la capa de hardware del sistema, esto evita dependencia de sistemas específicos, en caso de un sistema requerir mas memoria para su ejecución solicita la misma al modo Kernel mas y el se encarga de gestionar la creación de una mayor archivo de paginación.

  • El administrador de sesión se encarga adicionalmente de buscar en el registro varias llaves de configuración e inicio para procesarlas y terminar el arranque del sistema las llaves de procesamiento son las siguientes:
      • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager: (procesa las entradas previas al inicio de servicios, así como la herramienta de verificación de discos Autochk.exe que es el equivalente a Chkdsk de DOS. Para garantizar la integridad del disco y las particiones.)
      • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerSubsystems:(inicia los sub-sistemas de modo de usuario Csrss.exe.)
      • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesserviceman: (es la seccion encargada de iniciar los servicios de autocarga dentro del sistema.)

  • Hasta este punto no se ha hecho la carga del subsistema de seguridad dentro de equipo.

Sistemas de Seguridad
  • Cuando se inicia el procesos cada procesos tiene una entrada de control de acceso (ACL) que identifica los permisos que tiene el mismo en el sistema, pero depende de si el sistema es parte de un dominio o no, para lograr que el sistema tome las credenciales, se debe cargar un componente especifico que permita la carga de los descriptores de los archivos, este componente es el SRM o monitor de referencia de seguridad, el cual se inicia en el modo de KERNEL y se comunica con el modo de usuario a través de LSA.

  • ¿Pero que es LSA?
  • Es un sistema de seguridad local que permite buscar de manera local si el objeto tiene permisos apropiados, si el objeto tiene los permisos adecuados, se determina por medio de la comunicación de LSA con el registro en el caso local o si el sistema tiene permisos en el dominio se hará por medio de la comunicación con el directorio activo AD.
  • Desde este punto iniciara la carga de la interfase apropiada para el LOGON; la cual hará las validaciones necesarias a nivel de AD o usuario local según sea el caso.

WINLOGON
  • Desde aquí ya vemos interacción con el sistema, aparece la ventana de inicio de sesión interactiva, esta ventana hace posible que digitemos nuestro login y password.
  • El proceso desde aquí es relativamente simple, dado que ya todos los servicios deben estar en proceso de inicio o iniciados, lo que debe hacerse es hacer cambios finales al registro, para verificar cualquier cambio de dispositivos.
  • Se verifica las entradas clonadas del sistema de registro para validar cualquier cambio, y actualizarlo; y poder garantizar el correcto funcionamiento de la opción ultima configuración buena conocida (LastKnowGood configuration). La que se ve al iniciar el sistema oprimiendo F8 para resolver algún problema de inicio.
  • Se aplican las políticas de seguridad para maquina y usuario permitiendo restringir o garantizar el acceso a ciertos recursos. Estas son las denominadas políticas de grupo.
  • Por ultimo se ejecutan los programas que el usuario haya definido en un perfil como de inicio en la opción inicio o startup enlas entradas del reguistro estas corresponderan a:
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunonce
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun
      • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindowsRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
      • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce
      • systemdriveDocuments and SettingsAll UsersStart MenuProgramsStartup
      • systemdriveDocuments and SettingsusernameStart MenuProgramsStartup
      • windirProfilesAll UsersStart MenuProgramsStartup
      • windirProfilesusernameStart MenuProgramsStartup

El ultimo paso
  • Si se inserta un dispositivo USB o FIREWIRE (i-1394) el proceso de reconocimiento procede a verificar el bus de datos y ver si se tiene el controlador del bus para poderlo manejar de manera adecuada, si es así se procede a la verificación del FIRMWARE del dispositivo y instalar el DRIVER apropiado para el mismo, en el caso de USB 1.0 o 1.1 se debe reiniciar el sistema, si el dispositivo es compatible con USB 2.0 el sistema no deberá reiniciar.
  • Referencias http://www.microsoft.com/technet/default.asp