当前位置: 首页 > 编程日记 > 正文

Linux 引导和系统启动

bootstrap 引导程序;鞋带 -> 简称 boot 启动

pull oneself up by one’s bootstraps.(体现计算机系统启动的难处)

Linux系统启动分为两大部分:
在这里插入图片描述

一. 第一部分:机器启动(BIOS到 加载内核 ,其实跟Linux关系不大。)

1.BIOS:Basic Input Output System 三步走
(1)通电/硬件自检
(2)读取CMOS中的设置进行初始化
(3)根据CMOS设置寻找引导程序,并加载到内存
现在比较新的笔记本电脑用的是BIOS改进版EFI/UEFI

2.MBR: Master Boot Record 主引导记录 (与之等价的有GPT)
MBR是硬盘上最前面的512个字节,其最后两个字节是55AA,表示是可以启动的。前446个字节代码区存放指针,用于指向真正的引导程序,在Linux中是GRUB。
在这里插入图片描述

3.GRUB
重要配置文件 grub.conf 修改此文件可以改变以下界面
在这里插入图片描述

4.加载内核:将/boot目录下的相关内核文件加载到内存中

二. 第二部分

  1. init进程(第一个进程,PID=1,是之后所有进程的父进程)
    1.1守护进程:
    即Windows里面的服务,一开机就会运行,不用用户自己启动。
    守护进程(Daemon)一般以d结尾,如atd,crond,httpd。
    如登陆界面,图形化界面(不是Linux必须)

1.2启动守护进程的两种机制:
1.2.1 init机制
将守护进程分成三种类型:自己类,独立启动(小),超级守护进程(大,要启动可能要先启动子进程)。针对这三种进程提供三种命令:init、chkconfig、service。

运行级别:不同级别下启动的程序数目不同。
例如级别2:不带网络模式的多用户——就不去启动网卡驱动之类的程序

要启动一个程序,就会有一个脚本。
如果发现tomcat没启动,如何手动启动?
sudo /etc/init.d/apache2 start
或者
service apache2 start(apache是一个service)

明白这些遇到问题时就很有用。
用户登录的三种方式:
在命令行——运行级别1:单用户模式
在shell——运行级别3:普通多用户
在图形化界面——运行级别

用户登录一定是在init启动之后,那么在用户登录出现之前可以修改密码。

1.2.2 systemd机制

init机制的缺点

  1. 串行,启动时间长
  2. 启动脚本复杂

systemd取代init成为第一个进程,CentOS 7+和其他较新的发行版均采用该机制,其主要特点是:
(1) 一个守护进程被视作一个unit(服务单元),unit按功能被分为多种类型(如service,socket-即要使用网络),多个unit组合成一个target(服务组)-联系前面的运行级别。
(2) 使用systemctl主命令统一管理守护进程。
(3) 向下兼容init.d管理机制。

systemd结构过于复杂,违反了kiss规约。

文章最后列出它的一些用法:
在这里插入图片描述
在这里插入图片描述

相关文章:

【数据结构】支持四则混合运算的计算器(转)

1.给出两个数,用户再指定操作符,要求计算结果,这实现起来很容易; 2.多个数,但只涉及同一优先级的操作符,做起来也很容易; 3.多个数,不同优先级的操作符,怎么办呢&#xf…

TypeScript学习笔记之 接口(Interface)

在java中,接口是用来定义一些规范,使用这些接口,就必须实现接口中的方法,而且接口中的属性必须是常量。javascript中是没有接口的概念的。所以TypeScript在编译成 JavaScript 的时候,所有的接口都会被擦除掉。 而TypeS…

【组队学习】【33期】数据可视化(Matplotlib)

数据可视化(Matplotlib) 航路开辟者:杨剑砺、杨煜、耿远昊、李运佳、居凤霞领航员:王森航海士:肖明远、郭棉昇 基本信息 开源内容:https://github.com/datawhalechina/fantastic-matplotlib开源内容&…

布尔定理及证明(完整版)

这篇文章的目的是以布尔代数公理证明定理。 对偶原理:0with1, with 互换以后,公理(定理)任然成立。 布尔代数的公理如下 单变量的布尔代数定理如下 单变量的布尔代数定理很容易用真值表证明。 多变量的布尔定理如下 交换律&…

创建DLL动态链接库——声明导出法

DLL声明导出法:是通过使用__declspec(dllexport),添加到需要导出的函数前,进行声明。 头文件定义如下(OPdll.h): 源文件定义如下(OPdll.cpp): 通过以上两个文件,编译过后即可生成OPdll.lib和OPdll.dll两个库…

