Linux小白第一天——VMware Player 装 CentOS

装机前

硬件基础

AMD和Intel设计理念上把内存控制组集成到CPU里面加速读写
在于AMD用Hyper Transport
Intel使用QPI(Quick Path Interconnect)或DMI(Direct Media Interface)。

组件 概述
CPU 主频 = = = 外频(总线交换数据) × \times × 倍频
微指令集、架构、Cache、计算机制相同时频率才有可比性
字组大小(word size):每次处理的数据量
SRAM(静态随机存储)–L2 Cache
内存 SDRAM、DDR(Double Data Rate)I、II、III
不支持L(低压)的主板会烧!!
双通道:双通道内存有什么优点和缺点? - 木头龙的回答 - 知乎
外频应与CPU一致
电池向CMOS供电,开机后BIOS读写CMOS中的参数,并调用开机程序
硬盘 最小物理单位 旧512B 新4KB
最小组成单位扇区 旧MSDOS柱面 新GPT编号
十进制扇区个数表征硬盘大小
扇区sector=>磁道track=>柱面
外层磁道扇区多=>读写更多数据=>默认外向内
SATA:10bit(2bit用于校验)=1Byte
SAS(Serial Attached Small Computer System Interface)快但贵

USB1.0/2.0/3.0/3.1
现多用固态(Solid State Disk)读写有限寿命短
RAID, Redundant Array of Independent Disks
总线芯片组 北桥现基本集成于CPU中:
总线频宽=前端总线速度(FSB) × \times ×总线宽度(可以与字组大小不同)
南(IO总线)慢
显卡接口 PCI=>AGP(Accelerated Graphics Port)=>PCI Express(1.0~4.0)
管线带宽 × \times ×管线个数
其他适配卡 CPU一般支持PCIe16信道,“16x”信道的插槽仅保留4x的金手指,主板保留多个“假16x信道”,卡与插槽信道数要对应,否则浪费 Linux小白第一天——VMware Player 装 CentOS_第1张图片

Intel的超线程(Hyper-Threading)
两个“管理”(寄存器群)竞争“工人”(运算单元),不需要操作系统分时复用,性能与软件的优化相关(case by case)

开发须知

开源代码授权举例(详细参考OSI协会介绍):
Apache License 2.0
BSD 3-Clause “New” or “Revised” license
BSD 2-Clause “Simplified” or “FreeBSD” license
GNU General Public License (GPL)
GNU Library or “Lesser” General Public License (LGPL)
MIT license
Mozilla Public License 2.0
Common Development and Distribution License
一般来说BSD商业点,GNU学术点
专属/专利软件(close source):
仅放出源代码,Freeware(不收费但要警惕后门)、Shareware(试用型)

Linus Torvalds(芬兰)为了让Unix软件在Linux上能跑,修改Linux接口,参考POSIX( Portable Operating System Interface,ISO/IEC 9945标准制定兼容UnixAPI,bash等的接口)

从 3.0 版开始,核心主要依据主线版本 (MainLine) 开发,开发完毕往下一个主线版本进行,分为EOL(End of Live)和Longterm长期维护,使用“uname -r“ *(unix name)查询版本号确认开发维护状态。

Linux kernel+Software+Tools+Documentation = Lniux distribution
Linux Standard Base (LSB)、File system Hierarchy Standard (FHS)标准

分类 RPM安装 DPKG安装 其他
商业 RHEL(Red Hat) SuSE(Micro Focus) Ubuntu(Canonical Ltd.)
社群 Fedora CentOS OpenSuSE Debian B2D Gentoo

For more distribution
可相容微软Office的OpenOffice / LibreOffice
与Outlook Express相似的ThunderBird
实时通讯用Pidgin
游览器Firefox
QA:"/usr/share/doc"或The Linux Documentation Project

QA礼仪:个人认为可以多平台提问,但在解答后应该立刻关闭除已解答平台外其他平台下的提问,重复回答浪费他人时间,切记!!

文件结构

所有的硬件设备文件基本都在“\dev”路径下:
Linux小白第一天——VMware Player 装 CentOS_第2张图片

设备 文件名
SCSI/SATA/USB /dev/sd[a-p]
VirtI/O界面 /dev/vd[a-p](可能在租用的服务器中见到)
软盘 /dev/fd[0-7]
打印机 /dev/lp[0-2] 或 /dev/usb/lp[0-15]
鼠标 /dev/input/mouse[0-15] 或 /dev/psaux(PS/2界面)
CDROM/DVDROM /dev/scd[0-1] 或 /dev/sr[0-1] 或 /dev/cdrom

基于内核的虚拟机 Kernel-based Virtual Machine(KVM)是一种内建于 Linux® 中的开源虚拟化技术。具体而言,KVM 可帮助您将 Linux 转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(VM)。KVM 于 2006 年首次公布,并在一年后合并到主流 Linux 内核版本中(2.6.20 或更新版本)。由于 KVM 属于现有的 Linux 代码,因此它能立即享受每一项新的 Linux 功能、修复和发展,无需进行额外工程。

