linux 学习笔记(一)
这是我的第一篇博客,距离我开始正式学习linux的知识,已经过去三个月了,比起之前盲人摸象的状态,现在好了很多,希望能把自己学习的内容真正掌握
linux启动流程: 第一步,电源启动后,首先启动BIOS,BIOS中存储所有主机的硬件信息,包括CPU,硬盘,内存等硬件信息。
二、读取MBR(磁盘主引导记录)共512字节,包含了预启动信息,分区表信息。包含两部分,一部分为引导区,446字节。 另外一部分为partition table分区表,共66字节。包含了磁盘的分区信息。
注:另外MBR所能识别的磁盘最大数据量为2TB,现在用的越来越多的是GUID.
三、然后通过磁盘介质,查找并启动bootloader,通过bootloader我们可以初始化硬件、建立内存空间的映射图。我们一般使用的到的 bootloader是gurb,依照grub中的设置,启动操作系统。
四、加载内核
根据grub中存在的内核镜像的路径,系统读取内核镜像,并进行解压缩,启动linux内核。
五、依据/etc/inittab设定系统的运行级别 此为/etc/inittab中的内容
# Default runlevel.
The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this) id:3:initdefault:
默认的runlevel等级为3 ,在命令行界面runlevel,可以显示系统当前系统的运行级别。
而带图形桌面的runlevel为5
六、init进程执行rc.sysinit
linux执行/etc/rc.d/rc.sysinit脚本程序,设定包括PATH(系统变量),网络配置(/etc/sysconfig/network), 启动swap等操作。
载入用户自定义模块 /etc/sysconfig/modules/*.modules 读取/etc/sysctl.conf内容进行内核设定 将开机信息保存到/var/log/dmesg中,可以使用dmesg查看结果。
七、执行不同运行级别下的脚本程序 /etc/rc3.d,我们默认的级别,来完成的相应的初始化和启动服务。
八、执行/etc/rc.d/rc.local 这里可以自己设定需要的启动进程,或者脚本。
九、执行/bin/login,进入登录状态。
另外,linux启动的同时会挂载存储设备,存储设备的list在/etc/fstab中
附一张启动流程图:


浙公网安备 33010602011771号