我正在寻找 Linux 上使用/可用的常见系统命令的源代码,例如、、、、、等cal
。我想使用源代码来了解有关 Linux 系统管理的更多信息su
。sudo
ls
dir
pwd
这类系统二进制文件的源代码位于何处(位于 Linux 内核之外,但与 GNU/Linux 的大多数变体一起分发的代码)?
哪个 Linux 发行版最适合学习和查看这些命令的源代码?
是否可以改变代码来了解它们的实际工作原理?
答案1
值得注意的是,“Linux”仅指内核。基本命令来自GNU 核心实用程序包,以及许多其他类似的包。
不过,当我寻找这样的东西时,我通常会去FreeBSD SVN 存储库,我发现它比多个 GNU 软件包更容易导航。例如,ls
可以在这里找到 的源代码:
答案2
如果你正在寻找一个全源 Linux 发行版,你应该考虑安装Gentoo。
否则,你可以采取更“手动”的方式,尝试用Linux 从头开始,这似乎就是你要找的。这是从头开始构建可用 Linux 系统的分步指南。它详细解释了每个软件包是什么以及如何构建它们。这有点令人生畏,你绝对应该遵循它从头开始超越 Linux,旨在功能Linux 系统。
如果你只想看看那些常见的应用程序,你可以下载核心工具包裹。
答案3
通常,您只需谷歌搜索相应实用程序的来源即可。在基于 Debian 的发行版中,您可以使用apt-get
下载(Debian 化的)来源:例如,apt-get source sudo
将下载并解压 sudo 的来源。要找出实用程序包所属的包,您可以使用dpkg -S /usr/bin/sudo
或,如果可以使用,则可以使用apt-file
在未安装的包中搜索文件。
答案4
您可以通过安装源包或从包网站下载源来获取包的源代码。您感兴趣的包称为coreutils
。如何安装源包将取决于您使用的 Linux 发行版。但如果您想从包网站下载源,您可以访问coreutils 下载 ftp 站点。
每个发行版可能都更改了基本软件包以改进选项或更改默认值。但基本代码或多或少与您在 GNU 网站上找到的代码相同。