【问题标题】:what is good about writing your own kernel编写自己的内核有什么好处
【发布时间】:2012-10-24 11:04:32
【问题描述】:

我对操作系统编程很感兴趣。我想用空纸写自己的内核。我精通C语言和一点汇编。我打算购买Andrew tanenbaum的书:“操作系统设计与实现” "并开始阅读。 每个人都告诉我这只是浪费时间,如果我放弃编写自己的内核的这种想法会很好。但我只是想知道一切在幕后是如何运作的,学习编写自己的内核只是为了教育目的,我没有任何幻想,我的操作系统会很大并且可用。

除了购买 AT OS Design and Implementation 之外,还有什么方法可以了解操作系统在幕后的工作原理?构建我自己的 linux 发行版就足够了吗?学习 linux 内核开发?或者学习 Windows 内部知识(Mark Russonovich 的优秀书籍)? 以了解一切是如何运作的。

先谢谢你。

【问题讨论】:

  • 除非您是一位将彻底改变操作系统设计的天才,否则如果您从头开发内核,而忽略以前的最佳实践,您可能学不到太多东西。如果我是你,我会阅读 Tanenbaum 的书,然后研究 Linux 或 Windows 的内部结构,以了解实际情况如何。
  • 您可以尝试阅读数千页关于如何实现内核的内容。不过,要写完这本该死的书,每一页都需要几个小时。
  • @Eduardo 在 Tanenbaum 的书之后,学习 linux 内部或 Windows 内部哪个好?你会选择哪一个?

标签: kernel


【解决方案1】:

我认为你最好的机会是研究当前的 Linux 内核。它已经建立并被广泛使用。它是免费的,为什么不呢?编写自己的内核将花费大量时间,并且您会偶然发现其他人已经发现的东西。尽管创建自己的内核将是一个非常有趣的项目,但不要重新发明轮子。 ;-)

【讨论】:

  • 学习当前的minix内核怎么样?作为一个初学者,我认为 linux 内核对我来说是如此巨大和困难。
  • @Higgs 我不太了解 minix,但 Linus 在创建 Linux 时研究了 minix,因此它也可能是一个好的开始。
  • 话虽如此,我个人很想拥有另一种生活,花时间学习内核真正所做的一切并编写自己的代码,即使它只是一个学习项目。我发现“重新发明轮子”非常令人满意,这样您就可以了解真正发生的事情,如果没有别的。
【解决方案2】:

当然,学习现有的开源内核(例如 Linux)是有帮助的,但如果没有一些背景知识(例如 Tanenbaum 书或本地/在线大学的操作系统课程),您可能会完全迷失方向。我建议您观看有关操作系统如何工作的讲座,在旁边阅读教科书,然后然后开始查看源代码。

当您开始从现有内核读取代码时,请尝试寻找一个爱好/学习的操作系统。大多数拥有良好操作系统课程的大学都有一个他们教的内核(有时他们已经删除了一些学生必须自己实现作为家庭作业练习的内核),或者你总是可以使用 Minix。如果您使用 Minix 来了解操作系统主题,那么使用 Minix2 等旧版本可能是个好主意 - 我读到新版本更“适合生产”/“初学者无法访问”。无论如何,请确保在代码之前阅读文档!

【讨论】:

  • 阅读“Linux 内核开发”(第 3 版)和“Linux 设备驱动程序”(第 3 版)。然后,开始深入研究代码。
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 2012-02-01
  • 2012-08-18
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
相关资源
最近更新 更多