linux系统引导分区,揭秘Linux(二)——操作系统引导与硬盘分区

通过前面的介绍想必大家对Linux有了个基础的了解,那么各位肯定该说是不是要装操作系统了,对不起让各位失望了,这次所讲解的是Linux运行原理与硬盘分区,这是重中之重啊!请一定要细细品读。

为了更好地了解Linux系统的运行原理,我们非常有必要的了解下系统启动的流程。

在按开机电源后,会听到机箱内发出“滴”的一声,接着屏幕上开始打印出一些字符,然后开始显示出图形界面,最后屏幕上会显示需要输入用户名、密码的登录界面。这是我们用户所能感到的,关句话说是看得见摸得着的,实际上计算机是如何启动到登录界面的呢?

其实,不管是Linux还是Windows,从用户感官上的体验而言,顺序都是基本相同的。

首先,计算机会加载BIOS,这是计算机上最接近硬件的软件,各家主板制造商都会开发适合自己主板的BIOS,而BIOS中一项很重要的功能就是对自身的硬件做一次“体检”,只有硬件没有问题,才能运行软件,这种通电后开始的“体检”的过程被称为“加电自检”,如果所有的硬件自检通过,一般都会发出一次“滴”的短声提示,说明硬件一切正常。

而如果有问题呢?当硬件真的出现了问题无法通过BIOS的“体检”将采用报警机制,这就是我们在个人计算机(PC机)中常见的长长短短的滴滴声。在发生报警的同时屏幕打印出大致的什么问题。

机器自检通过后,下面就要引导系统了。这个动作是BIOS设定的,BIOS默认会从硬盘上的第0柱面、第0磁道、第一个扇区中读取被称为MBR(即主引导记录)的东西,即主引导记录。一个扇区的大小是512字节,存放的内容是一段引导程序和分区信息,其中引导程序部分占用446字节,另外64字节是磁盘分区表DPT,最后两字节是MBR的结束位。这512字节的空间内容 是由专门的分区程序产生的,比如说Windows下的fdisk,或者Linux下的fdisk命令,所以它不依赖于任何操作系统,而MBR中的引导程序也是可以修改的,所以可以利用这个特性实现多操作系统共存。由于RedHat、CentOS默认会使用Grub作为其引导操作系统的程序,而Grub本身又比较大,所以常见的方式是在MBR中写入Grub的地址,这样系统实际会载入Grub作为操作系统的引导程序。

经过了上面的步骤,第三步就是顺理成章地运行Grub了。Grub最重要的功能就是根据其配置文件加载kernel(内核)镜像,并运行内核加载后的第一个程序/sbin/init,这个程序会根据/etc/inittab来进行初始化的工作。其实这里最重要的就是根据文件中设定的值来确定系统将会运行的runlevel(运行级就是操作系统当前正在运行的功能级别),默认的runlevel定义在“id:3:initdefault:”中,其中的数字3说明目前的运行级别定义为3

第四步,Linux将根据/etc/inittab中定义的系统初始化配置si::sysinit:/etc/rc.d/rc.sysinit执行/etc/rc.sysinit脚本,该脚本将会设置系统变量、网络配置,并启动swap、设定/proc、加载用户自定义模块、加载内核设置等。

第五步是根据第三步读到的runlevel值来启动对应的服务,如果值为3,就会运行/etc/rc3.d/下的所有脚本,如果值为5,就会运行/etc/rc5.d/下的所有脚本。

第六步将运行/etc/rc.local。

第七步会生成终端或X Window来等待用户登录。

可以简单总结成如下图所示

df20d3375ca58bedf2f33ebe510112b4.png

经过上述的一系列操作,用户就可以来到登录的界面,在输入用户名密码后就可登录到系统。

接下来我们说说Linux操作系统的runlevel,Linux的运行级别分为七个级别。分别用阿拉伯数组0~6来代替。

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运行级别4:系统未使用,保留运行级别5:X11控制台,登陆后进入图形GUI模式运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

这七个运行级别中常用的有0、1、3,运行级别0可将操作系统快速关机,一般在需要马上关机,不计较数据丢失时可以使用(命令init 0)。运行级别1是单用户模式,常用在root密码忘记时可登录运行级别1上修改密码,另外还要说的是进入运行级别1不需要root密码就可以使用root权限,而运行级别3可以说是在日常中使用最广泛的一个运行级别,就是我们常说的命令行模式。