分区表的两种格式:

1.MBR(Master Boot Record)
最小分区单位:柱面Cylinder(记录表太小只有32bit地址)。
为与Windows相容Linux使用MBR,整颗磁盘的第一个扇区记录重要信息:
512 B y t e s = 446 B ( M B R 主 要 开 机 记 录 区 ) + 16 B × 4 ( p a r t i t i o n t a b l e 分 区 表 ) + 2 B ( 标 志 位 ∣ 0 x 55 ∣ 0 x A A ∣ ) 512Bytes=446B(MBR主要开机记录区)+16B\times 4(partition table分区表)+2B(标志位|0x55|0xAA|) 512Bytes=446B(MBR)+16B×4(partitiontable)+2B(0x550xAA)
sd[硬件设备号][分区号1~4]
最多4个主分区,每个分区最大为2.2TB
16 B y t e s = 1 B 控 制 标 志 + 3 B 首 扇 物 理 地 址 + 1 B 主 区 类 型 + 3 B 尾 扇 物 理 地 址 + 3 B 首 扇 逻 辑 地 址 + 32 b i t s 扇 区 数 16Bytes=1B控制标志+3B首扇物理地址+1B主区类型+3B尾扇物理地址+3B首扇逻辑地址+\red{32bits}扇区数 16Bytes=1B+3B+1B+3B+3B+32bits

可将至多1个主分区作为 延伸分区。
延伸分区 可分为 逻辑分区(logical partition)。
逻辑分区开头的EBR(Extended boot record)组成的链表记录分区信息

Unlike primary partitions, which are all described by a single partition table within the MBR, and thus limited in number, each EBR precedes the logical partition it describes. If another logical partition follows, then the first EBR will contain an entry pointing to the next EBR; thus, multiple EBRs form a linked list. This means the number of logical drives that can be formed within an extended partition is limited only by the amount of available disk space in the given extended partition. —wikipedia

主分区占用编号1~4,逻辑分区无视主分区编号情况由5号开始计数(MBR分区方式的特征)

2.GPT(GUID partition table)
Linux小白第一天——VMware Player 装 CentOS_第3张图片
使用LBA(Logical Block Address)为作为最小分区单位:扇区。
头34个LBA作分区表,尾33个LBA备份。
LBA0:与MS的MBR相容=开机管理程序+GPT格式标志
LBA1:GPT表头=分区表首址+大小+备份区首址+检验机制码(CRC32,失败通过备份恢复)
LBA2~33:共32个LBA记录分区信息,每个LBA默认:
512 B y t e s = 4 × ( 64 B i t s 首 尾 扇 区 号 + 识 别 码 + 其 他 记 录 ) 512Bytes=4\times (\red{64Bits}首尾扇区号+识别码+其他记录) 512Bytes=4×(64Bits++)
地址容纳空间: 2 64 × 512 B y t e s = 2 73 B = 2 33 T B 2^{64}\times 512Bytes=2^{73}B=2^{33}TB 264×512Bytes=273B=233TB

fdisk、grub1等老程序并不认识GPT格式

开机检测程序

快捷键win+R运行"msinfo32"可以看到BIOS模式是uefi 还是 bios

BIOS
计算机系统主动执行的第一个程序,固件。

BIOS遍历硬件设备
启动磁盘的MBR
运行第一阶段开机引导程序
第二阶段开机引导程序
PBR==Boot Sector??
提供选项菜单
转交其他boot loader
windows的bootmgr
Linux的grub
操作系统内核

GPT格式的LBA0进存放第一阶段开机管理程序
wiki解释
每个分区都有自己的开机扇区(boot sector)
第二阶段开机管理程序存放于(boot sector)
每个boot loader只认识 所在系统分区内的核心文件 和 其他boot loader

双系统先装windows再装Linux
windows安装程序会覆盖(MBR+所在分区的开机扇区)
Linux可修改开机启动程序

UEFI
UEFI背后的历史
Unified Extensible Firmware Interface使用C语言开发的BIOS后辈

操作系统
UEFI
固件Firmware
硬件

准确的说,GPT是硬盘分区表结构布局的标准,是UEFI标准的一部分

- BIOS UEFI
语言 组合语言 C语言
硬件管理 IRQ 载入驱动程序并与之协定(轮询polling)
图形化
安全启动
secure boot
取得GPT分区表 不能

可以看出UEFI功能上接近操作系统,开机更快,但执行效率低(轮询、无完整高速缓存)

关于安全启动
Secure boot is a security standard developed by members of the PC industry to help make sure that a device boots using only software that is trusted by the Original Equipment Manufacturer (OEM). When the PC starts, the firmware checks the signature of each piece of boot software, including UEFI firmware drivers (also known as Option ROMs), EFI applications, and the operating system. If the signatures are valid, the PC boots, and the firmware gives control to the operating system.MS的阴谋?
Linux可能无法通过安全启动验证导致开机失败
个人猜测是通过可靠硬件厂商源码破译修改难度大,来预防cracker在开机阶段通过BIOS取得系统的控制权

