CentOS6启动流程
1.post加电自检
这个过程是开机后,BIOS或UEFI进行硬件检查的阶段
2.MBR引导
自检硬件没有问题时候,这里以BIOS为例,BIOS将会直接去找硬盘的第一个扇区,找到前446字节,将MBR加载到内存中,MBR将告诉程序下一阶段去哪里找系统grub引导。此阶段属于grub的第一阶段。grub还有1.5阶段和2阶段。
3.GRUB引导
grub第1.5和2阶段,信息默认存放在扇区中,如果使用grub-install生成的2阶段的文件是存放在/boot分区中的。
为了加载内核系统,不得不加载/boot分区,而加载/boot分区,需要有/boot分区的驱动,/boot分区驱动是放在/boot分区中的,啊,我们好像进入了死循环了,Linux是怎么解决的呢?就是靠放在1.5阶段中的数据,是放在第一个扇区后的后续扇区中,具体占用多少字节,不太清楚,只知道1.5阶段和2阶段总共27个扇区。
stage1.5:
mbr之后的扇区,识别stage2所在的分区上的文件系统
stage2:
开机启动的时候看到的Grub选项、信息,还有修改GRUB背景等功能都是stage2提供的,stage2会去读入/boot/grub/grub.conf或者menu.lst等配置文件
4.读取grub.conf文件
读取grub.conf文件以确定内核启动的参数,准备启动内核
5.启动内核
加载内核,核心开始解压缩,启动一些最核心的程序。
因为为了让内核足够轻小,硬件驱动并没有放在内核文件里面,我们可以看到内核很小,才4M左右,我们可以想象Windows中的驱动,安装系统时候还需要使用驱动软件下载好长时间呢
因此需要使用/initramfs-2.6.32-696.el6.x86_64.img来驱动硬件
[root@CentOS6 ~]# ll -h /boot/vmlinuz-2.6.32-696.el6.x86_64
-r-xr-xr-x. 1 root root 4.1M Jul 8 21:06 /boot/vmlinuz-2.6.32-696.el6.x86_64
6.加载伪文件系统(ramdisk),
内核已将启动起来了,再调用ramdisk文件,尝试驱动所有的硬件设备,到这一步,内核起来了,所有驱动也装上了,因此后面的启动就可以交给程序了
7.启动init进程
grub中默认指定init=/sbin/init程序,可以在grub.conf中kernel行自定义执行程序init=/bin/bash,此时可以绕过下面步骤直接进入bash界面。
内核源代码文件中显示996行左右,规定了init启动的顺序,/sbin/init->/etc/init->/bin/init->/bin/sh,/bin/bash没有写,应该是和/bin/sh一样吧
(1)读取/etc/inittab文件
inittab文件里面定义了系统默认运行级别,这一步做了一些工作如下:
a)初始运行级别(RUN LEVEL)
b)系统初始化脚本
c)对应运行级别的脚本目录
d)定义UPS电源终端/恢复脚本
e)在虚拟控制台生成getty,以生成终端
f)在运行级别5初始化X
(2)执行/etc/rc.d/rc.sysinit程序
系统初始化一些脚本,主要完成以下工作
a)设置主机名
b)设置欢迎信息
c)激活udev和selinux可以在grub.conf中,kernel行添加selinux=0以关闭selinux
d)挂载/etc/fstab文件中定义的文件系统
e)检测根文件系统,并以读写方式重新挂载根文件系统
f)设置系统时钟
g)激活swap设备
h)根据/etc/sysctl.conf文件设置内核参数
i)激活lvm及software raid设备
j)加载额外设备的驱动程序
k)清理操作
(3)/etc/rc#.d/文件(各种服务)
里面定义的是各种服务的启动脚本,可以ls查看,S开头代表开机启动的服务,K开头的是关机要执行的任务。#代表数字,一个数字代表一个运行级别,共7个运行级别,这里就不多说了
(4)/etc/rc.d/rc.local文件
这里面可以自定义开机启动的命令。
8.执行/bin/login
执行/bin/login程序,等待用户登录
CentOS7启动流程
CentOS7和CentOS6启动流程差不多,只不过到init程序时候,改为了systemd,因此详细解释一下systemd后的启动流程
1.uefi或BIOS初始化,开始post开机自检
2.加载mbr到内存
3.GRUB阶段
4.加载内核和inintamfs模块
5.内核开始初始化,使用systemd来代替centos6以前的init程序
(1)执行initrd.target
包括挂载/etc/fstab文件中的系统,此时挂载后,就可以切换到根目录了
(2)从initramfs根文件系统切换到磁盘根目录
(3)systemd执行默认target配置
centos7表面是有“运行级别”这个概念,实际上是为了兼容以前的系统,每个所谓的“运行级别”都有对应的软连接指向,默认的启动级别时/etc/systemd/system/default.target,根据它的指向可以找到系统要进入哪个模式
模式:
0 ==> runlevel0.target, poweroff.target
1 ==> runlevel1.target, rescue.target
2 ==> runlevel2.target, multi-user.target
3 ==> runlevel3.target, multi-user.target
4 ==> runlevel4.target, multi-user.target
5 ==> runlevel5.target, graphical.target
6 ==> runlevel6.target, reboot.target
(4)systemd执行sysinit.target
有没有很眼熟?是的,在CentOS6上是被叫做rc.sysint程序,初始化系统及basic.target准备操作系统
(5)systemd启动multi-user.target下的本机与服务器服务
(6)systemd执行multi-user.target下的/etc/rc.d/rc.local
6.Systemd执行multi-user.target下的getty.target及登录服务
getty.target我们也眼熟,它是启动终端的systemd对象。如果到此步骤,系统没有被指定启动图形桌面,到此就可以结束了,如果要启动图形界面,需要在此基础上启动桌面程序
7.systemd执行graphical需要的服务
CentOS6,7启动区别
系统启动和服务器守护进程管理器,它不同于centos5的Sysv init,centos6的Upstart(Ubuntu制作出来),systemd是由Redhat的一个员工首先提出来的,它在内核启动后,服务什么的全都被systemd接管,kernel只是用来管理硬件资源,相当于内核被架空了,因此linus很不满意Redhat这种做法。
Sysv init运行程序顺序:
主要的区别就在这了。
#桌面系统
[CentOS6] GNOME 2.x
[CentOS7] GNOME 3.x(GNOME Shell)
[CentOS6] ext4(Fourth EXtended filesystem)
[CentOS7] xfs
1.实际测试Ext4的单个目录文件超过200W个,性能下降的就比较厉
害
2.Ext4 的inode 个数限制(32位数)最多只能有大概40多亿文件。而且Ext4的单个文件大小最大只能支持到16T(4K block size) 的话,这些至少对于目前来说已经是瓶颈了…
3.XFS使用64位管理空间,最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在16TB
1024M=1G
1024G=1T
1024T=1PB
1024PB=1EB
ZB
YB
NB
DB
[CentOS6] 2.6.x-x
[CentOS7] 3.10.x-x
[CentOS6] GRUB Legacy (+efibootmgr)
[CentOS7] GRUB2
[CentOS6] iptables
[CentOS7] firewalld
[CentOS6] MySQL
[CentOS7] MariaDB
[CentOS6] /bin, /sbin, /lib, and /lib64在/下
[CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下
[CentOS6] /etc/sysconfig/network
[CentOS7] /etc/hostname
[CentOS6]
$ ntp
$ ntpq -p
[CentOS7]
$ chrony
$ chronyc sources
[CentOS6]
$ vim /etc/sysconfig/clock
ZONE=“Asia/Tokyo”
UTC=fales
$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[CentOS7]
$ timedatectl set-timezone Asia/Tokyo
$ timedatectl status
[CentOS6]
$ vim /etc/sysconfig/i18n
LANG=“ja_JP.utf8”
$ /etc/sysconfig/i18n
$ locale
[CentOS7]
$ localectl set-locale LANG=ja_JP.utf8
$ localectl status
1)启动停止
[CentOS6]
$ service service_name start
$ service service_name stop
$ service sshd restart/status/reload
[CentOS7]
$ systemctl start service_name
$ systemctl stop service_name
$ systemctl restart/status/reload sshd
2)自启动
[CentOS6]
$ chkconfig service_name on/off
[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name
3)服务列表
[CentOS6]
$ chkconfig --list
[CentOS7]
$ systemctl list-unit-files
$ systemctl --type service
4)强制停止
[CentOS6]
$ kill -9
[CentOS7]
$ systemctl kill --signal=9 sshd
1)网络信息
[CentOS6]
$ netstat
$ netstat -I
$ netstat -n
[CentOS7]
$ ip n
$ ip -s l
$ ss
2)IP地址MAC地址
[CentOS6]
$ ifconfig -a
[CentOS7]
$ ip address show
3)路由
[CentOS6]
$ route -n
$ route -A inet6 -n
[CentOS7]
$ ip route show
$ ip -6 route show
1)关闭
[CentOS6]
$ shutdown -h now
[CentOS7]
$ poweroff
$ systemctl poweroff
2)重启
[CentOS6]
$ reboot
$ shutdown -r now
[CentOS7]
$ reboot
$ systemctl reboot
3)单用户模式
[CentOS6]
$ init S
[CentOS7]
$ systemctl rescue
4)启动模式
[CentOS6]
[GUICUI]
$ vim /etc/inittab
id:3:initdefault:
[CUIGUI]
$ startx
[CentOS7]
[GUICUI]
$ systemctl isolate multi-user.target
[CUIGUI]
$systemctl isolate graphical.target
默认
$ systemctl set-default graphical.target
$ systemctl set-default multi-user.target
当前
$ systemctl get-default
免责声明:
一切资料仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。资料来自网络,版权争议与本人无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。
更===多===课程====请====加===v===信=== a518958666
基于SpringCloud 微服务架构 广告系统设计与实现
系统学习docker
docker前后端分离实战
Docker+Kubernetes(k8s)微服务容器化实战
Go语言实战抽奖系统
Go语言开发分布式任务调度 轻松搞定高性能Crontab
20小时快速入门go语言
Java从零到企业级电商项目实战
SSM主流框架入门与综合项目实战
Socket网络编程进阶与实战
0. 基于Python玩转人工智能最火框架 TensorFlow应用实践
1. webapp书城开发
2. 组件方式开发 Web App全站
3. 前端到后台ThinkPHP开发整站
4. MySQL性能管理及架构设计
5. 响应式开发一招致胜
6. 掌握React Native技术转型随意切换
7. Yii 2.0开发一个仿京东商城平台
8. Python高效编程技巧实战
9. 快速开发轻量级App
10. 6小时 jQuery开发一个前端应用
11. Android架构师之路 网络层架构设计与实战
12. 程序猿的内功修炼,学好算法与数据结构
13. Vue.js高仿饿了么外卖App 1.0到2.0版本完美升级
14. Android 专项测试 Python篇
15. 微信小程序入门与实战 常用组件API开发技巧项目实战
16. Android 5.0+高级动画开发 矢量图动画 轨迹动画路径变换
17. Android自动化测试实战 Java篇 主流工具 框架 脚本
18. Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台
19. 高性能可扩展MySQL数据库设计及架构优化 电商项目
20. 带领新手快速开发Android App
21. Angular JS 仿拉勾网 WebApp 开发移动端单页应用
22. 组件化封装思想实战Android App
23. React.js入门基础与案例开发
24. Yii 2.0进阶版 高级组件 优化京东平台
25. 双平台真实开发GitHub App React Native技术全面掌握
26. 玩转算法面试 leetcode题库分门别类详细解析
27. Thinkphp 5.0 仿百度糯米开发多商家电商平台
28. ThinkPHP5.0正式版第二季:实战开发企业站【完结】
29. 最容易上手的Vue 2.0入门实战教程
30. 聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎
31. Angular 4.0从入门到实战 打造股票管理网站
32. Java Spring带前后端开发完整电商平台
33. Node.js项目线上服务器部署与发布
34. Java大牛 带你从0到上线开发企业级电商项目
35. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
36. ES6零基础教学 解析彩票项目
37. React高级实战 打造大众点评 WebApp
38. BAT大咖助力 全面升级Android面试
39. 全程MVP手把手 打造IM即时通讯Android APP
40. 微信服务号+Yii 2.0构建商城系统全栈应用
41. 机器学习入门 Scikit-learn实现经典小案例
42. 腾讯大牛亲授 Web 前后端漏洞分析与防御技巧
43. IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 难度中级
44. Vue 2.0 高级实战-开发移动端音乐 WebApp
45. 全新升级 Kotlin系统入门与进阶
46. 对接真实数据 从0开发前后端分离企业级上线项目
47. Android应用发展趋势必备武器 热修复与插件化
48. Laravel 快速开发简书
49. 以慕课网日志分析为例 进入大数据 Spark SQL 的世界
50. Get全栈技能点 Vue2.0/Node.js/MongoDB 打造商城系统
51. Python操作三大主流数据库
52. 前端JavaScript面试技巧
53. Java SSM快速开发仿慕课网在线教育平台
54. Android通用框架设计与完整电商APP开发
55. Spring Boot企业微信点餐系统
56. 开发微信全家桶项目 Vue/Node/MongoDB高级技术栈全覆盖
57. Web自动化测试 Selenium基础到企业应用
58. 高性能的 PHP API 接口开发
59. 企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构
60. Angular 打造企业级协作平台
61. Python Flask 构建微电影视频网站
62. Spring Boot带前后端 渐进式开发企业级博客系统
63. 从零开发Android视频点播APP
64. 前端跳槽面试必备技巧
65. 10小时入门大数据
66. 让你页面速度飞起来 Web前端性能优化
67. Google面试官亲授 升级Java面试
68. LoadRunner 工具使用 企业级性能测试实战
69. 360大牛带你横扫PHP职场 全面解读PHP面试
70. Python前后端分离开发Vue+Django REST framework实战
71. Spring Security技术栈开发企业级认证与授权
72. PHP开发高可用高安全App后端
73. 看得见的算法 7个经典应用诠释算法精髓
74. 全网最热Python3入门+进阶 更快上手实际开发
75. Android互动直播APP开发
76. JMeter 深入进阶性能测试体系 各领域企业实战
77. Node.js入门到企业Web开发中的应用
78. SSM到Spring Boot 从零开发校园商铺平台
79. 深度学习之神经网络核心原理与算法
80. BAT大厂APP架构演进实践与优化之路
81. PHP秒杀系统 高并发高性能的极致挑战
82. Java开发企业级权限管理系统
83. Redux+React Router+Node.js全栈开发
84. Redis从入门到高可用,分布式实践
85. ES6+ 开发电商网站的账号体系 JS SDK
86. Spark Streaming实时流处理项目实战
87. 快速上手Linux 玩转典型应用
88. Python接口测试框架实战与自动化进阶
89. Python3数据科学入门与实战
90. Android高级面试 10大开源框架源码解析
91. 移动端App UI 设计入门与实战
92. 精通高级RxJava 2响应式编程思想
93. Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式
94. Webpack + React全栈工程架构项目实战精讲
95. 快速上手Ionic3 多平台开发企业级问答社区
96. 全面系统讲解CSS 工作应用+面试一步搞定
97. 跨平台混编框架 MUI 仿豆瓣电影 APP
98. Kotlin打造完整电商APP 模块化+MVP+主流框架
99. BAT大牛亲授 基于ElasticSearch的搜房网实战
100. Python3入门机器学习 经典算法与应用
101. Java秒杀系统方案优化 高性能高并发实战
102. 四大维度解锁 Webpack3.0 工具全技能
103. 手工测试企业项目实践及面试提升
104. 基于Storm构建实时热力分布项目实战
105. Java深入微服务原理改造房产销售平台
106. 全网稀缺Python自动化运维项目实战
107. 前端成长必经之路-组件化思维与技巧
108. 基于Python玩转人工智能最火框架 TensorFlow应用实践
109. Koa2框架从0开始构建预告片网站
110. React16+React-Router4 从零打造企业级电商后台管理系统
111. Google资深工程师深度讲解Go语言
112. 微信小游戏入门与实战 刷爆朋友圈
113. Elastic Stack从入门到实践
114. Python移动自动化测试面试
115. Python3数据分析与挖掘建模实战
116. Tomcat+Memcached/Redis集群 构建高可用解决方案
117. 系统学习Docker 践行DevOps理念
118. Spring Cloud微服务实战
119. 揭秘一线互联网企业 前端JavaScript高级面试
120. OpenCV+TensorFlow 入门人工智能图像处理
121. 基于Golang协程实现流量统计系统
122. 移动端自动化测试Appium 从入门到项目实战Python版
123. UI动效设计从入门到实战 PC与移动界面设计必学
124. Java并发编程与高并发解决方案
125. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
126. 韩天峰力荐 Swoole入门到实战打造高性能赛事直播平台
127. Docker+Kubernetes(k8s)微服务容器化实践
128. Python Flask高级编程
129. ZooKeeper分布式专题与Dubbo微服务入门
130. App界面设计利器Sketch 精选案例合集
131. Python高级编程和异步IO并发编程
132. 新浪微博资深大牛全方位剖析 iOS 高级面试
133. Vue2.5开发去哪儿网App 从零基础入门到实战项目
134. 最全面的Java接口自动化测试实战
135. HBase+SpringBoot实战分布式文件存储
136. Gradle3.0自动化项目构建技术精讲+实战
137. 玩转数据结构 从入门到进阶
138. MyCAT+MySQL 搭建高可用企业级数据库集群
139. 验证码图像识别,快速掌握TensorFlow模型构建与开发
140. SpringBoot2.0不容错过的新特性 WebFlux响应式编程
141. 响应式开发一招致胜
142. jquery源码分析
143. AngularJS全栈开发知乎
144. 揭秘一线互联网企业 前端JavaScript高级面试
145. JavaScript版 数据结构与算法
146. Koa2 实现电影微信公众号前后端开发
147. Koa2+Nodejs+MongoDb 入门实战视频教程
148. Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备
149. Vue.js 源码全方位深入解析
150. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
151. Vue全家桶+SSR+Koa2全栈开发美团网
152. 飞速上手的跨平台App开发
153. 前端JS基础面试技巧
154. 前端跳槽面试必备技巧
155. 让你页面速度飞起来 Web前端性能优化
156. 微信小程序商城构建全栈应用
157. 移动Web APP开发之实战美团外卖
158. Thinkphp 5.0 仿百度糯米开发多商家电商平台
159. ThinkPHP5.0正式版第二季:实战开发企业站
160. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
161. 前端到后台ThinkPHP开发整站
162. PHP从基础语法到原生项目开发
163. PHP高性能 高价值的PHP API
164. 360大牛全面解读PHP面试
165. PHP开发高可用高安全App后端
166. PHP秒杀系统 高并发高性能的极致挑战
167. Swoole入门到实战打造高性能赛事直播平台
168. YII 2.0开发一个仿京东商城平台
......
......
更===多===课程====请====加===v===信=== a518958666
╭══════════════════════════════════════════╮ ║
║ 说明:教程版权归原作者所有,本人只是负责搜集整理,本人 ║
║ 不承担任何技术及版权问题。本人分享的任何教程仅提 ║
║ 供学习参考,不得用于商业用途,请在下载后在24小时 ║
║ 内删除。 ║
║ ║
║ 1.请遵守中华人民共和国相关法律、条例 ║
║ 2.本人提供的各类视频教程仅供研究学习,本人不承担观看 ║
║ 本教程后造成的一切后果 ║
║ 3.本人不保证提供的教程十分安全或是完全可用,请下载后 ║
║ 自行检查 ║
║ 4.本人提供的教程均为网上搜集,如果该程序涉及 ║
║ 或侵害到您的版权请立即写信通知我们。 ║
║ 5.如不同意以上声明,请立即删除,不要使用,谢谢合作 ║
║ ║
╰═════════════════════════════════════════╯