说完操作系统的启动流程,接下来就说说系统分区吧!

Linux跟windows在分区时最大的区别就是windows可以将硬盘分成很多个分区,但我们常用的是分为“四”个分区,为什么要将四引起来那,是因为真正在硬盘的角度说是“三”个分区,说到这很多人要犯迷糊了,你这有是四个分区又是两个分区到底说的是什么啊?

所谓分区其实就是对硬盘的一种格式化方式,在硬盘上分区基本上有三种形式:主分区、扩展分区、逻辑分区。

主分区:一个硬盘的也就是包含启动所必需的文件和数据的,要在硬盘上安装,则该硬盘必须得有一个。你可以理解为windows的C盘。一块硬盘主分区只能有4个。

:也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个才行。

也就是我们平常在中所看到的D、E、F等盘。

说完分区再来说说分区格式,在windows中常用的分区格式是NTFS。

Linux中的分区格式ext4以及卷标等。

简单介绍完什么是分区及分区的种类和格式之后,我们来看看Linux的分区。

52fa7809fb7c2865ec94ef4b40d0630c.png

这个是我的一台实验机的分区列表,从最后一列可以看出分了三个区分别是/、/dev/shm、/boot。

/是根目录,几乎所有的文档和目录都挂载在/之下。

/boot可以理解为系统目录,相当于windows中的Program Files。

/dev/shm将在以后讲解。

那么到现在为止我们应该知道了Linux的启动流程、硬盘都有那几种分区形式、以及硬盘分区的格式。这些都是在真正学习Linux之前要掌握的基础知识,不明白读不懂没关心,在今后的文章中还会再次提到。

今天就到这里吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jax-rs/jersey_JAX-RS 2.1的Jersey客户端依赖性

jax-rs/jersey泽西岛是JAX-RS 2.1的参考实现。 为了在企业容器外部运行具有JSON-P和JSON-B映射的JAX-RS 2.1客户端&#xff0c;需要以下Jersey依赖项。 Jersey客户端2.6版实现了JAX-RS 2.1 API。 以下依赖性将客户端运行时添加到项目中&#xff1a; <dependency><gr…

get占位符传多个参数_mybatis多个参数(不使用@param注解情况下),sql参数占位符正确写法...

useActualParamName配置useActualParamName允许使用方法签名中的名称作为语句参数名称。 为了使用该特性&#xff0c;你的工程必须采用Java 8编译&#xff0c;并且加上-parameters选项。(从3.4.1开始)true | falsetruemybatis的全局配置useActualParamName决定了mapper中参数的…

HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文

文章目录HTTP 介绍请求数据包/请求消息/请求报文请求数据包解析响应数据包/响应消息/响应报文HTTP 介绍 概念&#xff1a;Hyper Text Transfer Protocol 超文本传输协议 传输协议&#xff1a;定义了客户端和服务器端通信时发送数据的格式 特点: 1.基于TCP/IP的高级协议 2.默认…

Linux的open函数的调用过程,Linux 中open系统调用实现原理

用户空间的函数在内核里面的入口函数是sys_open通过grep open /usr/include/asm/unistd_64.h查找到的#define __NR_open2__SYSCALL(__NR_open, sys_open)观察unistd_64.h&#xff0c;我们可以猜测用户空间open函数最终调用的系统调用号是2来发起的sys_open系统调用(毕竟glibc一…

java登录界面命令_Java命令行界面(第29部分):自己动手

java登录界面命令本系列有关从Java解析命令行参数的系列简要介绍了28个开源库&#xff0c;这些库可用于处理Java代码中的命令行参数。 即使涵盖了这28个库&#xff0c;该系列也没有涵盖用于解析Java命令行选项的所有可用开源库。 例如&#xff0c;本系列文章未涉及docopt &…

log nginx 客户端请求大小_nginx

博主会将与Nginx有关的知识点总结到"nginx短篇系列"文章中&#xff0c;如果你对nginx不是特别了解&#xff0c;请按照顺序阅读"nginx短篇系列"&#xff0c;以便站在前文的基础上理解新的知识点。当我们访问nginx服务时&#xff0c;nginx会记录日志&#xf…

Linux 下如何查询 tomcat 的安装目录

在命令终端输入如下命令&#xff1a; [roothtlwk0001host ~]# sudo find / -name *tomcat*

rxjava 背压_背压加载文件– RxJava常见问题解答

