linux的启动过程如下:
第一步检查硬件是否正确,第二步读取硬盘引导区,第三步载入内核,第四步启动init文件中的相关进程,第五步读取系统配置
这个过程可能比较抽象,我们可以打个比方来理解,以基于mvc的thinkphp框架为例,上面
第一步相当于:检查系统硬件是否正确
第二步相当于:启动webserver服务器,并自动找到首页(index.php或其它)
第三步相当于:载入thinkphp框架类文件
第四步相当于:运行thinkphp框架并new()一个thinkphp类
第五步相当于:读取config.php配置,并最终display(),显示页面效果;
这个比如可能不太恰当,但是可以方便理解
下面这图过程更详细一些:
/etc/profile 里面是全局环境配置
/home/用户名/.bashe_profice是当前登录用户的环境配置
[root@localhost hurong]# ls -al
total 18080
drwx------. 29 hurong hurong 4096 Feb 27 03:49 .
drwxr-xr-x. 3 root root 4096 Feb 25 13:02 ..
-rw-------. 1 hurong hurong 593 Feb 27 05:22 .bash_history
-rw-r--r--. 1 hurong hurong 18 Feb 21 2013 .bash_logout
-rw-r--r--. 1 hurong hurong 176 Feb 21 2013 .bash_profile
有兴趣的可以打开这些配置文件看看,里面都是用shell编写的程序,在不了解的情况下不要轻易修改,否则可能出大问题;
打开.bash_profile看看:
[root@localhost hurong]# cat /home/hurong/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
[root@localhost hurong]#
第二步grub的配置可以用 vi /etc/grub.conf查看:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title centos (2.6.32-71.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=c5cb6d94-66c6-47d6-8670-ec529df6a14a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img
其中红色部分为内核的版本号,linuz最后一个z表示压缩包的意思,2.6.32表示版本号,2表示主版本号,6表示次版本号,32表示末版本号;其中次版本号为偶数表示正式版,为奇数表示测试版,如果要更换内核的话,下载的时候要注意。
第三步:启动init进程
第4步,可以用vi /etc/inittab查看init配置,主经用来指定运行级别;相当于windows中按启动后按f8选启动模式;
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# 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:5:initdefault:
0表示关机,设置成0表示启动完后就关机了
1单用户模式,类似于windows的安全模式,只有root可以登录,无图形界面,只有最小化功能
2多用户模式,无nfs(用于linux与unix之间的文件共享,很少用,安全性差),无图形界面
3多用户模式,无图形界面
4没用了,可以由用户自定义
5系统默认级别,图形化的多用户模式
6重启,设置成此项将进入无限重启状态。
查看当前运行模式:runlevel
[root@localhost hurong]# runlevel
N 5
[root@localhost hurong]#
修改运行级别:init 上面某数字
- 相关文章
- linux硬件时钟与软件时钟同步
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- centos7.4 64位下swoole安装及配置
- laravel页面静态化的方法
- navicate连接mycat报1184错误
- 单点登录sso原理及php实现方式及de
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:607篇
- 浏览数:940840