como crear un sistema operativo

Hola amigos:

navegando por ahi me encontré un buen post de un usuario llamado matriox 52 y me pareció bien mostrarles el tuto de como crear un sistema operativo.

Comencemos:

Este artículo es un tutorial práctico para la construcción de un pequeño sector de arranque. La primera sección contiene la teoría de lo que ocurre en el momento que se enciende el ordenador. También explica nuestro plan. La segunda sección le dice todas las cosas que usted debe tener a mano antes de seguir adelante, y la tercera sección se ocupa de los programas. (Estas dos secciones comentadas, la segunda y tercera se publicarán en otro post) Nuestro programa de inicio, en realidad, no va a arrancar Linux, pero mostrará algo en la pantalla.

0. Resumen:

El microprocesador controla el equipo. Al iniciar la computadora, el microprocesador trabaja como un 8086. A pesar de que usted pueda tener un nuevo, de marca Pentium, sólo tendrá la capacidad de un 8086. Desde este punto, podemos utilizar algún software del procesador y cambiar al modo protegido infame. Sólo entonces podremos utilizar la potencia máxima del procesador.

0.1 Nuestro objetivo

Inicialmente, el control está en manos de la BIOS. Esto no es sino una colección de programas que se almacenan en la memoria ROM. BIOS realiza el POST (Power On Self Test). Esto comprueba la integridad de la computadora (si los periféricos funcionan correctamente, si el teclado está conectado, etc.) Esto es cuando usted oye los sonidos de la computadora (si es nueva la computadora, hará menos ruido, aún así lo hace). Si todo está bien, la BIOS selecciona un dispositivo de arranque. Se copia el primer sector (sector de arranque) del dispositivo, para hacer frente a la ubicación 0x7C00. El control se transfiere a esta ubicación. El dispositivo de arranque puede ser un disquete, CD-ROM, disco duro u otro dispositivo de su elección. Aquí tomaremos un disquete como el dispositivo de arranque. Si hubiéramos escrito algo de código en el sector de arranque del disquete, nuestro código sería ejecutado ahora. Nuestro papel es claro: sólo escribiremos algunos programas para el sector de arranque del disquete.

0.2 El Plan

Primero escribe un pequeño programa en 8086 de montaje (no se asusten, yo le enseñaré cómo escribirlo), y copiarlo en el sector de arranque del disquete. Para copiarlo, vamos a utilizar un código de un programa de C. Inicie el equipo con ese disquete, y luego, a disfrutar. Lo probaremos en una máquina virtual, ya que algunas computadoras o portátiles no tienen disquetera. Si tiene disquetera y un disquet, lo puede probar en su computadora.

0.3 Cosas que usted debe tener

as86

Este es un ensamblador (compilador). El código de ensamblador se escribe, después se convierte en un archivo/objeto con esta herramienta/aplicación.
ld86

Este es el vinculador. El código objeto generado por AS86 se convierte en verdadero código de lenguaje de máquina gracias esta herramienta. El lenguaje de máquina será la forma que entiende 8086.

gcc

El compilador de C. De momento tenemos que escribir un programa en C para transferir nuestro sistema operativo en el disquete.

Linux: cualquier distribución Linux. Para instalar estos paquetes debe de saber instalar paquetes desde los repositorios oficiales de su distribución. Normalmente estos paquetes ya están incluidos en la distribución.

Otros: un disquete formateado (utilizaremos una imagen .img para usarlo en la máquina virtual)

Un disquete se utiliza para almacenar el sistema operativo (sus archivos). Esto también es nuestro dispositivo de arranque.

Máquina virtual o computadora con disquetera.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s