1.6 从哪里获得信息
man查看手册:
1 用户级命令和应用程序
2 系统调用和内核出错代码
3 库调用
4 设备驱动程序和网络协议
5 标准文件格式
6 游戏和演示
7 各种文件和文档
8 系统管理命令
9 少见隐秘的内核规范和接口
2.1 引导
1.计算机执行存储在ROM中的引导代码,这些代码接下来尝试确定如何加载并启动内核,内核检测系统的硬件,然后产生系统的init进程。
2.系统必须检查并安装文件系统,而且系统的守护进程必须启动起来,这些步骤由init进程按顺序运行的一系列shell脚本来管理的。rc文件
2.1.2 引导过程的步骤
加载并初始化内核
检测和配置设备
创建内核线程
操作员干预
执行系统启动脚本
多用户模式运行
2.1.3 初始化内核
1.系统引导过程中的第一项任务是把这个程序载入内存,以便执行它,内核的路径名通常是/vmlinuz或者/boot/vmlinuz
2.内核执行内存检测来确定有多少RAM可用,内核的一些内部数据结构按静态方式分配其内存量,当内核启动时,它就为自己划分一块固定大小的实存空间。这块空间保留给内核使用,用户级进程不能使用
2.3.1 GRUB:全面统一的引导加载程序
#grub-install '(hd0,0)'
2.5 启动脚本
设置计算机的名称
设置时区
采用fsck检查磁盘
安装系统的磁盘
从/tmp目录删除旧文件
配置网络接口
启动守护进程和网络服务
2.5.1 init和运行级
1.0级时完全关闭系统的级别
1级或S级代表单用户模式
2~5级是多用户级别
6级时“重新引导”的级别
2./etc/inittab文件告诉init在它的每个运行级上要做什么事情
3.在机器引导时,init从运行级0开始,一级一级往上运行到在/etc/inittab中设置的默认运行级别
4.inittab文件的语义有点不那么完善,为了把inittab文件的功能映射成为某种更为灵活的形式,linux系统实现了另一层抽象,它通常采
用“改变运行级”脚本的形式(通常为/etc/init.d/rc),由inittab来调用
5.启动脚本的主拷贝位于/etc/init.d这个目录下。每个脚本负责一个守护进程或者系统的某个特定方面
6.要告诉系统什么时候启动一个守护进程,我们必须在适当的目录下创建符号链接
#ln -s /etc/init.d/cups /etc/rc2.d/S80cups
#ln -s /etc/init.d/cups /etc/rc0.d/K80cups
2.7 习题
E2.5 启动脚本
第5章 文件系统
5.2 安装和卸载文件系统
1.使用mount命令把文件系统附加到文件树上。mount把现有文件树中的一个目录映射为新加入的文件系统的根,这个目录叫做安装点(mount point)
#mount /dev/hda4 /users
将把存储在磁盘分区上由/dev/hda4表示的文件系统安装到路径/users下
2.安装在某个特定系统上的文件系统清单保存在/etc/fstab文件中。包含在这个文件中的信息让这些文件系统在引导时先检查(fsck -A)再自动安装到(mount -a)到系统中
第7章 增加硬盘
7.4.5安装文件系统
1.当构建一个文件系统的时候,会自动创建一个lost+found目录
7.4.6设置自动安装
1./etc/fstab文件包含与文件系统相对应的设备的清单
/ / ext3 defaults 1 1
第1个字段给出了设备名
第2个字段指定安装点,第3个字段指定文件系统的类型
第4个字段列出了安装选项
第5个字段指定备份与否
第6个字段指定fsck应该检查文件系统的次序
2.mount -a 命令会安装fstab文件里列出的所有的普通文件系统,通常在引导时刻由启动脚本执行。-t标志将操作限制在某种类型的文件系统。
第28章 驱动程序和内核
许多设备都在/dev目录中有一个对应的文件
28.2.3 sysfs:设备
sys文件系统一般安装的/sys目录,sysfs的指导原则之一就是/sys里德每个文件都只表示下层设备的一个属性
能从系统获得的有关设备配置的信息,原本是放在/proc文件系统的。
虽然/proc继续有关于进程和内核在运行时刻的信息,但是特定于设备的信息则应该逐步转移到/sys下
第29章 守护进程
29.3 inetd和xinetd:管理守护进程
xinetd和inetd是管理其他守护进程的守护进程。当有工作需要它们的客户守护进程去做时,它们就启动这些客户进程,一旦客户进程的任务完成了,它们就让客户进程正常地终止
29.3.2 配置inetd
/etc/inetd.conf
time stream tcp nowait root internal
第1列式服务名称。inetd通过查阅/etc/services文件或者/etc/rpc文件和protmap守护进程,把服务名映射成端口号
第2列指定了服务使用的套接口类型,它不是stream就是dgram类型
第3列标明了服务所使用的通信协议。在protocols文件中列出了可以使用的类型。协议几乎总是tcp或者udp
第4列 如果被描述的服务能够一次处理多个请求,把第4列设置为wait,这个选项让派生出的守护进程只要在运行就接管端口,inetd等着这个守护进程退出,然后继续监视端口。wait的反面是nowait,它让inetd连续监视端口,在它每次接收到一个请求的时候就派生出一个守护进程的新副本
第5列给出了运行守护进程的用户名
剩下的几列给出了守护进程的完整路径及其命令行参数,关键字inernal指出服务的实现由inetd自己提供
29.3.3 services文件
向inetd.conf或者xinetd.conf添加了一项新服务后,可能还需要在/etc/services文件中为其设置一项