2009-10-12 19 views
10

El próximo trimestre, tendré que escribir un sistema operativo básico para el procesador Motorola 68K como parte de un material de laboratorio del curso.Escribir un SO para el procesador Motorola 68K. ¿Puedo emularlo? ¿Y puedo probar el desarrollo del sistema operativo?

¿Hay algún emulador de Linux de una configuración básica de hardware con ese procesador? Así que mis socios y yo podemos depurar más rápido en nuestras computadoras en lugar de reiniciar físicamente la placa y esas cosas.

¿Es posible aplicar la técnica de desarrollo basada en pruebas para el desarrollo del sistema operativo? El código será principalmente ensamblado y C. ¿Cuáles serán las principales dificultades para tratar de probar esto? ¿Algún consejo sobre cómo hacerlo?

Respuesta

5

Sin duda, puede instalar este proyecto. En primer lugar, desacoplar todos los accesos al hardware con simples llamadas de rutina, p. getch() y printf, entonces puede proporcionar simulaciones simples que proporcionan entrada de prueba y verificación de salida. Luego puede escribir más del 90% del proyecto en una PC usando gcc, msdev o xcode. Una vez que tenga confianza en las rutinas de desacoplamiento, necesitará muy poco acceso al hardware, y solo entonces comprobará ocasionalmente que sus simulacros están actuando de la forma esperada.

Mantenga en C hasta que encuentre un cuello de botella en particular, y solo entonces recurra al ensamblador.

+1

No estoy de acuerdo con la última oración. Si está escribiendo un SO, hay muchas cosas necesarias que no puede hacer en C. Mantener el asm al mínimo es bueno, y es bueno hacer la mayoría del asm necesario como ensamblado en línea desde el código C. Pero aún necesitarás algunos archivos que no son más que ensamblaje. Eche un vistazo a entry.S en Linux, por ejemplo, ese tipo de cosas no tiene sentido como asm en línea, tiene que ser independiente. – asveikau

+2

ni 'getch' y' printf' tienen sentido en absoluto como función de nivel O/S. A menos que esté reescribiendo MS-DOS ... – Alnitak

6

Sugeriría QEMU para la emulación de m68k.

(El emulador de sistema que desea en QEMU es "Coldfire" - eso es lo que Freescale llama el sucesor de la arquitectura m68k).

+0

Al mirar el sitio QMEU, no veo soporte para M68K; para PowerPC (un descendiente de M68K), sugiere PearPC, que no parece estar activo (la última actualización parece ser septiembre de 2005). –

+0

Dicho esto, encontré un sitio externo sobre pruebas M68K que menciona QEMU: http://gwenole.beauchesne.info/en/blog/2007/07/08/m68k_emulator_testsuite –

+0

Jonathan: Se llama "Coldfire", que es el sucesor de m68k, ver aquí: http://www.qemu.org/qemu-doc.html#SEC66 – caf

9

Recomendaría desarrollar un sistema operativo para las clásicas computadoras Amiga, que tenían diferentes versiones del procesador 68000. Como la computadora Amiga es una computadora completa y está extremadamente bien documentada, pensé que sería un buen ejercicio.

Hay un emulador llamado UAE (y Win-UAE) que es muy exacto y se puede configurar con diferentes tipos de procesadores (68000 - 68060) y otras capacidades. Normalmente, también necesitaría adquirir ROM para ello, pero como usted mismo está desarrollando un sistema operativo, esto no es necesario.

Las herramientas que necesitará son Cygwin (para desarrollar bajo Windows) o una computadora con Linux. Entonces necesitarás compiladores cruzados. Esto incluye tanto un compilador de C como un ensamblador. Here is a template para crear una ROM simple que cambia el color de la pantalla y mueve el LED de encendido. Creará un archivo 'kick.rom' que UAE buscará en el directorio actual.

La referencia en el conjunto de instrucciones 68000 se puede encontrar en los enlaces a continuación. Tenga en cuenta que los diferentes programas de ensamblador pueden usar sintaxis y conjuntos de instrucciones ligeramente diferentes.

Si necesita probar el sistema operativo en hardware real, existen clones modernos de Amiga vendidos en Ebay y en otros lugares. Busque "Minimig".

Actualización: Hoy en día AROS también se ejecuta en Emiratos Árabes Unidos, así como amigas físicas.

Refs:

[UAE]
[WinUAE]
[Cygwin]
[Cross Compilers]
[68000 reference]

+0

¿Qué hipervínculo contiene las plantillas ROM para cambiar el color de la pantalla del LED de encendido parpadeante? – mwcz

+1

Se agregó el enlace "Aquí hay una plantilla" a http://vmlinux.org/jakov/jumpstart/ @mwcz –

Cuestiones relacionadas