通过前面的介绍想必大家对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来等待用户登录。

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

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

接下来我们说说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的分区。

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

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

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

/dev/shm将在以后讲解。

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

今天就到这里吧!

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

  1. Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat

    Linux系统安全与应用(二)--安全机制.安全控制.弱口令检测JR.网络扫描NMAP和控制台命令Netstat 一.使用sudo机制提升权限 1.su命令的缺点 2.sudo的用途和用法 3.配置s ...

  2. Linux系统-小倒腾之Linux DIY定制裁剪(New kernel+Busybox)o_o(二)

    在前面的<Linux系统-小倒腾之Linux DIY定制裁剪(附带简单网络功能)o_o(一)>博文中,我通过对一个Linux系统的裁剪,最终制作出来了一个带有网络功能的微型Linux系统; ...

  3. git 的安装以及使用:是一个开源的分布式版本控制系统,可以对项目进行版本管理。 早期是linux之父用来管理linux系统源代码的(linux是和windows一样操作系统 开源免费的操作...

    ## 总结 - 学会使用基本的git命令 管理源代码 - 学会去github创建仓库 并将代码上传到github的仓库 (有待完成 回家有网再push) - 了解本地的.git和服务器github的. ...

  4. Linux系统下海康工业相机MVS二次开发-Python

    文章目录 Linux系统下海康工业相机MVS二次开发-Python Linux系统下海康工业相机MVS二次开发-Python 环境:树莓派 Ubuntu系统 编程环境:Python3.7 Node(忘 ...

  5. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

  6. 诺基亚n1装入Linux系统,实验一:linux系统安装与初用

    1.linux的发行版本.内核版本两者之间的区别与联系 linux内核是一个提供硬件抽象层.磁盘及文件系统控制.多任务等功能的系统软件,它不是一套完整的操作系统,而是linux操作系统的核心组件,它会 ...

  7. Linux系统磁状态检测,检测Linux硬件状态

    计算机系统是由软件系统和硬件系统共同组成的.检测硬件状态对于保障整个系统的稳定是非常重要的.不论操作系统是使用Linux.还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了.这里我们主要 ...

  8. linux系统制作系统盘,制作Linux启动盘的四种方法

    1.使用mkbootdisk工具为当前系统制作启动盘 mkbootdisk --device /dev/fd0 `uname -r` 参数说明:--device /dev/fd0是要建立启动软盘,也是 ...

  9. linux设置sfq队列参数,Linux系统运维之Linux高级流量控制工具TC使用方法

    Linux系统运维之Linux高级流量控制工具TC使用方法 本文标签: 运维 流量劫持 Linux系统运维之Linux高级流量控制工具TC使用方法, 在做MHA测试的时候,有一个重要的环节就是测试MH ...

  10. linux系统查看串口占用,Linux 系统串口信息查看

    先确认系统启动的时候串口的信息. ECM_5412@chenfl:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 2.511678] ...

最新文章

  1. poj1002(map的使用)
  2. 为你的组织设计自己的障碍消除流程
  3. 1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点
  4. 浅谈分库分表那些事儿
  5. C# Winform下载文件并显示进度条
  6. linux route 刷新_linux基础命令介绍十五:推陈出新
  7. 抖音ai智能机器人挂机_电销秘诀 电销企业难以拒绝的AI智能电销机器人
  8. Sqlite 管理工具收藏
  9. 一个简单的PHP邮件列表管理器
  10. ONNX系列一 --- 带有ONNX的便携式神经网络
  11. 集体智慧编程第二章之提供推荐
  12. 有没有可以帮忙lua解密一下的大概是这样一个压缩包
  13. linux怎么生成arm文件,Linux下ffmpeg转换工具配置(MP3和AMR格式文件互转).docx
  14. 从《天龙八部 3D》到《诛仙》手游,我们如何连续做出成功产品?
  15. 无根树任意根深度加强版
  16. 洛谷 P2014 选课
  17. Obsolete特性
  18. 未来20年内,无人驾驶将颠覆这33大行业
  19. 【朝花夕拾】Lint使用篇
  20. 十位语言大师给你的英语学习建议

热门文章

  1. app访问java web_Java Web App体系结构
  2. java 并发的原子性_Java并发教程–原子性和竞争条件
  3. Spring Framework中的作用域代理
  4. 功能Java示例 第7部分–将失败也视为数据
  5. 使用Maven将文件上传和下载到S3
  6. spring 4.3.x_如何在Spring 3.x中使用事件
  7. java web服务_将Java服务公开为Web服务
  8. 使用Selenide进行有效的UI测试
  9. 基于JBoss Fuse 6.2的JBoss BPM微服务集成指南
  10. JavaFX技巧18:路径剪切