Linux学习笔记(五)——Linux系统管理



一、         启动关机的流程与加载程序
 
1.      Linux启动流程
 
a)      加载BIOS的硬件信息,并获取第一个启动设备的代号
 
b)      读取第一个启动设备的MBR的引导加载程序的启动信息
 
c)      加载核心操作系统的核心信息,核心开始解压缩,并且尝试驱动所有硬件设备
 
d)      核心执行init程序并获取运行信息(/etc/inittab)
 
e)      init执行/etc/rc.d/rc.sysinit文件(各个版本都不相同,如/etc/init.d/boot和/etc/init.d/rc)
 
f)       启动核心的外挂模块(/etc/modprobe.conf)
 
g)      init执行运行的各个批处理文件
 
h)      init执行/etc/rc.d/rc.local文件
 
i)       执行/bin/login程序,等待用户登录
 
j)       登陆之后开始以Shell控制主机
 
2.      用户自定义引导启动程序(/etc/rc.d/rc.local)
 
3.      关于模块的配置/etc/modprobe.conf启动过程中,读取的服务相关设置文件都记录在/etc/sysconfig目录下
 
核心放在/lib/modules/`uname-r`/kernel中,/etc/modules/`uname -r`/modules.dep文件记录了在核心支持的模块的各项依赖性,可以使用depmod命令建立该文件。
 
核心模块的观察:lsmod、modinfo
 
核心模块的加载与删除:modprobe(先解决模块的依赖性,推荐)、insmod、rmmod
 
4.      引导加载程序(例如Grub)有两种加载方式:
 
直接指定并取用核心文件,加载到主存储器中
 
将加载程序的控制权移交给下一个加载程序,链式加载程序(chain loader)的方式
 
5.      解决启动过程中的问题可能用到chroot,比如先启动一个Linux系统,然后再chroot到另外一个不能正常启动的Linux系统进行修复。

 
二、         函数库管理
1.      ldconfig与/etc/ld.so.conf,将动态函数库加载到内存(高速缓存,cache)中,这样就可以提高动态函数库的读取速度。将动态函数库加载到高速缓存(cache)中的过程如下:
 
a) 在/etc/ld.so.conf中写下“想要读入高速缓存中的动态函数库所在的目录”
 
b)利用ldconfig将/etc/ld.so.conf的数据读入到高速缓存中
 
c) 同时在/etc/ld.so.cache文件中记录数据
 
2.      ldd可以判断某个可执行的二进制文件有什么动态函数库
 
ldd [-vdr] [filename]
 
三、         系统守护程序
 
1.      根据守护程序的启动与管理方式,可以将守护程序分为可独立启动的独立启动守护程序,以及通过统一安全机制管理的超级守护程序。
 
superdeamon(超级守护程序)通过统一的守护程序(xinet)来负责唤起服务。Xinet的启动脚本写在/etc/init.d/xinet.d里,挂在这个守护程序里面的服务设置项目写在/etc/xinet.d.conf与/etc/xinet.d/*目录的任何文件中。
 
2.      整个服务开机就能启动的地方有两处,一处是在守护程序启动(/etc/rc.d/rc[0-6].d/*)目录下,另一处是/etc/rc.d/rc.local。
 
使用chkconfig管理开机启动的相关服务。语法:
 
chkconfig --list
 
chkconfig [--add|--del][service_name]
 
chkconfig --level [0123456][service_name] [on|off]
 
3.      如何将自己建立的服务加入chkconfig的管理中呢?只要将该服务加入init可管理的脚本中,即/etc/init.d中。
 
 
 
 
作者 hopezhangbo

相关内容

    暂无相关文章