学习Linux 0.01源码中的指针

学习Linux 0.01源码中的指针

我正在尝试学习一些真正的 C 语言编程和 Linux 的概念。所以我想我会尝试查看 Linux 内核 0.01 版本源代码。

以我的理解,我可以找到很多东西的scratch级别的实现,但是评论很少。例如 :

void rs_init(void)
{
    set_intr_gate(0x24,rs1_interrupt);
    set_intr_gate(0x23,rs2_interrupt);
    init(tty_table[1].read_q.data);
    init(tty_table[2].read_q.data);
    outb(inb_p(0x21)&0xE7,0x21);
}

似乎没有关于寄存器或函数的注释。
我知道实现会提供一些想法,但我想知道,是否应该保留一些参考,以便这些值和名称能给我更好的含义和理解。

请提供一些指点。

答案1

虽然 Minix 被建议作为一个值得研究的操作系统,但另一个是 Unix 第六版(通过狮子会的评论

按照今天的标准,第六版 Unix 相当小,而 Lions 对其的评论被认为是学习 Unix 操作系统的最佳笔记之一。在很长一段时间内,它仅作为多代影印本提供,但值得庆幸的是,它已经重印,并且应该可以从您最喜欢的在线图书卖家那里获得。

答案2

根据要求,根据评论重写:

我不认为 Linux 0.01 会成为 C 编程概念的特别好的来源:-)

试试 Minix。 Minix 用于教授操作系统设计,因此它是学习此类内容的更好来源。

http://www.minix3.org

http://wiki.minix3.org/en/DevelopersGuide

答案3

学习编程语言的最好方法是解决一个问题,而不是试图阅读其他人如何解决你没有的问题。

找到一个令您兴奋的开源 Linux 项目,首先查看一些未解决的错误,看看是否可以修复它们。当然,这是一个挑战,但如果您遇到特定问题,那么您可以学习该语言并应用您所学到的知识来解决问题。这比尝试从以前的代码中学习要容易得多。

有时错误需要对这些东西有很好的理解,所以也许找到一个开源项目,它在愿望清单上有一些功能,并努力集成其中之一。

开源团队总是在寻找带有修复或改进的 bug 报告。这将有助于您学习,并能为开源社区带来回报。

相关内容