dub*_*bex 15 linux source opensource-projects configuration
我听说我们可以通过更改其源代码来随心所欲地自定义 Linux(例如 Ubuntu),并且可以制作全新的操作系统。我已经从 www.kernel.org 网站下载了 linux 内核的源代码。但是看到它,我什么也看不懂,文件中的目录和文件太多了(因为我认为只有一个大程序)。我想把它作为一个大学项目来做,我也想通过对 Linux 进行必要的更改来为 Linux 做出贡献。但是在一些网站上问过这个问题后,他们说Linux源代码非常庞大。你可以试试minix。现在我很困惑。
请给我建议,详细说明我应该如何开始这个旅程(更改源代码以自定义 Linux),并提供必要的步骤,以及一些初级书籍。
Ale*_*ios 29
欢迎来到 unix.stackexchange.com!
有没有简单的回答你的问题,并远远更好的人比我有一般写在Linux内核的主题整个书籍和操作系统。
关于项目范围:写一个操作系统不是一件简单的事!即使是像 Minix 这样有目的地最小化的操作系统也是一件非常复杂的事情!为了让您对 Linux 有所了解,请想想您迄今为止编写的 C 程序。平均的大学课程往往最多只有几千行 C。我认为我最后一年的项目大约是 30-35,000 行 C++。Linux 内核大约有 13,000,000 行 C 代码。
为什么它们都在单独的文件中?出于后勤和实际原因,大型项目存储在单独的文件中。只需考虑将 13,000,000 行文件加载到编辑器中即可!在处理像 Linux 这样的大型项目之前,你绝对应该磨练你的 C 技能,直到“为什么多个文件”这个问题自己回答。您还应该能够阅读 C 代码,而不仅仅是编写它。(比起初看起来更难)
你绝对应该非常精通 C。内核由成千上万的人维护,你会被要求理解每个人的个人 C 习语(当然,在相当严格的内核编码标准中,但仍然 - 每个人都有他们自己解决问题的方式)。
掌握 C 语言后,请确保您了解操作系统。这将帮助您理解代码。并非所有的 Linux 都是必不可少的。内核本身非常小!它是什么膨胀:
您会立即发现的一个问题是,这些组件并不那么容易拔出、更改和重新插入。有许多相互关系。简而言之,改变内核的位是很棘手的。
人们向您推荐 Minix 的原因很简单:它是一个完整的操作系统,但它没有像 Linux 这样复杂的系统的需求所带来的负担。代码很小,但仍然提供了完整的功能。毕竟,Linux 的第一个版本受到 Minix 的启发。
当然,现在 Minix 的硬件支持较少。所以呢?这是一个福音!现代计算机虚拟化得非常好。充分利用这一点:运行 Minix 的 VM 非常轻巧,它会让开发变得一团糟。
如果你的项目是构建一个操作系统,你可能比从研究 Minix 开始做的更糟。您可能还想购买和阅读 Minix 随附的书“ Andrew Tanenbaum 的现代操作系统”。
您还应该设定您的目标并精确定义您的条款。如果您自己对操作系统的定义是 Microsoft 的(具有 GUI 和完整软件套件的操作系统),那么您可能会参与一个很长的项目!毕竟,自 1960 年代以来,成千上万的人一直在努力将我们带到现在的位置。
最后,记住计算机科学家的战斗口号:'永远不要重新发明轮子!'(当然,我们喜欢在学习时破例。为了好玩:))
归档时间: |
|
查看次数: |
44543 次 |
最近记录: |