Hacer su propio Sistema Operativo herramientas Necesarias: - emu8086 - ensamblador,
tutorial y el emulador - RawWrite para Windows
Normalmente, cuando se inicia un equipo intentará cargar 512 bytes del sector de la 1, de la cabeza 0, cilindro 0 de la unidad de disquetes A a 0000h:7C00h y darle el control. Si esto falla, una unidad de disco duro se utiliza. Este tutorial cubre el arranque desde la unidad de disquete, el mismo principio se se utiliza para arrancar desde el disco duro. El uso de la unidad de disquete tiene varias ventajas: - Usted puede mantener su actual equipo el software de sistema operativo (Windows, DOS...).
- Es fácil modificar el registro de arranque de una unidad de disquete.
Ejemplo de un simple programa de arranque: la directiva para crear el archivo de ARRANQUE: #MAKE_BOOT# registro de Arranque se carga en 0000:7C00, por lo que informar al compilador que se va a hacer necesario correcciones: ORG 7C00h cargar el mensaje de la dirección en el registro SI: LEA SI, msg el teletipo de la función id: MOV AH, 0Eh de impresión: MOV AL, [SI] CMP AL, 0 JZ hecho INT 10h de impresión utilizando el teletipo. INC SI JMP imprimir espere a que 'cualquier tecla': hecho: MOV AH, 0 INT 16h la tienda de magia valor en 0040h:0072h: 0000h - arranque en frío. 1234h - arranque en caliente. MOV AX, 0040h MOV DS, AX MOV w.[0072h], 0000h arranque en frío. JMP0FFFFh:0000h reiniciar! new_line EQU 13, 10 msg DB 'Hola Este es Mi Primer Programa de Arranque!' DB new_line, 'Presione cualquier tecla para reiniciar', 0 |
Copie el ejemplo anterior, para emu8086 editor de código fuente y pulse [Compilar y Emular]. Emulador carga automáticamente '.inicio' archivo para 0000h:7C00h. se puede ejecutar como un programa normal, o puede utilizar Unidad Virtual del menú Escribir 512 bytes en 7C00h a de Sector de Arranque de la unidad de disquete virtual (FLOPPY_0 archivo en el emulador de la carpeta). Después de escribir su programa a la unidad de disquete virtual, usted puede seleccionar Arrancar desde un Disquete de Unidad Virtual menú. Si usted es curioso, usted puede escribir el disco virtual (FLOPPY_0) o '.inicio' archivo de la real, disquete, y de arranque de su ordenador, lo recomiendo el uso de 'RawWrite para Windows' de: http://uranus.it.swin.edu.au/'jn/linux (tenga en cuenta que esto no es compatible con MS-DOS en el sector de arranque, por lo que es mejor para el uso y vacía de disquete, aunque debe ser IBM (MS-DOS) con formato). '.inicio' archivos está limitado a 512 bytes (tamaño de sector), así que si tu el Sistema de la Operación va a crecer a lo largo de este tamaño que usted debe utilizar el programa de arranque para cargar los datos de otros sectores. Un buen ejemplo de pequeño Sistema Operativo puede ser descargado aquí: micro-os_loader.asm micro-os_kernel.asm emu8086.inc Para crear extensiones para el Sistema Operativo (de más de 512 bytes), puede usar '.bin' archivos (seleccione 'BIN Plantilla' de 'Archivo' -> 'Nuevo' menú). escribir '.bin' archivo de disco virtual seleccione 'Escribir .bin archivo a un disquete...' desde 'Unidad Virtual' menú del emulador: también puede utilizar esta opción para escribir '.inicio' archivos.
cilindros: 0 sector: 1 la cabeza: 0 es un sector de arranque! |