rxjava 背压事实证明&#xff0c;将文件作为流进行处理非常有效且方便。 许多人似乎忘记了&#xff0c;自Java 8&#xff08;3年以上&#xff01;&#xff09;以来&#xff0c;我们可以很容易地将任何文件变成一行代码&#xff1a; String filePath "foobar.txt"; …

linux 卸载nfs device is busy,umount.nfs: device is busy解决办法

&period;NET Core全新的配置管理&lbrack;共9篇&rsqb;提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置信息定义在这两 ...Windows无法安装到G…

php 时间加法函数_php 时间加减

date_default_timezone_set(PRC); //默认时区echo"今天:",date("Y-m-d",time()),"";echo "今天:",date("Y-m-d",strtotime("18 june2008")),"";echo "昨天:",date("Y-m-d",strtoti…

如何用xapmm测试php_如何在Xampp中运行PHP程序?

成为经过认证的专业PHP是最流行的web后端编程语言。PHP代码将作为web服务器模块或命令行界面运行。要运行PHP for the web&#xff0c;您需要安装像Apache这样的web服务器&#xff0c;还需要像MyS成为经过认证的专业PHP是最流行的web后端编程语言。PHP代码将作为web服务器模块或…

中文标点符号大全

文章目录常见的中文标点符号标点符号的位置中文的标点符号包括句号&#xff0c;逗号&#xff0c;感叹号&#xff0c;问号&#xff0c;引号&#xff0c;冒号等等&#xff0c;接下来分享常见的中文标点符号名称。常见的中文标点符号 句号 。 用于句子末尾&#xff0c;表示陈述语气…

linux 查看链接最终目标,linux学习笔记7-链接

hard link and soft link硬链接&#xff1a;一个文件两个不同的进入&#xff0c;相当于一个教室两个门&#xff0c;从哪个门进都进到同一个教室硬链接特征&#xff1a;1、拥有相同的 i节点 和相同的存储block快&#xff0c;可以看做是同一个文件2、可通过i节点识别&#xff0c;…

apache.camel_Apache Camel 2.20发布–新增功能

apache.camelApache Camel 2.20已于今天发布&#xff0c;并且像往常一样&#xff0c;我受命撰写有关此出色新版本及其亮点的博客。 该版本具有以下重点。 1&#xff09;Java 9技术预览支持 我们已经开始支持Java 9的工作&#xff0c;此版本称为技术预览。 源代码在Java 9上…

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法

操作无法完成(错误 0x000006ba)&#xff0c;Windows 11 PDF打印机无法使用解决办法 解决方式一 先重启一次电脑&#xff0c;看看是否可以解决问题。 解决方式二 重新启动 Printer Spooler 服务

java 头像 微信群_java怎么生成带用户微信头像的图片,并把这张图片发送给用户。...

展开全部这个是要一个图片中嵌套另外一张图片你可以62616964757a686964616fe59b9ee7ad9431333431336163试试下面这段代码import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOE…

MyEclipse 的 TCP/IP Monitor 的使用

文章目录步骤 1&#xff1a;新建 web02 工程步骤 2&#xff1a;在 WebRoot 下创建 add_employee.html步骤 3&#xff1a;部署项目步骤 4&#xff1a;启动服务器步骤 5&#xff1a;打开 TCP/IP Monitor步骤 6&#xff1a;增加新的监视器步骤 7&#xff1a;启动监视器步骤 8&…

ubuntu linux mac地址,Ubuntu下修改mac地址

说明&#xff0c;本文翻译自man macchanger&#xff0c;若遇到不能理解的地方请参考man文档概述macchanger是linux下用于查看和修改网络接口mac地址的工具使用方法macchanger [options] device选项-e, --ending不要修改vendor-a, --another设置为一个同类型的MAC&#xff0c;同…

openwrt固定速率_固定速率与固定延迟– RxJava常见问题解答

openwrt固定速率如果您使用的是纯Java&#xff0c;从版本5开始&#xff0c;我们有一个方便的调度程序类&#xff0c;该类允许以固定速率或固定延迟运行任务&#xff1a; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService;Schedu…

如何处理表单中的中文(中文编码/解码问题)

浏览器会如何对表单中的数据进行编码? 当表单采用 post 方式提交时&#xff0c;浏览器会按照打开该表单所在的页面的编码来对表单中的数据进行编码。 在 html 文件当中设置字符编码集&#xff08;即字符编码格式&#xff09; <meta http-equiv"content-type" …