Linux简介


一、Linux 历史

1.Linux来源

Linux是一套操作系统,开源,具有可移植性。其产生与Unix 和C 语言密切相关.

  • Unix 的前身是由贝尔实验室的Ken Thompson利用汇编语言写成的,后来在1971-1973年由Dennix Ritchie 用C程序语言改写,才成为Unix
  • 1977年由Bill Joy开发BSD(Berkeley Software Distribution),即Unix-like的操作系统
  • 1984年由Andrew Tanenbaum 制作Minix操作系统,该系统可以提供原始码和软件
  • 1984年由Richard Stallman体长GNU计划,倡导自由软件,强调可以自由的取得,复制,修改与再发行,并规范出GPL授权模式,任何GPL授权的软件不可单纯仅贩卖其软件。也不可修改软件授权
  • 1991年由芬兰人Linus Torvalds开发出Linux操作系统,成功的地方在于Minux(Unix),GNU,Internet,POSIX及虚拟团队的产生
  • 符合Open Source理念授权的有Apache/BSD/GPL/MIT等
  • GPL授权的自由软件:自由软件是指有自由度的软件,使用者可以自由的执行、复制、再发行、学习、修改与强化的自由软件,不代表免费,修改后不能取消GPL授权和贩卖
  • 开源软件:开放原始码
  • 专属软件/专利软件: 仅推出可执行的二进制程序

2. Linux核心版本编号:

  从Linux kernel3.0开始,已经设计奇数偶数的核心版本规划,新的规划使用主线版本为依据,并提供长期支持版本来加强某些功能的持续维护

3. Linux发布商版本(distribution):

Linux distribution 的组成含有 Linux Kernel +Free Software +Documentations (Tools)+可完全安装的程序所制成的一整套系统 

  • 主要分为两大系统:
    • 使用RPM 方式安装:Red Hat, Fedora, SuSE等
    • 使用Debian的dpkg安装:Debian,Ubuntu,B2D等

二、主机规划与磁盘分区

1. Linux与硬件的搭配

  • 计算机硬件配备需要考虑 游戏机/工作机,效能/性价比,效能/消耗瓦数,支持度等,针对显示适配器,CPU,主板芯片等
  • Linux的硬件需求考虑CPU,RAM,Hard Disk,VGA, 网络卡等

  •  硬件在Linux的文件名:Linux 系统中,每个装置都被当成一个文件对待,IDE接口的硬盘文件接口为/dev/sd[a-d],如/dev/sda

  目前IDE界面的磁盘驱动器都被淘汰了,磁盘文件名也被仿真为/dev/sd[a-p],为了加速,虚拟机内的磁盘使用仿真器产生,其磁盘文件吗是/dev/vd[a-p]

  SATA/USB接口的磁盘文件命名根据Linux核心侦测到的磁盘顺序命名

2.磁盘分区

磁盘分区表有两种格式,分区槽的最小单位通常为磁柱,有些可以拓展为扇区

2.1 MSDOS(MBR)分区表格式

  开机管理程序记录区与分区表通常放在磁盘的第一个扇区,512bytes,包含了主要启动记录区(MBR,可以安装开机管理程序的地方,446bytes),分区表(记录整颗硬盘扽去的状态,64bytes)

  • 由于分区表所在区块仅有64bytes,因此最多仅能有4组记录区,每组记录区记录了该区段的起始与结束的磁柱号码,分区的记录被称为主要或延申分区槽

  • 延伸分区的目的是使用额外的扇区记录分区信息,本身并不能被格式化,可以通过延伸分区所指向的区块继续做分区记录
  • 由延伸分区切出来的分区槽叫逻辑分区槽,其可以使用的磁柱范围是延伸分区设定的范围,装置名称号码从5开始,前面四个号码保留给主要或延申分区槽

MBR的主要分区、延伸分区与逻辑分区的特性:

  • 主要分区与延伸分区最多可以有四个(硬盘限制)
  • 延伸分区最多有一个(操作系统的限制)
  • 逻辑分区是由延伸分区持续切割出来的分区槽
  • 能够被格式化后作为数据存取的分区槽为主要分区与逻辑分区,延伸分区无法格式化
  • 逻辑分区的数量依据操作系统不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制

2.2 GUID ,GPT磁盘分区表

GPT利用了34个LBA(逻辑区块地址,预设为512bytes)区块记录分区信息,第一个LBA为LBA0

  • LBA0:MBR相容区块,分为两个部分,储存了启动开机管理程序446bytes,在另一部分分区表中的记录区内,仅放入一个特殊标志的分区,表示磁盘为GPT格式
  • LBA1:GPT表头信息,记录了分区表本身的位置与大小,同时记录了备份用的GPT分区(最后34个LBA区块)放置的位置和分区表的检验机制码CRC32,操作系统可以根据检验码判断GPT是否正确,也可以通过这个记录区取得备份的GPT(磁盘最后的备份区块)进行恢复
  • LBA2-33:实际记录分区信息处,每个LBA记录4笔分区记录,默认情况下总共有4*32=128笔分区记录,每笔记录用128bytes。分区记录了每笔记录所需要的标识符和记录内容外,还提供了每笔记录64位空间来记载开始-结束的扇区号码,因此每个单一分区槽的最大容量限制位 2^64*512bytes=8ZB=8*2^30TB
  • GPT没有所谓的主、延申、逻辑分区的概念,每笔记录都可以独立存在,都可以视为主分区,可以被格式化
  • 并不是所有的操作系统都可以读取到GPT的磁盘分区格式,GPT格式与开机检测程序有关
  • 如果磁盘容量大于2TB以上,系统会自动使用GPT分区方式处理磁盘分区

3. 开机检测程序

开机流程由  BIOS-->MBR-->boot loader -->核心文件

boot loader 的主要功能有提供选单、加载核心、转交控制权给其他loader,可以安装在MBR或者boot sector

3.1 BIOS 搭配MBR/GPT的开机流程

  • BIOS:开机主动执行
  • MBR:开机装置的第一个扇区的主要启动记录区快,内含开机管理程序
  • 开机管理程序:可读取核心文件的执行软件,用于加载核心文件,除了可以安装在MBR外。还可以安装在每个分区槽的启动扇区
  • 核心文件:操作系统的功能

3.2  UEFI BIOS搭配GPT开机流程

UEFI使用C语言只需要加载驱动程序即可控制操作,开机速度比BIOS快

4. Linux磁盘分区

目录树架构以根目录为主,向下呈现分支状 根目录表示为/

 挂载: 利用一个目录当作进入点,将磁盘分区的数据放置在该目录下,进入该目录就可以读取该分区槽,根目录一定需要挂载到某个分区槽

自定义分区安装Custom: 只要分区根目录/和swap 即可;