AMD和Intel设计理念上把内存控制组集成到CPU里面加速读写
在于AMD用Hyper Transport
Intel使用QPI(Quick Path Interconnect)或DMI(Direct Media Interface)。
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礼仪:个人认为可以多平台提问,但在解答后应该立刻关闭除已解答平台外其他平台下的提问,重复回答浪费他人时间,切记!!
设备 | 文件名 |
---|---|
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(标志位∣0x55∣0xAA∣)
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)
使用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
计算机系统主动执行的第一个程序,固件。
GPT格式的LBA0进存放第一阶段开机管理程序
wiki解释
每个分区都有自己的开机扇区(boot sector)
第二阶段开机管理程序存放于(boot sector)
每个boot loader只认识 所在系统分区内的核心文件 和 其他boot loader
双系统先装windows再装Linux
windows安装程序会覆盖(MBR+所在分区的开机扇区)
Linux可修改开机启动程序
UEFI
UEFI背后的历史
Unified Extensible Firmware Interface使用C语言开发的BIOS后辈
准确的说,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等的解释
根目录(root directory)是所有数据文件架构的根基,“/”表示
挂载(mount) 将磁盘分区的数据放置在某一目录下,进入分区的目录称为“挂载点”,系统通过挂载点读取磁盘数据
主要流程:
由于开源CentOS与商用RedHat完全兼容,本文选用CentOS 8.0
下载地址下载DVD镜像
下载并安装VMware Workstation Player(针对个人开发已经免费)
新建虚拟机,配置如下,注意CD/DVD装在下载好的CentOS镜像:
点击“播放虚拟机”便可开机
注意底部有倒计时,迅速“ ↑ \uparrow ↑”或“ ↓ \downarrow ↓”调整选项停止倒计时:
移动到"Install CentOS Linux 8"上,按下“TAB”,输入“inst.gpt”,将默认的MBR分区格式更改为GPT分区格式,回车确认:
等待一堆侦测:
接下来是语言和键盘设置,和普通装机一样,不是学习的重点,按喜好设置,“软件选择”,出于学习目的,除.NET开发外我全装了(.NET会引起apk冲突):
“安装目标位置”开始对硬盘进行设置,选择虚拟机划分的“硬盘”,自定义存储配置:
点击“+”号手动分区:
同样的方法依次添加以下分区
分区 | 建议大小 | 设备类型 |
---|---|---|
/home | 5G | LVM |
/boot | 1G | 标准分区 |
/BIOS Boot | 2MB | 标准分区 |
/ | 10G | LVM |
/swap | 2G | LVM |
可以修改卷组名称为”CentOS“,大小为30G,留出一部分给后续实验用
“完成”后,VMware分配的是空硬盘,所以执行的操作就是建立分区表
设置一下网络和主机名
接下来开始安装,安装期间要设置“root密码”和“一般身份”,非管理员的一般身份具有很强的安全性,日常使用使用足够,建议创建用户
可以将“一般身份”设置为与管理员权限一样,输入密码才有管理员的权限
后续步骤都很常规,不再列举
注意,系统信息,密码等,都会被记录到"/root/anaconda-ks.cfg"文件中
通过在终端中输入"su -"和管理员密码,来获取root权限,之后使用“cd /root”到达根目录,“ls”命令查看路径下的文件,"vi anaconda-ks.cfg"查看配置文件的内容,使用ctrl+z退出回到终端
anaconda是Red Hat的自动安装程序,也可以google关键字kickstart了解详情(坑,有空填上)
完成后可以检测一下宿主机与虚拟机之间的网络互通性
在CentOS终端内输入 ip address获取ip信息,通常CentOS将VMware分配的虚拟网卡命名为ens33
在宿主机(如Win10系统)终端输入ipconfig /all 获取宿主ip
接下来便可以在宿主机内ping虚拟机地址
或虚拟机内ping宿主机
本文使用的NAT模式,可以考虑换到桥接模式