详细学习linux架构的资源?

详细学习linux架构的资源?

我想了解 Linux 文件层次结构以及操作系统如何在更深层次上工作。有没有电子书或网页可以学习?

答案1

Linux 文件/目录层次结构由文件层次结构标准或 FHS。

操作系统如何在“更深”的层面上工作是一个更加复杂的话题。一般来说,表面层是用户命令...主要是 /bin 和 /usr/bin 目录中的命令,这些命令在手册页的第 1 章部分中介绍。下一层是标准库函数和接口(在编程方面),它们在大多数 UNIX 系统(包括 Linux)上的第 3 章中进行了介绍。系统级实用程序位于 /sbin 和 /usr/sbin 中,并由 man 第 8 章介绍,配置文件存储在 /etc 中,由第 5 章手册页介绍。

下一个较低的细节级别是系统调用接口。第二节/第二章的手册页对此进行了介绍。系统调用是内核中的函数……具体如何调用它们的详细信息大部分由 C 编程库(libc --- 在必须的 Linux 系统上以 glibc 的形式提供 --- GNU lib for C)。

内核本身是用 C 语言编写的,但是,如果您考虑“先有鸡还是先有蛋”的问题,您可能会想到,它与 libc 没有链接。所以内核提供了C库所依赖的函数。用户空间程序,例如“ls”命令、shell、任何编辑器,以及实际上用于将源代码转换为运行程序的编译器和链接器,都链接到这些 C 库。 (C 库用自己的实现“包装”系统调用也是正常的,这些实现与系统调用具有相同的名称,但提供一定程度的可移植性,可能会添加一些用于调试、跟踪或错误处理的钩子)。

当然,最深层次的细节是内核源代码本身。这些文件准确地记录了内核实现的内容。例如,如果您想精确查看内核尝试查找并作为“init”进程执行的位置和文件名列表,您可以在 init/main.c 中看到它

几年前,我短暂而随意地参与了组织一系列内核源代码学习课程的活动,其中包括一些导游和讲座,并创建了一个在线学习指南来理解它们。部分内容记录在以下页面上:维基学院:阅读 Linux 内核源代码。还有一些有用的讨论可以让好奇和自我激励的读者开始阅读。 (但是,您仍然需要能够阅读 C 源代码,也许还需要了解一些内联汇编才能真正研究它)。

真正的问题就像播音员通常会对那些陷入困境的人吟诵的那样……“你怎么能咕咕咕?”

答案2

相关内容