首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>基础入门>正文

Linux系统中/sbin/init程序的执行过程

http://www.oklinux.cn  2007-08-22  赛迪网 kit  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

当init启动后,它通过执行各种启动事务来继续引导进程(检查并监视文件系统,启动后台程序daemons,等等),直至完成用户所有操作环境的设置工作。这里主要涉及4个程序:init、getty(agetty)、login和shell程序。这4个程序之间的关系见下图所示。

 

init进程的主要任务是根据/etc/rc文件中设置的信息,执行其中设置的命令,然后根据/etc/inittab文件中的信息,为每一个允许登录的终端设备使用fork()创建一个子进程,并在每个新创建的子进程中运行agetty (getty)程序。而init进程则调用wait(),进入等待子进程结束状态。每当它的一个子进程结束退出,它就会根据wait()返回的pid号知道是哪个对应终端的子进程结束了,因此就会为相应终端设备再创建一个新的子进程,并在该子进程中重新执行agetty程序。这样,每个被允许的终端设备都始终有一个对应的进程为其等待处理。

在正常的操作下,init确定agetty正在工作着以允许用户登录,并且收取孤立进程。孤立进程是指那些其父辈进程已结束的进程;在Linux中所有的进程必须属于单棵进程树,所以孤立进程必须被收取。当系统关闭时,init负责杀死所有其它的进程,卸载所有的文件系统以及停止处理器的工作,以及任何它被配置成要做的工作。

 

getty程序的主要任务是设置终端类型、属性、速度和线路规程。它打开并初始化一个tty端口,显示提示信息,并等待用户键入用户名。该程序只能由超级用户执行。通常,若/etc/issue文本文件存在,则getty会首先显示其中的文本信息,然后显示登录提示信息(例如:plinux login: ),读取用户键入的登录名,并执行login程序。

为了能让init程序运行getty,/etc/inittab文件中必须含有getty(agetty)命令。/etc/inittab文件中有关agetty的内容例子见如下所示。

 

列表 3.1 poeigl-1.2中的inittab文件

# inittab for linux, poeigl 1.2

# format:

# ttyline:termcap-entry:getty-command

tty1:con80x60:/bin/agetty 9600 tty1

tty2:con80x60:/bin/agetty 9600 tty2

tty3:con80x60:/bin/agetty 9600 tty3

tty4:con80x60:/bin/agetty 9600 tty4

# tty5:con80x60:/bin/agetty 9600 tty5

# tty64:dumb:/bin/agetty 9600 tty64

# tty65:dumb:/bin/agetty -m -t60 2400 tty65

 

每个终端都有自己的getty命令。其中列出了tty1—tty4对应的登录项信息。以’#’开始的是注释行。第1列是所用终端设备名称,第2列是指定终端的类型,这里指定了终端类型是con80x60。第3列是所执行的命令及其参数。最后两行中的tty64和tty65对应连接在串行端口上的终端。

对于使用串行端口与主机直接相连的终端以及通过modem拨号连接的终端,Linux的agetty程序还有其它一些属性。如在读取登录名时自动调整tty的设置信息,例如奇偶校验位、檫除字符、行结束字符以及上档键字符等。可选择地从链接的Hayes兼容modem信息中检测出传输波特率。

/dev/inittab中每一项的参数格式与具体使用哪一种getty程序有关。目前一般常用的getty程序有如下几种:

 

1.agetty(有时直接称为getty):容易设置,无须配置文件。适用于直接连接的终端;

2.getty(getty_ps的一部分):适用于直接连接的终端;

3.mgetty:最适合于通过modem连接,也可用于直连;

4.uugetty:仅用于通过modem连接终端,是getty_ps软件包的部分;

5.mingetty:简单的getty。适用于控制台终端或虚拟终端;

6.fbgetty:适用于控制台或虚拟终端。

Redhat 9系统默认配置中带有mingetty和agetty两个程序。控制台或虚拟终端使用的是mingetty。对于实际的字符终端则一般使用agetty。因此在Redhat 9系统的/etc/inittab文件中会看到以下的信息。

 

列表 3.2 RedHat 9系统的/etc/inittab文件中有关getty的信息

共2页: 上一页 1 [2] 下一页

上一篇:解决重装Windows后不能引导Linux的问题   下一篇:Ubuntu下用多个Sources.list文件加速APT

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·介绍Linux系统下修改系统时间的方法
·回顾UNIX操作系统的二十年发展历史
·Linux和Solaris中如何查看硬件的资源信息
·Linux和Unix系统的关系和区别详细介绍
·两款小巧的Linux发行版:Slax与DSL
·Linux系统内存错误产生的原因及调试方法
·Linux系统发行版在制作过程中的各个步骤
·Redhat Package Manager(RPM的介绍和应用)
·在USB存储设备中打造自己的Linux发行版
·Linux操作系统的打印原理及其命令的使用
·Linux发行版知识:关于Debian的详细介绍
·Linux发行版知识:关于Ubuntu的详细介绍
·新手从零开始:Linux系统命令的使用
·Linux发行版知识:关于MEPIS的详细介绍
·Linux发行版知识:关于PCLinuxOS的介绍
·Linux发行版知识:关于Mandriva的详细介绍
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·企业为什么喜欢开源工作流软件(java)
·C++点滴:正确理解const相关的指针
·Linux文件系统现状
·新手进阶 对照DOS学Linux基本命令
·Ubuntu分区基础知识
·Ubuntu 8.10初次使用有感
·Ubuntu 8.10 ( Intrepid Ibex ) 软件源
·linux下的安装包介绍
·Windows系统用户转Linux新手常见问题整
·Linux系统下的多线程下载
·Linux系统的文件属性介绍
·关于Linux系统文件扩展名含义的介绍
  阅读排行
·Linux的GRUB引导程序配置方法大全
·从Grub命令行启动系统
·Linux 操作员基础教程
·iptable 基本配置方法
·firefox插件安装方法
·Linux通配符
·使用X-WIN32 EXCEED等软件显示远程LINU
·新手从零开始:Linux系统命令的使用
·Linux下tar bz gz等压缩包的压缩和解压
·Windows系统用户转Linux新手常见问题整
·新手进阶 对照DOS学Linux基本命令
·Linux简单加载新硬盘
·Unix Shell程序编写的方法详解
·『强烈推荐』Linux 下的大型/开源/网络
·Linux循序渐进:Vi的编辑操作及命令
网摘收藏: