制作自定义内核

时间:2011-12-10 03:52:42

标签: assembly operating-system

我希望制作一个自定义内核,加载并执行代码(我的代码类似于lua),这样我就可以用它来创建一个操作系统,我已经在java中创建了一个基本内核,但我真的需要知道如何在大会上制作它。

任何人都可以给我一些在汇编中制作高效内核的步骤吗?

3 个答案:

答案 0 :(得分:2)

正如有人建议OS Dev是可以去的地方。我还要确保你知道如何让内核使用其他语言更具结构性和更常用的语言,这样你就可以获得更多的资源。让C / ++使用汇编并不像听起来那么难,尽管从头开始编写标准库是一个蠢事。因此,当你有它工作时,我可能不会写标准库,但我肯定先让它工作,然后为你自己的语言添加功能。

绝对可以查看龙书。对于编写自己的编译器的人来说,几乎需要阅读。这是编译器等的圣经。

至于在汇编/从头开始编写内核,请注意自己:

  • 我是否打算在汇编/第一次 - 内核/操作系统开发中包含那些在初学者级别附近没有的东西? (图形,复杂的菜单系统,游戏等)
  • 我计划实施的任何事情(如果不是全部的话)都有替代品吗?
  • 您并不总是需要单独执行此操作或从头开始编写代码。虽然当你喜欢从零开始做事或感觉你是某个东西的唯一创造者时,它常常会有这种感觉。

如果你提前考虑或者完全按照绝对(或该死的)没有野心的学习经验,你可能已经准备好进入代码了。我发布的网站链接将无限期地帮助。另外需要注意的是,有很多方言或汇编的实现,我最喜欢的是FASM和NASM。我绝对推荐NASM,因为它几乎可以在任何值得注意的系统下构建,并且具有迄今为止我遇到的最便携的代码。不要永远依靠装配便携!通常,即使有意,也不是。

编辑:请注意,这很多是纯粹的意见,我并不打算说明正确或错误的编码方式。我仍强烈建议不要依赖便携式装配。

答案 1 :(得分:1)

真的对你在Java中如何做到这一点感兴趣。对于操作系统开发的所有事情,website非常出色。

答案 2 :(得分:1)

如果你只想摆弄一下,look at this guide

您还可以查看this project的代码。

关于此事的一本畅销书是this one