【组队学习】【33期】Scratch(一级)

Scratch一级 航路开辟者:王思齐、马燕鹏领航员:马燕鹏航海士:马燕鹏 基本信息 开源内容:https://github.com/datawhalechina/team-learning-program/tree/master/Scratch内容属性:公测课程内容说明:抽取…

Bzoj2780: [Spoj]8093 Sevenk Love Oimaster

题目 传送门 Sol 就是广义\(sam\) 然后记录下每个状态属于哪些串&#xff0c;开\(set\)维护\(parent\)树上启发式合并一下就好了 # include <bits/stdc.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; t…

LR分析法从理解到运用

1、 LR分析器 解释&#xff1a; 分析栈包括符号栈和相应状态栈 分析表包括ACTION表和GOTO表 Ⅰ动作表元素action[Si,aj] 表示当前栈顶状态为S&#xff0c;输入符号为a时所执行的动作。有四种情况&#xff1a;S(移进)&#xff0c;r(归约)&#xff0c;acc(接受)&#xff0c;erro…

Android 判断SD卡是否存在及容量查询

转载&#xff1a;http://blog.csdn.net/xinzheng_wang/article/details/7827775 Android 判断SD卡是否存在及容量查询的简单方法如下&#xff1a;首先要在AndroidManifest.xml中增加SD卡访问权限 [html] view plaincopy <!-- 在SDCard中创建与删除文件权限 --> <uses…

Spring Boot 教程(三): Spring Boot 整合Mybatis

教程简介 本项目内容为Spring Boot教程样例。目的是通过学习本系列教程&#xff0c;读者可以从0到1掌握spring boot的知识&#xff0c;并且可以运用到项目中。如您觉得该项目对您有用&#xff0c;欢迎点击收藏和点赞按钮&#xff0c;给予支持&#xff01;&#xff01;教程连载中…

电子学会 软件编程(图形化)一级训练营

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 电子学会 软件编程&#xff08;图形化&#xff09;一级训练营 试题来源 青少…

win10 安装 python报错-已安装这个产品的另一版本

尝试清理干净电脑上关于之前安装的Python3&#xff0c;在 输入winR 输入cmd 回车 输入 python 回车 却看到 C:\Users\86136>python ‘python’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 但是再安装&#xff0c;又报出严重错误。 最终解决方案&am…

POJ1276Cash Machine

http://poj.org/problem?id1276 题意 &#xff1a; 给你一个目标钱数&#xff0c;再给你钱币的种数和钱币的面值&#xff0c;让你用这些钱凑出不大于目标钱数的钱然后输出这个最接近且不大于目标钱数的钱。 思路 &#xff1a; 背包问题&#xff0c;还是多重背包&#xff0c;就…

Python中处理时间 —— time模块

time模块 逝去的秒数 逝去的秒数表示从某个时间&#xff08;Python中是“Thu Jan 1 07:00:00 1970”&#xff09;开始到现在所经过的秒数。 使用 time.time() 函数可以获得逝去的秒数&#xff1a; >>time.time() 1388330058.8643time.time()返回一个浮点数&#xff0c;可…

学编程必看:逻辑思维测试

2021.09 电子学会图形化一级考试有这样的一个题目&#xff1a; 如下图所示&#xff0c;井深7米&#xff0c;有个蜗牛从井底往上爬&#xff0c;白天爬3米&#xff0c;晚上往下坠2米&#xff0c;问蜗牛几天能从井里爬出来&#xff1f;&#xff08; &#xff09; A. 4B. 5C. 6D. …

explicit specialization of ‘Race‘ after instantiation ,implicit instantiation first required here。

报错1&#xff1a; E:\project\qt\Pokemon3\PokemonServer\pokemon.cpp:470: error: specialization of ‘Race::Race() [with int N 0]’ after instantiation Race<0>::Race() : PokemonBase(ATK) ^ 报错2&#xff1a; explicit specialization of ‘Race’ after ins…

(转载)Linux usbtouchscreen驱动分析

在Linux内核中自带USB触摸屏驱动&#xff0c;以linux-2.6.33.3\drivers\input\touchscreen.c为例&#xff0c;进行解析&#xff1a; 1.驱动加载&#xff1a; static int __init usbtouch_init(void){return usb_register(&usbtouch_driver); //驱动注册} 其中usbtouch_dr…

关于事务隔离级别

