Linux文件系统启动过程及login的实现.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux文件系统启动过程及login的实现

Linux文件系统启动过程及login的实现 busybox简介 busybox是一个集成了一百多个最常用linux命令和工具的软件它将许多常用的NUX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,busybox所提供的功能和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中,已经足够了。busybox在设计上就充分考虑了硬件资源受限的特殊工作环境。它采用一种很巧妙的办法减少自己的体积:所有的命令都通过“插件”的方式集中到一个可执行文件中,在实际应用过程中通过不同的符号链接来确定到底要执行哪个操作。例如最终生成的可执行文件为busybox,当为它建立一个符号链接ls的时候,就可以通过执行这个新命令实现列目录的功能。采用单一执行文件的方式最大限度地共享了程序代码,甚至连文件头、内存中的程序控制块等其他操作系统资源都共享了,对于资源比较紧张的系统来说,是最合适不过了。Busybox配置如下: Build Options--- [*] Build BusyBox as a static binary (no shared libs) Installation Options --- Login/Password Management Utilities --- Do you want to build BusyBox with a Cross Compiler。如果要对其他平台进行编译就要选择它并设置相应的编译程序前缀。Login/Password Management Utilities--- [*]Use internal password and group functions rather than system functions。设置使用busybox自己的password和shadow文件的功能需要一个交互的登录界面getty、login和passwdLinux的启动过程主要分成两个阶段:   1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。    2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统程序和其它指定在启动时装入的软件。运行initinit的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,在完成核内引导以后,就开始运行init程序。init程序需要读取配置文件/etc/inittab以查看下一步做什么。inittab是一个不可执行的文本文件,它有若干行指令所组成告诉 init 要进入什么运行级别,以及在哪里可以找到该运行级别的配置文件。# The default runlevel. id:4:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # /etc/init.d executes the S and K scripts upon change of runlevel. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l6:6:wait:/etc/init.d/rc 6 # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -h now # /sbin/getty invocations for the runlevels. # Example how to put a getty on a serial line (for a terminal) T0:134:respawn:/sbin/getty -L ttyS0 115200 vt100 T1:1:respawn:/sbin/getty -L ttyS1 115200 vt100 以上面的inittab文件为例,来说明一下inittab的格式。其中以#开始的行是注释行,除了注释行之外,每一行都有以下格式:id:runlevel:action:process id – 入口标识符,用于标识文件/etc/inittab中的每一个登记项。它是一个1-4位的字符串,对于getty或mingetty等其他login程序项,要求id与tty的编号相同,否则getty程序将不能正

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档