Linux入门基础(六):Linux系统启动
系统启动流程
- BIOS
- MBR : Boot Code
- 执行引导程序-GRUB
- 加载内核
- 执行init
- runlevel
BIOS
- BIOS(basic input output system),我们称之为基本输入输出系统,一般保存在主板的BIOS芯片中
- 计算机启动第一个运行的就是BIOS,BIOS负责检查硬件并查找可启动设备
- 可启动设备在BIOS设置中进行定义,如USB/CDROM/HD等
MBR
- 扇区的前512字节储存MBR信息
- BIOS通过MBR的最后两个字节是否是55aa来识别该设备是否是可启动设备
- BIOS找到可启动设备后执行其引导代码
- 引导代码为MBR的前446字节
GRUB
- GRUB是现在Linux使用的主流引导程序
- 可以用来引导现在几乎所有的操作系统
- GRUB的相关文件保存在/boot/grub目录中
- GRUB配置文件尾/boot/grub/grub.conf
GRUB加载顺序 :
- stage1(MBR的镜像,大小512字节)
- 文件系统名_stage1_5(增加对各个文件系统的支持,比如e2fs_stage1_5,xfs_stage1_5等)
- stage2
- 内核
内核
- 引导代码将负责找到并加载Linux内核
- Linux为保持内核的精简,将一些不常用的驱动,功能编译成模块,在需要的时候动态加载.而这些模块被打包保存为以个initramfs文件
- 早期版本Linux使用initrd文件,initramfs是initrd的替代优化版,更加节省空间和灵活
- 命令dmesg可以查看本次启动时内核的输出信息
INIT
- init是Linux系统中运行的第一个进程
- top 命令可以查看PID,其中1为init,init是所有进程的父进程,并且一直存在
- init负责使用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务
运行级别
- Linux运行级别
- 0 关机
- 1 单用户模式
- 2 不带网络的多用户模式
- 3 多用户模式(常用的命令行模式)
- 4 未使用
- 5 xll 图形化多用户(常用的图形界面模式)
- 6 重新启动
- 默认的运行级别可以通过文件/etc/inittab 下配置修改
- 命令runlevel 显示上个和当前运行级别
- 命令init 数字 可以改变当前运行级别
单用户修改root密码
- 为内核传递参数‘1’(运行级别1)或者“single”系统进入单用户
- 单用户模式下不启动任何服务
- 单用户模式直接以root用户登录,并且不需要密码
- 可以使用passwd修改root密码
Linux入门基础(六):Linux系统启动的更多相关文章
- Linux入门基础(一):Linux基本操作
命令行BASH基本操作 Shell 用户不能直接操作内核,所以用户操作通过shell传递给内核 shell分为两种 : GUI 图形界面 (linux一般是GNOME) CLI 命令行界面 (linu ...
- Linux入门基础(三):Linux用户及权限基础
用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...
- Linux入门基础(七):Linux软件管理基础
源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要编译成为二进制形式之后才能够运行 源代码基本编译流程 : ./configure 检 ...
- Linux入门基础(四):Linux网络基本配置
网络基础 ip编址 ip编址是一个双层编址方案(网络部分和主机部分),一个ip地址标识一个主机(或一个网卡接口) 现在应用最广泛的是IPv4编址,已经开始逐渐向IPv6编址切换 IPv4地址32位长, ...
- linux入门教程(六) Linux文件与目录管理
在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...
- Linux入门基础(五):Linux管道,重定向,文本处理
多命令协作:管道及重定向 在Linux中,大多数命令都很简单,每个命令往往只实现一个或几个很简单功能. 我们可以通过将不同功能的命令组合起来一起使用,达到完成某个复杂功能的目的 CLI下几乎所有的命令 ...
- Linux入门基础(二):Linux磁盘及文件管理系统
磁盘管理 fdisk分区工具 只支持MBR分区 fdisk命令只有root用户能用 fdisk -l 列出所有安装磁盘及分区信息 fdisk /dev/sda (操作磁盘,按m可列出帮助界面,常用的操 ...
- Linux入门基础篇
Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...
- Linux入门基础之一
Linux 入门基础 一.Linux 系统安装 安装方法网上很多,请自行百度 二.Linux 基本操作 2.1.GNOME图形界面基本操作 操作类似于Windows系统操作 打开每一个文件夹都会打开一 ...
随机推荐
- python第四课——运算符
一.python中的运算符: 什么是运算符? 就是计算机语言中用来参与运算的符号!! 1.算数运算符: 符号:+ - * / %(取余,取模) //(取整) **(开方) 2.比较运算符: 特点:比较 ...
- virtualbox+vagrant学习-2(command cli)-25-Machine Readable Output
Machine Readable Output机器可读的输出 每个vagrant命令都接受一个--machine-readable的标志,它支持机器可读的输出模式.在这种模式下,终端的输出被机器友好的 ...
- c++版 nms
目前这个代码运行会报一些错误,还要再修改修改才行 #include<iostream> #include<vector> #include<algorithm> # ...
- 在不升级 mysql 的情况下直接使用 mysql utf8 存储 超过三个字节的 emoji 表情
由于现在数据库的版本是5.5.2,但是看网上说要直接存储emoji表情,需要升级到5.5.3然后把字符集设置为utf8mb4,但是升级数据库感觉属于敏感操作. 考虑了多久之后直接考虑使用正则来替换,但 ...
- springboot项目打war包pom设置
<build> <finalName>PayManager</finalName><!--打包后的名字PayManager.war--> <plu ...
- ajax和原生ajax、文件的上传
ajax理解: ajax发送的请求是异步处理的.也就是说如下形式: function f1(){ $.ajax( { ....... success:function(){ a= return a } ...
- Python的 GUI 框架
Python的 GUI 框架 Tkinter Python内嵌的gui环境,使用TCL实现,python IDLE由Tkinter实现 历史悠久,perl中有对应的perlTk.Python标准安装包 ...
- laravel5.5源码笔记(七、数据库初始化)
laravel中的数据库也是以服务提供者进行初始化的名为DatabaseServiceProvider,在config文件的providers数组中有写.路径为vendor\laravel\frame ...
- C语言学习记录_2019.02.03
优先级:算术运算符 > 关系运算符 > 赋值 ==和!=的优先级低于其他关系运算符 连续的关系运算符从左到右进行 注释:“//”或“/**/” 判断语句:if else 写代码有时看重的是 ...
- [转]Docker 生产环境之配置容器 - 限制容器资源
默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的给定资源.Docker 提供了一些方法来控制容器可以使用多少内存.CPU 或块 IO,并设置 docker run 命令的运行时配置标志.本 ...