当前位置:嗨网首页>书籍在线阅读

10-第一个用户空间程序

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

6.2.1 第一个用户空间程序

在大多数的Linux系统中,/sbin/init这个程序是由内核在引导时执行的。这就是在代码清单6-2中内核首先尝试执行它的原因。实际上,它会成为第一个运行的用户空间程序。回顾一下,内核的执行次序如下:

(1) 挂载根文件系统;

(2) 执行第一个用户空间程序,在这里,就是指/sbin/init。

以代码清单6-1中的最小化文件系统为例,前3次尝试执行一个用户空间进程的努力都会失败,因为我们并没有在文件系统的相应位置提供一个名为init的可执行文件。回忆一下代码清单6-1的内容,文件系统的bin目录下有一个名为sh的软链接,它指向busybox。现在我们应该明白那个软链接的作用了:使busybox成为内核执行的第一个用户进程,同时也满足了用户空间对shell可执行程序[4]的普遍需求。

[4] 当busybox通过sh符号链接(symbolic link)启动时,它会生成一个shell。我们会在第11章详细介绍这方面的内容。