为Motorola 68K处理器编写操作系统.我可以效仿它吗?我可以试驾OS开发吗?

ulv*_*ver 10 c tdd operating-system 68000 motorola

下一学期,我需要为Motorola 68K处理器编写基本操作系统,作为课程实验材料的一部分.

是否有使用该处理器的基本硬件设置的Linux仿真器?所以我的合作伙伴和我可以在我们的计算机上更快地调试,而不是在物理上重新启动电路板和东西.

是否有可能将测试驱动的开发技术应用于OS开发?代码主要是汇编和C.尝试试驾这个主要困难是什么?关于如何做的任何建议?

Pro*_*ica 10

我建议为经典的Amiga计算机开发一个操作系统,它有68000处理器的不同版本.由于Amiga计算机是一台完整的计算机并且记录非常好,我认为这是一个很好的练习.

它有一个名为UAE(和Win-UAE)的仿真器,非常精确,可以配置不同类型的处理器(68000 - 68060)和其他功能.通常,您还需要获取ROM,但由于您自己开发操作系统,因此没有必要.

您需要的工具是Cygwin(用于在Windows下开发)或Linux计算机.那么你将需要交叉编译器.这包括C编译器和汇编器.这是一个用于创建简单ROM 的模板,该ROM可以更改屏幕颜色并轻弹电源LED.它将创建一个文件'kick.rom',然后UAE在当前目录中搜索.

可以在以下链接中找到68000指令集的参考.请注意,不同的汇编程序可能会使用略有不同的语法和指令集.

如果您需要在真实硬件上演示操作系统,可以在Ebay和其他地方销售现代Amiga克隆.搜索"Minimig".

更新:如今AROS还在阿联酋和物理Amigas上运行.

参考文献:

[阿联酋]
[WinUAE]
[Cygwin]
[交叉编译器]
[68000参考]


caf*_*caf 6

我建议QEMU进行m68k仿真.

(您在QEMU中想要的系统仿真器是"Coldfire" - 这就是飞思卡尔称之为m68k架构的继承者).


Dav*_*kes 5

你当然可以编写这个项目.首先,通过简单的例程调用(例如getch()和printf)将所有对硬件的访问解耦,然后您可以提供提供测试输入和检查输出的简单模拟.然后,您可以使用gcc,msdev或xcode在PC上编写超过90%的项目.一旦你对解耦例程有了一些信心,你将需要很少的硬件访问权限,然后偶尔检查你的模拟是否按预期运行.

保持在C,直到找到一个特定的瓶颈,然后才使用汇编器.

  • 作为O/S级函数调用,`getch`和`printf`也没有任何意义.除非你重写MS-DOS ... (3认同)
  • 我不同意最后一句话。如果您正在编写操作系统,则有很多您无法在C中完成的事情。将asm降至最低限度是一件好事,并且从C代码中以内联汇编的形式来完成大多数需要的asm是一件好事。但是您仍然可能需要一些只不过是汇编的文件。让我们看一下Linux上的entry.S-这种东西对于内联汇编没有意义,它必须独立存在。 (2认同)