【问题标题】:Writing hard disk and keyboard driver编写硬盘和键盘驱动程序
【发布时间】:2014-02-26 00:25:43
【问题描述】:

我是操作系统的新手,我的目标是编写自己的内核。 我知道我也必须编写自己的设备驱动程序。 如何开始编写驱动程序? 项目任务如下。

1.用汇编语言定义GDT

2.创建引导扇区

3.中断处理

4.屏幕驱动

5.键盘驱动

6.硬盘驱动

7.文件系统

8.I/O编程

9.物理内存管理

也有可能在 3 个月内完成(2 人团队)

【问题讨论】:

    标签: linux operating-system driver


    【解决方案1】:

    如您所知(或即将发现),操作系统极其复杂且相互关联。例如,在您实现中断处理之前如何让键盘驱动程序正常工作?

    听起来您的问题实际上是:“我如何开始编写自己的操作系统?”您首先阅读osdev 上的“必修知识”、“初学者错误”和“入门”。

    祝你好运,这将需要很长时间......尤其是如果你边学习边学习(这没关系,因为你的目标是学习而不是制作商业操作系统)。

    编辑:修改 Linux 内核是了解操作系统内部结构的好方法。它将让您专注于各个方面(例如仅编写键盘驱动程序),并且您的工作环境将是理智的。根据您想要做什么,您将能够通过创建内核模块而不是直接修改内核来进一步简化开发。

    1. 定义您的项目及其范围
    2. 设置你的工作环境(我的建议,运行Ubuntu Server in QEMU
    3. 了解如何引导自定义内核或使用模块系统
    4. 开始工作!

    【讨论】:

    • 谢谢。我已经将操作系统作为一个基于项目的课程。大约3个月。学习当然是重中之重,但我仍然要提交一个项目。(欢迎提出建议)
    • 在这种情况下,您可能希望以某种方式修改 Linux 内核。这会让您对操作系统感到厌烦,但让您在保持理智的同时专注于一个方面。
    • 在同一行上查看 minix,它有大量的待办事项,您可以学习并为开源做出重要贡献。 :)
    • 这本书操作系统设计和实现涵盖了minix的设计和代码,你可以在网上免费找到PDF并且代码可以下载,它涵盖了基础知识和另一本名为Unix的超级用户书籍介绍了如何简要地编写设备驱动程序,这样也会有所帮助。
    【解决方案2】:

    您可以尝试为 minix 做出贡献 (http://www.minix3.org/)

    有很多事情需要做。看看 (http://wiki.minix3.org/Wishlist)。

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 2020-01-24
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多