茱莉亚•埃文斯

37天:5天之后,我按下一个键时的操作系统不会崩溃

现在我努力能够:

  1. 按下键盘上的键
  2. 操作系统没有崩溃
  3. 关键我压了回来

我只取得了第二步,这是一种传奇,这是anexplanation涉及的鲜血与眼泪。首先,有些resourcesthat真的帮助我:

这是我是如何做到的。有很多陷阱。特别是absentare小时我锈花的IRC频道abouttypes混淆。

如何让中断工作,茱莉亚的方式

  1. 创建一个全局描述符表(GDT)和负载()
  2. 从实模式切换到保护模式这涉及关闭中断(cli)。
  3. 创建一个中断描述符表(IDT)和加载它。
  4. 把中断处理程序在我的桌子上。
  5. 按下键。什么也不会发生。小时过去。实现中断areturned,我需要把它们。
  6. 打开中断(sti)。
  7. 按下一个键。操作系统崩溃。继续在thisvein试验一段时间。仍然崩溃。
  8. 花的建议”我不能中断工作””并触发中断手动(与int 1)处中断了和真实。让我interruptdescriptor表不坏了。甜的。
  9. 打开中断(sti)。
  10. 操作系统崩溃我每次按下一个键。读作“我心爱的中断工作”一次。这就是所谓的“我收到EXC9instead IRQ1当引人注目的钥匙吗?!”在此之上的感觉。
  11. 重新映射的图片所以中断映射到我+ 32,因为英特尔的设计缺陷。这基本上看起来像只输入一串随机数字,但它的工作原理。
  12. 操作系统崩溃,当我按下一个键。这个持续2天。
  13. 记住,现在我已经重新映射中断1打断33我需要更新我的踊跃参与。
  14. 更新我的踊跃参与。
  15. 按下一个键。我的中断处理程序运行。高兴地几乎晕倒。
  16. 但这只是我第一次按下一个键,不是secondtime。这是一节”我只能接受一个IRQ””

据我所知这是完全正常的,只是OSprogramming。什么的。希望在本周结束前我就会过去”我只能接受一个IRQ”,进入“我打断handleris炸弹和我现在完全可以写一个键盘驱动程序”。

然后我要写一个键盘驱动程序,除了doingnormal键盘驱动程序,它改变了屏幕颜色每一个当按下一个键。(凯特的想法)

操作系统存在的认真让我吃惊,你去看朋友根本不用跋涉好几英里,免费的。

编辑:谢谢你所有的帮助每一个人!我已经解决了”它只runsthe我第一次按下一个键”现在转移到新的问题:)