Chinaunix首页 | 论坛 | 博客
  • 博客访问: 521865
  • 博文数量: 68
  • 博客积分: 2501
  • 博客等级: 大尉
  • 技术积分: 713
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-07 17:49
个人简介

文章分类

全部博文(68)

分类: LINUX

2010-04-21 20:44:00

/proc文件系统和init程序

Linux内核提供了一种/proc文件系统,可以在系统运行时通过它来访问内核内部数据结构,改变内核的值,用来向进程发送信息。/proc以文件系统的方式为访问内核数据的操作提供接口,如ps,top命令就是通过读取/proc下的文件来获取它们所需的信息的。

/proc是一个伪文件系统,只存在于内存中,由内核控制,没有加载/proc的设备,因而不占用外层空间。其下有三个重要的目录:sys,net,scsi。sys目录可写,可通过它来访问或修改内核参数,net和scsi则依赖于内核的配置,若不支持scsi则scsi目录就不存在。另外还有一些以数字命名的目录,它们为进程目录。

如果没有加载/proc文件系统,可用下面的命令来加载:

mount -t proc proc /proc
例如在用busybox制作文件系统的启动文件时,在/etc/init.d/下的rcS启动文件就用到了这条命令:

#!/bin/sh
echo e ‘Starting system’
hostname myhost
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.0.50
mount -t o remount,rw
mount -t proc proc /proc
… …

此文件将在/etc/下的inittab文件中调用到,而inittab是init程序读取的配置文件,init是内核启动运行的第一个程序,所有的应用程序都是它的子进程,它在系统运行期间一直驻留在内核中,直到系统关闭。Busybox的init程序在启动时会读取inittab文件内容,并执行相应的命令。inittab相应的有:

::sysinit:/etc/init.d/rcS
tty0::respawn:/sbin/getty 38400 tty0
tty2::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount ar
::shutdown:/bin/mount / o remount,ro
… …

系统运行不可或缺的init程序哪来呢?将Busybox编译好的目录_install目录下的所有内容考备到自己的目录中myfs,在myfs下执行ls –s bin/busybox /sbin/init,这样系统运行不可或缺的init程序就有了。

阅读(1573) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~