Chapter 2 安装 Linux
2.1 硬件组成
(冯·诺依曼结构)
运算器
CPU,算术逻辑单元
控制器
CPU,控制单元
存储器
RAM (random access memory)
ROM (read-only memory)
只读存储器,可以用来存储BIOS等固件
辅助存储,例如机械硬盘(磁)、固态硬盘(半导体)、光盘(光学)等外置存储器
输入设备
输出设备
2.1.1 CPU
2.1.1.1 CPU的架构
复杂指令集(CISC, Complex Instruction Set Computer)
复杂指令集的特点是指令数目多而复杂,每个指令可执行若干低端操作,诸如从存储器读取、存储、和计算操作,全部集于单一指令之中
精简指令集(RISC, Reduced Instruction Set Computer)
精简指令集对指令数目和寻址方式都做了精简,相比CISC的单一复杂指令,RISC用更精简的一系列指令来完成同一个任务
2.1.1.2 CPU如何工作
2.1.1.2.1 寄存器
一个CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。简单的说,在CPU中,运算器进行信息处理、寄存器进行信息存储。下面列举了几个寄存器:
通用寄存器
ax:通常用于执行加法,函数调用的返回值也放在这里面
bx:通常用于存取数据
cx:通常用于计数,例如for循环
sp:栈顶指针
sb:栈底指针
段寄存器
cs:代码段
ds:数据段
ss:栈段
es:扩展段
指令寄存器
ip:始终指向CPU要执行的指令
2.1.1.2.2 指令
那怎么操作这些寄存器呢?CPU只认识机器指令,可以用二进制码直接控制CPU
例如,将bx中的内容写入ax中:
机器指令:1000100111011000
但是,机器语言难以读懂、记忆和查错。于是汇编语言诞生了
汇编指令:mov ax,bx
汇编指令是机器指令的助记符,用汇编语言写好的程序,翻译成机器指令,就能运行了。
假如我们要计算123*456,可以这样写:
mov ax,0
mov cx,123
s:add ax,456
loop s
将它编译运行之后,CPU是这样工作的:
首先程序加载到内存中,CS:IP指向第一条指令:将ax设为0,
然后IP自加该指令的长度,CS:IP就指向了下一条指令:将cx设置为123,以此类推
当执行到 loop s
时,如果cx大于零,CS:IP就会回到标记 s:
处,cx自减1,
等最后cx减到0,循环已经执行了123次,ax中就是123个456相加,即123*456的结果
2.2 时间与日期
date:显示日期时间
date “+%Y-%m-%d %H:%M:%S” 指定格式
date -s 字符串时间:设置时间
举例:
date -s 11:11:11
、date -s "2021-12-02 20:21:12"
[root@CentOS ~]# touch `date +%F`_file.txt
[root@CentOS ~]# ls
2019-03-16_file.txt
- cal:显示当月日历
- cal 2021:显示2021年的日历
yum install ntp -y
- 时间同步
ntpdate ntp.aliyun.com
- 开启本地NTP服务器
service ntpd start
,其他服务器可以ntpdate 服务器IP
进行同步 - 配置文件
/etc/ntp.conf
2.3 网络连接
IP:网络地址+主机地址
子网掩码(subnet mask):与IP逻辑与运算,可分割网络地址和主机地址
网关(Gateway):转发其他服务器通信数据的服务器
虚拟机网络连接的三种模式:
桥接模式
bridged
虚拟系统可以和外部系统通讯,但是容易造成IP冲突
NAT模式
network address translation,网络地址转换
虚拟机可以和访问外部网络,但是外部系统无法访问虚拟机不会造成IP冲突
仅主机模式
host-only
独立的系统,不与外部发生联系
关于网络的配置,这里提供两种方式:
2.3.1 network
以CentOS 7为例
- 编辑配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
按需修改,下面一个例子:
- 重启网络服务
systemctl restart network.service
ip addr
确认刚才配置的ip
2.3.2 nmcli
NetworkManager CLI,比修改配置文件更简单一些
查看设备名
nmcli connection show
我这里得到ens1
[root@localhost ~]# nmcli connection modify ens1 \ >connection.autoconnect yes \ >ipv4.method manual \ # 如果用dhcp,这里写auto,下面几行不需要写 >ipv4.addresses 192.168.122.33/16 \ >ipv4.gateway 192.168.122.1 \ >ipv4.dns 114.114.114.114
nmcli connection up ens1
防火墙:
systemctl stop firewalld
临时禁用防火墙,重启还会打开systemctl disable firewalld
重启后防火墙禁用
SELinux:
vi /etc/selinux/config
enforcing - SELinux security policy is enforced.
permissive - SELinux prints warnings instead of enforcing.
disabled - No SELinux policy is loaded.
不建议设置SELinux=disabled
2.4 关机重启
shutdown -h now 立即关机(-h:halt)
shutdown -h 1 一分钟后关机(shutdown 默认命令)
shutdown -r now 立即重启
halt 关机
reboot 重启
sync 把内存的数据同步到磁盘
关机之前应当执行sync,目前shutdown/reboot/halt 等命令将会自动执行sync