[C con Clase] Iniciar un Ordenador

Joaquin Fernandez joaquinfq en gmail.com
Mie Nov 22 17:46:03 CET 2006


> Yo necesito crear un programa parecido al command.com del dos. Pero que
> me permita iniciar un ordenador y ver o examinar los discos duros aún
> cuando el sistema de archivos sea NTFS ¿Me hago entender? Si alguien ha

Para empezar el command.com no inicia el ordenador, es sólo un intérprete de comandos (como puede
ser el bash en linux), que funciona cuando MSDOS.SYS e IO.SYS ya han hecho su trabajo, es decir,
sólo no sirve para nada.

El IO.SYS son un conjunto de instrucciones para la transferencia de entrada/salida desde periféricos
a memoria. Prepara el sistema en el arranque y contiene drivers de dispositivo residentes.

El MSDOS.SYS es el kernel de MS-DOS, en que figuran instrucciones para control de los disquetes,
gestiona los archivos, directorios, memoria y entornos, etc.

Necesitas entender demasiadas cosas para hacer eso. Primero debes aprender cómo es el funcionamiento
del PC desde que el motherboard recibe la señal PowerOn hasta que el BIOS lee el cargador del
sistema operativo. Luego debes aprender cómo funciona un cargador del sistema (bootloader) y cómo le
pasa el control al kernel o núcleo del sistema operativo, también debes entender qué hace el kernel
y cómo funciona y por último, debes aprender como es la estructura del sistema de archivos NTFS.

Puedes empezar buscando la información acerca de NTFS y haciendo un programa para cónsola que te lea
el sistema de archivos cuando inicia desde un disco de MS-DOS.

Si te sirve mi opinión, me parece perder un poco de tiempo en hacer algo que ya está hecho, salvo
por querer aprender mucho. Ya lo que quieres hacer está hecho, puedes leer la documentación del
proyecto Captive para linux que es el driver para lectura/escritura de NTFS bajo Linux. O puedes
leer el código fuente del kernel de linux, en el módulo para solo lectura de NTFS que queda en el
directorio "src/linux/fs/ntfs/" que son alrededor de 30.000 líneas de código incluyendo los comentarios.

Como bootloader puedes usar algo ya hecho, grub o lilo, y luego ver como grub le pasa el control a
init y luego init al kernel.


Saludos


Joaquín

P.D.: A ver si ahora sí llegan mis mensajes :D




Más información sobre la lista de distribución Cconclase