Linux操作系统学习(一)、Linux是什么与如何学习

Linux

软件移植

如果一个操作系统适应了一套硬件,但是当新的硬件产品出现之后,这个操作系统就不适用了,所以我们又得去修改操作系统,这种概念就叫做软件移植。

可移植性

由于Linux是开源的操作系统,所有他的程序码可以被修改成适合在各种机器上面运行的,也就是Linux是具有“可移植性”。

Linux文件系统的重要概念

  1. 所有程序或系统设备都是文件
  2. 不管构建编辑器还是附属文件,所写的程序只有一个目的,且要有效的完成目标

linux distribution = kernel + softwares + Tools + 可完整安装的程序

distribution主要分为两大系统套件管理系统:

1.RPM方式安装软件的系统

2.Debian的dpkg方式安装软件的系统

RPM 软件管理 DPKG 软件管理 其他未分类
商业公司 RHEL (Red Hat 公司) SuSE (Micro Focus) Ubuntu (Canonical Ltd.)
社群单位 Fedora CentOS OpenSuSE Debian B2D Gentoo

我们知道操作系统的主要目的是用来控制硬件的,那么主要控制硬件哪些功能呢:

  1. 输入输出控制
  2. 设备控制
  3. 进程管理
  4. 文件管理

所谓的多用户多任务是什么意思:

多用户:多个用户共同连接到同一个服务器,他们所处的环境不同但是可以共用服务器中的资源

多任务:在Linux环境下多个任务时,cpu可以同时进行多项工作,

主机规划与磁盘分区

Linux系统中所有的硬件设备文件都在 /dev 这个目录内

设备 设备在Linux内的文件名
SCSI/SATA/USB硬盘机 /dev/sd[a-p]
USB闪存盘 /dev/sd[a-p] (与SATA相同)
VirtI/O界面 /dev/vd[a-p] (用于虚拟机内)
软盘机 /dev/fd[0-7]
打印机 /dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15] (USB 接口)
鼠标 /dev/input/mouse[0-15] (通用) /dev/psaux (PS/2界面) /dev/mouse (当前鼠标)
CDROM/DVDROM /dev/scd[0-1] (通用) /dev/sr[0-1] (通用,CentOS 较常见) /dev/cdrom (当前 CDROM)
磁带机 /dev/ht0 (IDE 界面) /dev/st0 (SATA/SCSI界面) /dev/tape (当前磁带)
IDE硬盘机 /dev/hd[a-d] (旧式系统才有)

其中[]是指括号里的任意一个

windows是以磁盘进行分区,而Linux设备都是以文件的形式存在,

那分区的文件名是什么?

不同的设备有着不同的文件名,这是由于Linux内部所决定的,但是当两个相同设备同时接入时,是如何做到区分的呢,答案就是根据Linux内部扫描到的顺序然后按照顺序排列即可。

如何进行磁盘分区?

早期的分区格式时MBR格式,也就是第一个扇区保留着重要的信息

后面的GPT(磁盘分区表)格式,是新版的硬盘存储格式,为了解决硬盘内存扩大数据量多的问题

磁盘分区有哪些限制? MSDOS(分区表格式与限制)与GPT(磁盘分区表)又是什么?

MSDOS

过去:由于磁道加上Z轴组成的柱面,作为磁盘分区的最小单位,也是文件系统的最小单位。

现在:可以使用一个扇区作为分区单位,通过扇区的号码来区分,达到最小64bit。

MSDOS:第一个扇区共有512bytes大小,其中包含着446bytes的MBR(主要开机记录区 main boot record)和64bytes的分区表(partition table)。

其中分区表又记录着每个区域该区域段的起始和结束地址,通过分区表可以快速定位柱面位置,一共有4个区域段也就是有4个记录区(记录区就相当于柱面)

在windows系统中通常将这种分区分为C盘 D盘 F盘等

在Linux中通常使用文件名后面加一个数字:/dev/sda1、/dev/sda2…/dev/sda4

利用分区,可以让数据更加安全,例如第一个区域的数据不会影响第二数据
数据的快速查找和利用,磁盘只会搜索该区域中的内容

Linux操作系统学习(一)、Linux是什么与如何学习_第1张图片

主要分区和延申分区最多只能分为4份

开机管理程序存放位置:MBR

延伸分区:

延申分区的含义就是用其他扇区(不在使用第一扇区)去记录硬盘分区的起始和结束地址。

例如,我用第二扇区分区表记录其余分区

L1:101~160
L2:161~220
L3:221~400

Linux操作系统学习(一)、Linux是什么与如何学习_第2张图片

  • P1:/dev/sda1

  • L1:/dev/sda5

  • L2:/dev/sda6

  • L3:/dev/sda7

    为什么延申分区的设备号从5开始呢,因为前面的设备都被保留给主分区和延申分区

拓展下:主分区1~100

