系统编程:如何收集信息?

系统编程:如何收集信息?

根据这个问题,学习系统编程的一个好方法是实现现有的工具。我决定尝试重写lsps

我的问题是如何继续获取此类文档?

  • 在哪里可以找到查询内核、文件系统等所需的系统调用 API...

  • 我想也许我可以看一下 GNU 工具的源代码。我在哪里可以找到它?

  • 你们是否有任何(希望可以在线免费获得)好的文档推荐来指导从哪里开始?

答案1

您可以使用glibc手册作为参考。它不适合绝对的初学者,但如果您相当流利地使用 C,您应该能够阅读其中的一部分并编写一个工作程序。

您可以在以下位置找到 GNU 工具的源代码:GNU 网站;获取它的最简单方法是获取 Linux 发行版上的源代码包(例如,apt-get source coreutils如果您的发行版使用 Debian 打包实用程序)。我建议从忙碌盒而不是 GNU 工具。 BusyBox 是一组用于嵌入式 Linux 系统的实用程序;它比 GNU 实用程序更小、更简单。

您可以运行strace ls以查看ls正在进行哪些系统调用。请注意,当您编写程序时,您不会直接调用系统调用,而是调用C库中进行系统调用的函数。对于文件操作之类的事情,C 库函数openread系统调用非常接近。

对于学习来说,一本书(纸质)通常会有帮助。UNIX® 环境中的高级编程APUE)是经典。如果您获得了它,请确保获得第二版,因为第一版已经过时了。本书是参考书,但其他书籍可能更适合初学者;货比三家。

答案2

操作系统、命令 aspsfreetop从读取信息来实现的过程文件系统。

   The proc file system is a pseudo-file system which is used as an inter-
   face to kernel data structures.  It is commonly mounted at /proc.  Most
   of  it  is  read-only,  but  some  files  allow  kernel variables to be
   changed.

首先man 5 proc,不要忘记所有这些实用程序都是开源的,因此您也可以查看它们代码

相关内容