Linux私房菜笔记

1.磁盘分区

      在Linux系统中,每个装置都被当成一个文件来对待,正常实体机使用/dev/sd[a-p]的磁盘文件名,而在虚拟机环境下,为了加速,可能会使用/dev/vd[a-p],由Linux核侦测到磁盘的顺序来决定磁盘名。
       磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达,数据的写入是在磁盘盘面上,盘面可以分出扇区和磁道,扇区物理大小可分为512bytes和4Kbytes,而所有磁盘盘的同一磁道称为磁柱。

1.1MBR分区

​ MBR在磁盘第一个扇区用512bytes来处理开机管理程序(446bytes)与分区表(64bytes),64bytes的分区表最多仅有4组记录区,记录了该区段的起始与结束的磁柱号码,4组分区信息主要称为主要或延伸分区槽,分区槽最小单位为磁柱,如果要四个以上分区,则需要通过延伸分区槽使用额外扇区来记录分区信息,通过延伸分区槽继续切出来的分区槽称为逻辑分区槽

  • 主要分区槽和延伸分区槽最多可以有四个,延伸分区槽最多一个;
  • 逻辑分区由延伸分区持续切割出来的分区槽;
  • 能够被格式化后,作为数据存储的分区槽为主要分区与逻辑分区,延伸分区无法格式化,由于延伸分区起始扇区被用于逻辑分区表管理,如果延伸分区被破坏,所有逻辑分区将被删除;
  • 由于每组分区表仅有16bytes,所有无法记录大于2.2TB以上的磁盘容量,且仅有一个区块,被破坏后很难救援;
1.2GPT分区

​ 将磁盘所有区块以逻辑区块地址(Logical Block Address,LBA,预设为512bytes)来规划,使用34个LBA区块来记录分区信息,并使用磁盘的最后33个区块做备份。

  • LBA0(MBR兼容区块):分为446bytes的开机管理程序区块和标志GPT分区区块;
  • LBA1(GPT表头记录):记录分区表本身的位置和大小、备份用到的GPT分区放置的位置以及分区表校验机制码(CRC32),可以根据校验码判断GPT是否正确和通过记录区取得备份GPT来恢复运作;
  • LBA2-33(实际记录分区信息):每个LBA可记录4笔分区,所以默认情况下总共可以有4*32=128笔分区记录;每笔分区记录分别提供了64bits记录开始/结束扇区号码;
比较项 传统BIOS UEFI
使用程序语言 汇编 C
硬件资源控制 使用中断(IRQ)管理,不可变的内存存取,不可变的输入/输出存取 使用驱动程序与协议
处理器运作环境 16位 CPU保护模式
扩充方式 透过IRQ连接 直接加载驱动程序
第三方厂商支持 较差 较佳可支持多平台
图形化能力 较差 较佳
内建简化操作系统前环境 不支持 支持

2.开机流程

1)BIOS搭配MBR/GPT的开机流程
       计算机系统在开机时会主动执行的第一个程序也就是BIOS,BIOS会分析计算机里有哪些存储设备,并依据设定取得开机的硬盘,到该硬盘里面去读取第一个扇区的MBR位置中的开机管理程序(boot loader),boot loader的主要任务有:

  • 提供选单:用户可以选择不同的开机项目,也是多重引导的重要功能;
  • 载入核心文件:直接指向可开机的程序区段来开始操作系统;
  • 转交其他loader:将开机管理功能转交给其他loader负责,bootloader除了可以在MBR之外,还可以安装在每个分区槽的启动扇区;

2)UEFI搭配GPT的开机流程: 与BIOS直接了解CPU以中断方式管理硬件资源比较,UEFI使用轮询方式,且UEFI不提供快取功能,不过加载所有的UEFI驱动程序后,会开启一个类似操作系统的shell环境来执行任意的UEFI应用程序。UEFI加入了安全启动装置(secure boot),代表即将开机的操作系统必须要被UEFI所验证,否则无法顺利开机。

3.系统目录树结构

       最重要的是根目录,用斜线'/'表示,而文件系统与目录树通过挂载关联,利用一个目录作为进入点,将磁盘分区槽的数据放置在该目录下。

Linux私房菜笔记_第1张图片

  • /bin:存放最常使用的命令;
  • /boot:存放启动Linux时使用的核心文件,包括镜像文件以及连接文件;
  • /dev:存放Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的;
  • /etc:存放所有系统管理所需的配置文件和子目录;
  • /home:用户主目录;
  • /mnt:为了用户临时挂载别的文件系统;
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录;
  • /srv:存放服务启动之后需要提取的数据;
  • /usr:存放用户的应用程序和文件,类似于windows下的program files,/usr/bin存放用户使用的应用程序,/usr/src则是内核源代码默认的放置位置;
  • /var:存放不断扩张的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件;

4.文件权限与目录管理

用户与用户组:Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others;账号信息记录在/etc/passwd文件内,密码记录在/etc/shadow文件下,所有组名记录在/etc/group内。

4.1文件属性
drwxr-xr-x     2    root  root 4096  Dec 14  2018  bin  
[    权限   ][连接][所有者][群组][大小][  修改日期   ][档名]

①文件权限

​ Linux对不同的用户访问同意文件的权限做了不同的规定,每个文件的权限属性对应其属性的第一栏,由下图所示的10个字符来确定:

Linux私房菜笔记_第2张图片
  • Linux中第0位代表这个文件的类型:[d]代表目录;[-]代表文件;[l]代表连接文档;[b]代表装置文件里可供存储的借口设备(可随机存取装置);[c]代表装置文件里的串行端口设备,如键盘、鼠标(一次性读取装置)
  • 第1-3位确定文件所有者拥有该文件的权限;
  • 第4-6位确定所有者同组用户拥有该文件的权限;
  • 第7-9位确定其他用户拥有该文件的权限;

       其中,(1,4,7)表示读权限,用'r'表示,如果是'-',则没有权限;(2,5,8)表示写权限,用'w'表示,如果是'-',则没有权限;(3,6,9)则表示可执行权限,用'x表示',如果是'-',则没有权限。

②连接

​ 第二栏表示有多少档名连接到此节点(i-node);

4.2修改文件属性与权限
  • chgrp [-R] 组名 文件/目录名:改变文件所属群组,[-R]选项递归变更,连同此目录下的所有文件、目录都更新群组,群组名必须存在;

  • chown [-R] 账户名称/账户名称:组名 文件名/目录 :改变文件所有者,还可以同时修改组名;

  • chmod [-R] xyz 文件/目录名:改版文件的权限,xyz为三种权限的rwx分数相加,r=4,w=2,x=1;或者使用如下所示命令,u,g,o,a分别代表user,group,other和所有人,+-=分别是对权限的增加删除以及设定,rwx则是具体操作的权限;

    chmod + (ugod) + (+-=) + (rwx) + (文件或目录名)
    
4.3目录与文件的权限意义

①文件的权限

  • r(read):可读取此文件的实际内容;
  • w(write):可以编辑、新增或者修改该文件的内容,但不含删除该文件;
  • x(eXecute):具有被系统执行的权限,执行与否跟档名没有绝对关系;

②目录的权限

  • r(read contents in directory):表示具有读取目录结构列表的权限,可查询该目录下的文件名数据;
  • w(modify contents of directory):表示具有改的目录结构列表的权限:建立新的文件/目录;删除已存在的文件/目录(无论该文件的权限如何);将已存在的目录/文件改名;搬移该目录内的文件、目录位置;
  • x(access directory):表示用户能否进入该目录成为工作目录;

你可能感兴趣的:(Linux私房菜笔记)