2019独角兽企业重金招聘Python工程师标准>>> 第一种 read uncommitted 此状态下脏读&#xff0c;不可重复读&#xff0c;虚读都有可能发生。此状态下两个人同时操作一个数据库表一边开启事务没有提交&#xff0c;另一边也开启事物开始更改数据但是也没有提交&#x…

Datawhale组队学习周报(第047周)

本周报总结了从 2021年01月03日至2022年01月09日&#xff0c;Datawhale组队学习的运行情况&#xff0c;我们一直秉承“与学习者一起成长的理念”&#xff0c;希望这个活动能够让更多的学习者受益。 第 32 期组队学习一共 11 门开源课程&#xff0c;共组建了 11 个学习群&#…

讲座记录:从码农到架构师(精简版)

1.框架学习 不要过于在乎细节 学封装思想 不追新 否则太累 每个框架的设计理念不同 spring 比structs 优秀在哪&#xff1f; 关注增量而非全量 2.如何快速学习一门新技术 “新框架的产生速度远大于个人的学习速度” 先快速学习:了解模板&#xff0c;套路-重复出现的代码 类似做…

Enterprise Library 4 数据访问应用程序块

Enterprise Library 数据访问应用程序块简化了实现常规数据访问功能的开发任务。应用程序可以在各种场景中使用此应用程序块&#xff0c;例如为显示而读取数据、传递数据穿过应用程序层( application layers)、以及将修改的数据提交回数据库系统。应用程序块包含对存储过程和内…

虚拟货币市值回调到4100亿整数关口,EOS逆势站上100关口

虚拟货币虚拟货币市值在过去24小时中&#xff0c;虚拟货币整体回调&#xff0c;市值为4100亿美元。只有EOS逆势上扬&#xff0c;已经站上了100元&#xff08;17.5美元&#xff09;上方。虚拟货币市场距离12月份最高点几乎只有一步之遥。EOS走势EOS这种疯狂的势头是很多人预料未…

【NCEPU】韩绘锦:图信号处理与图卷积神经网络

韩绘锦是华北电力大学数理系大四的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;/Datawhale成员&#xff0c;也在天池比赛中取得了不错的成绩&#xff0c;现保送大连理工大学软件工程学院深造。 希望参与我们线下组队学习的同学&#xff0c;可以在…

什么是python第三方库

Python计算生态 标准库 第三方库 标准库&#xff1a;随解释器直接安装到操作系统中的功能模块 第三方库&#xff1a;需要经过安装才能使用的功能模块 模块的概念&#xff1a;库Library、包Package、模块Module 出处&#xff1a;北理工Python慕课

Task01:青少年软件编程(Scratch)等级考试模拟卷(二级)

试题来源 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019.09】青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019.12】青少年软件编程&#xff08;Scratch&#xff09;等级考试试…

App功能测试的注意点

好几个月没有写博客记录学习心得了&#xff0c;这次回老家深夜闲来无事写一篇记录下这段时间的面试心得&#xff0c;这次面试过程很多面试官都问APP的有关测试&#xff0c;下面我就自己的认识和工作中的经验来谈谈自己对APP测试的认识&#xff1a; 1.push消息推送测试 检查push…

编程以外积累: 如何给项目生成类似VS2008的说明文档

1&#xff1a;【下载】 目前微软提供的官方开源工具 Sandcastle 结果跑到项目中一看&#xff0c;抬头就来了这么一段&#xff1a; The Sandcastle CodePlex project is no longer under active development by Microsoft and as such, there will be no future releases to t…

python的turtle绘图体系入门必看(一)

1 设置窗体 turtle.setup(width,height,startx,starty) 说明&#xff1a; setup()函数不是必须的前两个参数代表窗体的横向宽与纵向长后两个参数可选&#xff0c;表示窗体距离屏幕的横向距离和纵向距离&#xff08;也可以理解为窗体左上角距离屏幕左上角的横向和纵向距离&…

交换两个变量的值不使用第三个变量(Java)

关于这个问题网上有好多答案&#xff0c;最近有人说这是个奇葩问题 个人测试了一把&#xff0c;如果是普通的数字的话&#xff0c;基本上没有问题 public static void main(String[] args) {int a 2147483647;int b 2147483646;// aab;// ba-b;// aa-b;// b a (a b) * 0; …

Task02:青少年软件编程(Scratch)等级考试模拟卷(二级)

电子学会 软件编程&#xff08;图形化&#xff09;二级训练营 试题来源 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019.09】青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019…