​ 延申分区101~400

而L1、L2、L3属于逻辑分区但占用的还是延申分区空间大小,是将延申分区切割之后的分区,就被称为逻辑分区

所以如果某个单一延申分区被破坏之后,所有的逻辑分区都将会破坏。

提问

假如我的PC有两颗SATA硬盘,我想在第二颗硬盘分区出6个可用的分区(可以被格式化来存取数据之用), 那每个分区在Linux系统下的设备文件名为何?且分区类型各为何?至少写出两种不同的分区方式。

P + E 最多为 4

E 最多为1

6个可用的分区,所以P 6个或者E 6个就会被 P+E所排除

6个可用的分区,所以P2,E2就会被 E 最多为1排除

只剩下P1,E3

P1:/dev/sda1
L1:/dev/sda5
L2:/dev/sda6
L3:/dev/sda7
L4:/dev/sda8
L5:/dev/sda9

或者P3,E1

P1:/dev/sda1
P2:/dev/sda2
P3:/dev/sda3
L1:/dev/sda5
L2:/dev/sda6
L3:/dev/sda7

GUID

Linux操作系统学习(一)、Linux是什么与如何学习_第3张图片

  1. 每个LBA具有512bytes大小
  2. 下面的LBA34-1相当于上面LBA0-33的备份
  3. LBA0 和MBR格式类似,都含有446bytes大小的开机管理程序,但是剩下的空间装有特殊标识,用来区别硬盘分区格式是GUID
  4. LBA1存放着分区表的大小和地址,同时记录着最后34个LBA块的地址
  5. 从LBA2开始每个空间被分为218bytes大小,也就是和分区表一样分为4个空间
  6. 每个被分的空间都可以被格式化,都被视为主区

开机检测程序

目前的BIOS与UEFI分别是啥?

BIOS

请添加图片描述

CMOS中存储着基本的硬件信息并且嵌入到主板上的存储器,可以给BIOS程序提供数据,

而BIOS是一段写在主板上的一个固件中的程序

此时BIOS程序就会寻找能够开机进入的硬盘,发现硬盘之后,就会在硬盘的第一个扇区的MBR处找到大小为446bytes大小的开机启动程序

此时BIOS不工作,开机启动程序工作,就会识别硬盘中的核心文件并读取,最后由核心文件启动操作系统完成开机。

如果硬盘格式为GPT的话,也可以从LBA0的MBR处读取到开机启动程序

所以通过上述:我们知道BIOS和MBR都会仅有硬件去提供,而真正的程序Boot loader是由开机启动程序完成

boot loader的功能:
1.可以由操作者选用不同的开机项目
2.载入核心文件开始操作系统
3.移交给其他的loader:将开机管理功能移交给其他的loader负责(??)
***
移交给其他的loader就表示你的系统中含有多个开机管理程序,有可能不只在第一扇区的MBR中存在开机管理程序,每个分区都含有一个叫做boot sector的分区,其中也可以存放开机管理程序。所以我们只需要在MBR中设置一个菜单,让用户去选择启动那个操作系统。

UEFI

没见过,只了解一下即可

比较项目 传统 BIOS UEFI
使用程序语言 组合语言 C 语言
硬件资源控制 使用中断 (IRQ) 管理 不可变的内存存取 不可变得输入/输出存取 使用驱动程序与协定
处理器运行环境 16 位 CPU 保护模式
扩充方式 通过 IRQ 链接 直接载入驱动程序
第三方厂商支持 较差 较佳且可支持多平台
图形化能力 较差 较佳
内置简化操作系统前环境 不支持 支持

一般来说,使用 UEFI 接口的主机,在开机的速度上要比 BIOS 来的快上许多

UEFI硬件资源的管理使用轮询 (polling) 的方式来管理,与 BIOS 直接了解 CPU 以中断的方式来管理比较, 这种 polling 的效率是稍微慢一些的

Linux下的磁盘分区选择

Linux操作系统学习(一)、Linux是什么与如何学习_第4张图片

方框代表文件夹,波浪代表文件

Linux的所有数据都是以文件的形式存在,所以Linux最重要的机制就是目录树(directory tree)机制,要寻找mydata这个地址,我们需要从根目录开始(/),层层递进:

/home/dmtsai/mydata

文件系统与目录树

将文件放在目录之下,这一操作我们称之为挂载
而被操作的目录我们称为挂载点
Linux操作系统学习(一)、Linux是什么与如何学习_第5张图片

当我想要知道/home/vbird/test这个文件在哪个partition时,倒着推导发现是在/home这个进入点,而不是/。

windows中的光驱有着单独的代号(例如E盘)
Linux下的光驱的中的文件在 /media/cdrom下

撰写不易,留下您的关注和点赞,我们一起进步!

你可能感兴趣的:(Linux操作系统,linux,学习,运维)