知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux内核被加载的过程

发布时间:2014-09-05 15:25:21作者:知识屋

linux内核被加载的过程
 
内核必须模块vmlinz(5M左右)不认识硬盘,原本是需要写跟loader中一样的内容,来加载非必要模块。  www.zhishiwu.com  
内核非必要的功能被编译为模块放在了/lib/modules(143M)中。
 
现采取的措施是 在loader加载kernel的同时 也加载initial RAM Disk ==initrd 到内存中。
initrd在一般命名为/boot/initrd(14M) 其作用是挂载内存的虚拟文件系统,
kernel根据该虚拟文件系统加载硬盘等驱动程序,挂载根目录,最终完成其功能模块的加载。
至此内核全部被加载到内存中,并常驻内存。
 
内核调用的第一个进程为 sbin/init :完成准备软件执行环境,包括系统的主机名、网络设置、文件系统格式、runlevel等等。这些内容是由etc/inittab配置的
  www.zhishiwu.com  
 init 依据 inittab 设定的处理流程会是:
1. 先取得 runlevel 亦即默讣执行等级的相关等级 (以测试机为例,为 5 号);
2. 使用 /etc/rc.d/rc.sysinit 进行系统初始化
3. 由亍 runlevel 是 5 ,因此行『l5:5:wait:/etc/rc.d/rc 5』,其他行则略过
4. 讴定好 [ctrl]+[alt]+[del] 这组的组合键功能
5. 讴定丌断电系统的 pf, pr 两种机制;
6. 劢 mingetty 的六个终端机 (tty1 ~ tty6)
7. 最终以 /etc/X11/perfdm -nodaemon 启动图形接口啦!
  www.zhishiwu.com  
其中第二步使用 /etc/rc.d/rc.sysinit 进行系统初始化 的工作有:
 
1. 取得网络环境不主机类型:
读取网络配置文件 /etc/sysconfig/network ,取得主机名不默讣通讯闸 (gateway) 等网络环
境。
2. 测试不挂载内存装置 /proc 及 USB 装置 /sys:
除挂载内存装置 /proc 外,还会主劢侦测系统上是否具有 usb 的装置, 若有则会主劢加载
usb 的驱劢程序,尝试挂载 usb 的文件系统。
3. 决定是否启动 SELinux :
我们在第十七章谈到的 SELinux 在此时行一些检测, 检测是否需要帮所有的档案重新编
写标准的 SELinux 类型 (auto relabel)。
4. 启动系统的随机数生成器
随机数生成器可以帮劣系统行一些密码加密演算的功能,在此需要启动两次随机数生成器。
5. 设置终端机 (console) 字形:
6. 设置显示亍开机过程中的欢迎画面 (text banner);
7. 设置系统时间 (clock) 不时区设置:需读入 /etc/sysconfig/clock 设置值
8. 接口讴备的侦测不 Plug and Play (PnP) 参数的测试:
根据核心在开机时侦测的结果 (/proc/sys/kernel/modprobe ) 开始行 ide / scsi / 网络 / 音效
等接口讴备的侦测,以及利用以加载的核心模块行 PnP 装置的参数测试。
9. 用户自定义模块的加载
使用者可以在 /etc/sysconfig/modules/*.modules 加入自定义的模块,则此时会被加载到系统
当中
10. 加载核心的相关设置:
系统会主劢去读取 /etc/sysctl.conf 这个档案的设置值,使核心功能成为我们想要的样子。
11. 设置主机名不初始化电源管理模块 (ACPI)
12. 初始化软件磁盘阵列:主要是透过 /etc/mdadm.conf 来设置好的。
13. 初始化 LVM 的文件系统功能
14. 以 fsck 检验磁盘文件系统:会行 filesystem check
15. 行磁盘配额 quota 的转换 (非必要):
16. 重新以可擦写模挂载系统磁盘:
17. 启动 quota 功能:所以我们丌需要自定义 quotaon 的劢作
18. 启动系统虚拟随机数生成器 (pseudo-random):
19. 清除开机过程当中的临时文件:
20. 将开机相关信息加载 /var/log/dmesg 档案中。
 
第一次开机后进行的几个简单设置
terminal 启动快捷键  ctrl+alt +t  
设置root密码 
su - root
 
sudo passwd root
 
允许root登录
 
gksu /usr/sbin/gdmsetup
  www.zhishiwu.com  
设置源
 
sudo gedit /etc/apt/sources.list
 
sudo apt-get update (只是更新了软件包列表,并没有对软件更新)
 
ctrl+alt +f1 ~7 各个登录终端
 
ctrl+d == exit
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