Tony老师关于BIOS,UEFI,MBR,PBR等的解释

Linux的目录树(directory tree)

根目录(root directory)是所有数据文件架构的根基,“/”表示
挂载(mount) 将磁盘分区的数据放置在某一目录下,进入分区的目录称为“挂载点”,系统通过挂载点读取磁盘数据
Linux小白第一天——VMware Player 装 CentOS_第4张图片

装机中

主要流程:

  1. BIOS设置(镜像所在硬件开机)
  2. 选择安装模式与开机
  3. 选择语系数据
  4. 软件配置
  5. 磁盘分区
  6. 开机管理+网络+时区+root密码
  7. 安装后设置

下载

由于开源CentOS与商用RedHat完全兼容,本文选用CentOS 8.0
下载地址下载DVD镜像
Linux小白第一天——VMware Player 装 CentOS_第5张图片
下载并安装VMware Workstation Player(针对个人开发已经免费)
Linux小白第一天——VMware Player 装 CentOS_第6张图片
新建虚拟机,配置如下,注意CD/DVD装在下载好的CentOS镜像:
Linux小白第一天——VMware Player 装 CentOS_第7张图片
点击“播放虚拟机”便可开机

边学边装

注意底部有倒计时,迅速“ ↑ \uparrow ”或“ ↓ \downarrow ”调整选项停止倒计时:
Linux小白第一天——VMware Player 装 CentOS_第8张图片
移动到"Install CentOS Linux 8"上,按下“TAB”,输入“inst.gpt”,将默认的MBR分区格式更改为GPT分区格式,回车确认:
Linux小白第一天——VMware Player 装 CentOS_第9张图片
等待一堆侦测:
Linux小白第一天——VMware Player 装 CentOS_第10张图片
接下来是语言和键盘设置,和普通装机一样,不是学习的重点,按喜好设置,“软件选择”,出于学习目的,除.NET开发外我全装了(.NET会引起apk冲突):
Linux小白第一天——VMware Player 装 CentOS_第11张图片
“安装目标位置”开始对硬盘进行设置,选择虚拟机划分的“硬盘”,自定义存储配置:
Linux小白第一天——VMware Player 装 CentOS_第12张图片
点击“+”号手动分区:
Linux小白第一天——VMware Player 装 CentOS_第13张图片
同样的方法依次添加以下分区

分区 建议大小 设备类型
/home 5G LVM
/boot 1G 标准分区
/BIOS Boot 2MB 标准分区
/ 10G LVM
/swap 2G LVM

可以修改卷组名称为”CentOS“,大小为30G,留出一部分给后续实验用
Linux小白第一天——VMware Player 装 CentOS_第14张图片
“完成”后,VMware分配的是空硬盘,所以执行的操作就是建立分区表
Linux小白第一天——VMware Player 装 CentOS_第15张图片
Linux小白第一天——VMware Player 装 CentOS_第16张图片
设置一下网络和主机名
Linux小白第一天——VMware Player 装 CentOS_第17张图片
Linux小白第一天——VMware Player 装 CentOS_第18张图片
Linux小白第一天——VMware Player 装 CentOS_第19张图片
接下来开始安装,安装期间要设置“root密码”和“一般身份”,非管理员的一般身份具有很强的安全性,日常使用使用足够,建议创建用户
Linux小白第一天——VMware Player 装 CentOS_第20张图片
可以将“一般身份”设置为与管理员权限一样,输入密码才有管理员的权限
Linux小白第一天——VMware Player 装 CentOS_第21张图片
Linux小白第一天——VMware Player 装 CentOS_第22张图片
后续步骤都很常规,不再列举
注意,系统信息,密码等,都会被记录到"/root/anaconda-ks.cfg"文件中
通过在终端中输入"su -"和管理员密码,来获取root权限,之后使用“cd /root”到达根目录,“ls”命令查看路径下的文件,"vi anaconda-ks.cfg"查看配置文件的内容,使用ctrl+z退出回到终端
Linux小白第一天——VMware Player 装 CentOS_第23张图片
anaconda是Red Hat的自动安装程序,也可以google关键字kickstart了解详情(坑,有空填上)
完成后可以检测一下宿主机与虚拟机之间的网络互通性
在CentOS终端内输入 ip address获取ip信息,通常CentOS将VMware分配的虚拟网卡命名为ens33
Linux小白第一天——VMware Player 装 CentOS_第24张图片
在宿主机(如Win10系统)终端输入ipconfig /all 获取宿主ip
Linux小白第一天——VMware Player 装 CentOS_第25张图片
接下来便可以在宿主机内ping虚拟机地址
Linux小白第一天——VMware Player 装 CentOS_第26张图片
或虚拟机内ping宿主机
Linux小白第一天——VMware Player 装 CentOS_第27张图片
本文使用的NAT模式,可以考虑换到桥接模式
Linux小白第一天——VMware Player 装 CentOS_第28张图片

你可能感兴趣的:(操作系统,Linux)