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系统操作 打开每一个文件夹都会打开一 ...
随机推荐
- ZT C语言实现字符串倒序
http://blog.chinaunix.net/uid-20788517-id-34777.html 分类: C/C++ 1 #include <stdio.h> 2 #includ ...
- Golang格式化小结
Golang的格式化使用了与c.python等语言类似的风格,但是更加丰富和通用.格式化函数在fmt包中,如:fmt.Printf,fmt.Fprintf,fmt.Sprintf,fmt.Printl ...
- 1031. [JSOI2007]字符加密【后缀数组】
Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的信息排成一圈,显然,它们有很多种不同的读法.例如下图,可以读作 ...
- django自带的登录验证功能
django自带的验证机制 from django.shortcuts import render, redirect from django.contrib.auth import authenti ...
- Java反射学习一
Java 反射机制 基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象 ...
- utf-8 转码--网址转码
NSString *name = @"联通测试"; NSString *utfName = [name stringByAddingPercentEncodingWithAllow ...
- B. Sleepy Game
http://codeforces.com/problemset/problem/936/B Petya and Vasya arranged a game. The game runs by the ...
- HBase的简单java操作
官方文档:http://hbase.apache.org/book.html java简单操作hbase的表 import org.apache.hadoop.conf.Configuration; ...
- 【js】走近小程序(2) 常见问题总结
一.API请求? 二.基础库兼容? 三.不同页面之间的传值 一.API请求? wx.request({ url: 'test.php', // 仅为示例,并非真实的接口地址 data: { x: ...
- 在centos环境下编译安装myrocksdb
rocksdb(https://rocksdb.org.cn/)是脸书(facebook)公司开源的一个key-value存储引擎,基于leveldb开发.rocksdb使用的是LSM存储引擎,纯c+ ...