操作系统、虚拟化技术与云原生01

操作系统基础

操作系统定义

OS声明了软件怎么调用硬件,同时支持人机交互

人机交互的过程:

shell是人机交互转换的虚拟环境,内核只能识别0、1组成的数据流,底层资源只能识别电流的变化

操作系统的组成
  1. 进程管理

进程定义:进程是正在运行的程序的实例,它不仅包含程序代码,还包含程序的当前状态和相应的系统资源。

线程概念:线程是比进程更小的执行单位,能够实现更细粒度的并行计算,提高CPU的使用效率。

调度机制:操作系统通过进程调度算法,如优先级调度、时间片轮转等方法来决定哪些进程使用CPU,确保系统高效运行。

  1. 存储管理

内存分配:存储管理负责物理内存的分配与回收,确保各进程公平高效地使用内存资源。

虚拟内存:现代操作系统普遍采用虚拟内存技术,将硬盘空间作为内存使用的延伸,扩展可用的内存容量,使每个进程仿佛拥有独立的内存空间。

保护机制:存储管理还包括隔离保护机制,防止一个进程访问另一个进程的内存空间,保障系统安全。

  1. 设备管理

设备驱动程序:设备管理负责管理计算机系统中的所有外设,包括磁盘、显示器、键盘、鼠标等。

资源分配:设备管理还包括资源的分配与回收,例如打印机等独占设备的管理,以确保所有设备高效运作。

缓冲技术:缓冲技术用于缓解高速CPU与低速设备间的速度不匹配问题,确保数据传输的流畅性。

  1. 文件管理

文件系统:文件管理提供文件系统的组织和管理,支持文件的存储、检索、修改和删除等操作。

目录结构:文件管理还维护文件的目录结构,使得文件可以分类、分层管理,方便用户和程序查找和使用。

存取控制:文件管理还包括文件的存取控制,确保文件的安全和隐私,防止未经授权的访问。

  1. 用户界面管理

命令行界面:早期的操作系统主要提供命令行界面,用户通过输入命令来操作计算机。

图形界面:现代操作系统普遍采用图形界面,通过窗口、图标和菜单等元素提供直观的操作方式。

交互体验:用户界面管理不断优化,提升用户的操作便捷性和整体交互体验。

操作系统的分类

UNIX

Linux

Windows

Windows的操作大家较为熟悉,下面说说Linux

Linux操作系统特性

目前很多平台和设备都使用了POSIX1.0标准

/root:管理员家目录

/home:普通用户家目录

Linux操作系统

社区:openEuler | 开源社区 | openEuler社区官网

实验准备:

  1. 下载openEuler 22.03 LTS SP4,Offline Standard ISO
  2. 升级virtualbox到6.1

Linux用户:

管理员用户:root用户,具有最高权限,uid=0

系统用户:具有某一方面的权限,1<=uid<=999

普通用户:student,只对家目录具有管理权限,uid1000到65535

Linux操作

基本操作

快捷键

ctrl+w:回删一部分

ctrl+u:删除到行首

ctrl+c:退出当前执行或未执行的命令(废除当前指令)

命令组成: 命令字 [参数] [选项]

家目录:

root用户:/root

普通用户:/home/与用户名同名的子目录

终端提示符:[student@localhost ~]$

~所在的工作目录,~代表当前用户的家目录

$代表当前登录的用户是普通用户

#代表当前登录的用户是root用户

修改密码:

  1. 交互式修改:passwd
  2. 非交互式修改:

格式:echo 密码 | passwd --stdin 用户名

--stdin:把标准输出转变为标准输入

echo:回显

用户创建:

格式:useradd [选项] 用户名

验证:id [用户名]

选项:

-u 指定用户的uid:useradd -u 10086 zgyd

id zgyd

切换用户:

格式: su - 用户名

su - tom

logout

删除用户:

格式:userdel [选项] 用户名

userdel zgyd

id zgyd

重启:reboot,shoutdown -r now,init 6

关机:poweroff,shoutdown -h now,init 0

文件目录操作

第一个字符是否为/,是即使绝对路径,否则是相对路径

查看当前的工作目录:pwd (print working directory)

切换路径:cd (change directory)

常用:

切换到上一次所在的工作目录:cd -

切换到家目录:cd ~ 或者 cd

切换到上一级目录:cd ..

. 代表当前的工作路径

查看子文档的信息:ls (list)

格式:ls [选项] 文档路径

选项:

-l 详细属性信息

-d 查看文档本身的信息

-h 以易读单位显示文档信息 human-readable

-a 显示所有文件的信息

隐藏文件:以 '.' 开头的文件

查看文本内容:cat

head:看到文本的前几行信息 (默认看到10行)

tail:看到文本的后几行信息 (默认看到10行)

目录创建:mkdir (make directory)

格式:mkdir [选项] 目录

选项:

-p 递归创建多级目录(白色是文本文件,蓝色是目录)

文件创建:touch

touch 文件名

复制:cp (copy)

格式:cp [选项] 源路径 目标路径

选项:

-r 递归复制,源路径是目录

-f force,强制复制

移动:mv (move)

格式:mv 源路径 目标路径

路径不变的运动是重命名操作

删除:rm (remove)

格式:rm [选项] 路径

选项:

-r 递归删除,源路径是目录

-f force,强制删除

帮助:

  1. -h或者--help
  2. man帮助手册

编辑器vim

三种模式:

插入模式:

---- i(a)交互指令 ---- 插入模式 [ecs回退]

命令行模式:

---- ':' 交互式指令 ---- 插入模式 [ecs回退]

末行模式:

  1. wq:保存退出
  2. w:保存不退出
  3. q:不保存退出
  4. q!强制不保存退出
  5. wq!:强制保存退出

p -- post:粘贴

跳转:gg(到首行),G(到末行)

复制:nyy

删除:ndd

粘贴:p

搜索:/[word],n向下搜索,N向上搜索

替换:

  1. s/old/new/g 替换当前行的old为new
  2. n,m/old/new/g 替换第n-m行的old为new
  3. % s/old/new/g 替换全文的old为new

(g是整行的概念)

网络管理

  1. 配置文件

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

  1. nmcli(Network Manager Client)命令行

查看网卡信息 nmcli connection show(nmcli c s)

配置网络ip nmcli connection modify "enp0s8" ipv4.method manual ipv4.addresses 192.168.xx.xx/24 autoconnect yes

nmcli 连接 编辑 "网卡名称" ipv4.方法 手动 ipv4.地址 ip地址/子网掩码 自动 连接 开启

重新激活网卡 nmcli connection up enp0s8

  1. nmtui(Network Manager Tool UI)伪图形工具

nmtui 进入伪图形编辑界面编辑

验证:

  1. ifconfig
  2. ip a

永久修改主机名:

查看主机名 hostname

长主机名 node1.example.com

短主机名 node1

配置文件(重启生效)vim /etc/hostname

命令法 hostnamectl

hostnamectl set-hostname node1.example.com

bash

查看路由表

命令:route -n

Destination:目的地,显示路由的目的地或者网段

Gateway:网关地址,如果为0.0.0.0表示网络可以直接访问,无需其他设备转发

Genmask:子网掩码

flags:标志,代表路由的不同属性

U:up,代表路由是可达的

H:host,表示目标是一个主机

G:路由指向网关

Metric:路由距离,到达指定网络所需的中转数

Ref:引用计数,0表示目前没有进程在使用这条路由

USE:使用计数,此路由项被路由软件查看的次数

Iface:接口,转发的网络设备即网卡名称

配置一条路由到达39.156.66.10主机路由项,通过enp0s3接口发送给10.0.2.2网关;查 看路由表,再删除此路由表:

route add -host 39.156.66.10 gw 10.0.2.2 dev enp0s3

route -n

route del -host 39.156.66.10 gw 10.0.2.2 dev enp0s3

虚拟化技术

概述

虚拟化技术:

计算虚拟化(CPU、内存),网络虚拟化,内存虚拟化

虚拟化的作用:将底层资源和系统进行解耦,将物理资源抽象形成资源池,将抽象后的资源分 配给上层的应用。

虚拟化的类型:

全虚拟化:虚拟化管理器会将所有的资源全部虚拟化,虚拟机无法感知主机所使用的是物理资源还是逻辑资源。兼容性好。但是cpu的开销较高。

半虚拟化:虚拟化管理器只针对计算资源做虚拟化,设备io的资源直接使用底层的物理资源。节省cpu的开销,但是兼容性较差。

硬件辅助虚拟化:使用相关的硬件辅助CPU进行虚拟化,解决CPU的高消耗。优势在于保证性能和节省开销。

对物理机来讲虚拟机是一个文件

CPU虚拟化

一个CPU一般有两个线程,线程就是vCPU(超线程技术,vcpu(线程)是cpu的两倍)

内存虚拟化

A是地址,客户机G开头

I/O虚拟化

网卡

虚拟化技术

kvm(性能、轻量级)

kvm内嵌在操作系统内核

Xen (安全)

虚拟化平台管理工具

虚拟化平台管理工具是用于管理和监控虚拟机的软硬件资源,提供创建、配置、迁移等功能的软件系统。以下是一些主流的虚拟化平台管理工具:

1.Eucalyptus:

授权协议包括GPLv3和自定义商业授权协议。

社区版免费使用,企业版按处理器核心总数收费。

2.OpenNebula:

采用Apache 2.0授权协议,不需要许可证。

社区版免费使用,企业版以订阅模式提供服务,按物理服务器总数收费。

3.OpenQRM:

社区版使用GPLv2授权协议,企业版使用自定义的商业授权协议。

基本、标准和高级服务的价格分别为480、960、1920欧元每月。

4.XenServer:

Citrix XenServer系列产品均使用自定义的商业授权协议。

免费版本和开源版本的Xen Cloud Platform可以免费使用,高级版、企业版和白金版按物理服务器数量收费。

5.Oracle VM:

Oracle VM Server基于Xen开发,使用GPLv2协议发布。

Oracle VM Manager使用自定义的商业授权协议,Oracle VM VirtualBox的二进制版本也使用自定义的商业授权协议。

6.CloudStack:

社区版采用GPLv3授权协议,企业版使用自定义的商业授权协议。

社区版免费使用,企业版提供增强功能和技术支持。

7.ConVirt:

社区版使用GPLv2授权协议,企业版使用自定义的商业授权协议。

社区版免费使用,企业版提供增强功能和技术支持,按物理服务器数量收费。

容器

容器也是一种虚拟化技术(虚拟机能做的容器)

客服端:识别用户指令并执行

docker指令是新设定,不遵循原有命令,用自己的指令

docker的核心是镜像

docker host:所有任务最终的执行(引擎)

docker deamon(文件,deamon.json,在执行任务时做镜像管理)

image(本地镜像源):创建的镜像存在物理机上,要使用时打包

registry:开源镜像仓库

docker仓库三种类型:本地(docker引擎内部,引擎在哪本地仓库就在哪)

远端镜像仓库(介于本地和中央仓库的第三方仓库,一般由公益组织、企业维护,用于下载提速)

中央仓库(docker官方维护,收集全球所有镜像仓库)

私有仓库(不在三种类型里,本质上自己使用的仓库,位置可以在用户本地,也可以是用户指定位置)(私有仓库需要线连接后进行上传和下载)

(当用户提交运行请求时,deamon会查询本地仓库检查是否由本地镜像,如果没有,就查用户配置的所有仓库或远端仓库)

(如果同时配置多个仓库,则按照配置文件的次序依次查找,如果都没找到,就发送请求到中央仓库,如果中央仓库也没有就报错,在中间任意一个环节找到就下载并运行)

docker Client:客户端,负责所有指令的接受和任务的下发执行

Docker API:负责接受请求,并且交给对应的进程进行任务执行

Containerd:负责容器的资源管理和镜像的管理工作

docker-network:负责docker网络环境的管理,主要是将底层宿主机的网络映射给容器进行使用

docker volume:docker卷管理器,负责docker的存储管理将宿主机的存储空间映射给容器使用

shim、runC:负责识别和执行指令的工具

RunC和Runtime都是负责对指令进行解析和执行的

Container:实际的最终容器

容器与云原生:详细介绍

随着云计算的迅猛发展,越来越多的企业将应用迁移到云端。在这个过程中,容器技术和云原生架构逐渐成为主流选择。

容器的特点

轻量级:与传统虚拟机相比,容器不需要额外的操作系统,因此更加轻量级。

快速启动:由于容器共享宿主机的操作系统内核,启动速度非常快。

一致性:容器镜像可以在开发、测试和生产环境中保持一致,减少了环境差异带来的问题。

隔离性:每个容器都是相互隔离的,不会互相影响。但是容器间也不是完全隔离,隔离程度比虚拟机差一点。

可移植性:容器可以在任何支持容器技术的平台上运行。

什么是云原生?

云原生(Cloud Native)是一种构建和运行应用程序的方法,充分利用云计算模型的优势,如弹性伸缩、自动化管理和微服务架构等。

云原生的特点

微服务架构:将应用程序拆分成多个小型、独立部署的服务,每个服务都可以独立扩展和维护。

持续集成/持续交付(CI/CD):通过自动化工具实现代码的频繁集成和交付,提高开发效率和质量。

弹性伸缩:根据负载自动调整资源,确保应用的高可用性和性能。

无状态设计:应用的各个部分尽量做到无状态,以便更容易扩展和管理。

API驱动:通过API进行通信,使得系统更加灵活和可扩展。

容器与云原生的关系

容器技术是实现云原生架构的重要工具之一。通过容器,开发者可以更容易地实现微服务架构、持续集成/持续交付(CI/CD)以及弹性伸缩等云原生特性。具体来说:

微服务架构

独立部署:每个微服务可以打包成一个独立的容器镜像,独立部署和扩展。

服务发现:容器编排工具(如Kubernetes)提供了服务发现机制,方便微服务之间的通信。

持续集成/持续交付(CI/CD)

自动化构建:使用容器镜像作为构建单元,可以自动化构建和测试。

自动化部署:通过容器编排工具,可以自动化部署和回滚应用。

弹性伸缩

自动扩展:容器编排工具可以根据负载自动扩展或缩减容器实例,确保应用的高可用性和性能。

资源管理:容器技术可以更细粒度地管理资源,提高资源利用率。

常见的容器技术和工具

Docker:最流行的容器化平台,提供了创建、部署和运行容器的工具。还有container。

Kubernetes:开源的容器编排引擎,用于自动化部署、扩展和管理容器化应用。

Helm:Kubernetes的包管理工具,简化了复杂应用的部署。

Prometheus:监控系统,用于收集和查询时间序列数据,特别适用于容器化环境。

Istio:服务网格解决方案,提供了流量管理、安全和监控等功能。

相关推荐
云攀登者-望正茂8 分钟前
AKS 支持 Kata Container容器沙盒 -预览阶段
容器·azure
孙克旭_42 分钟前
PXE_Kickstart_无人值守自动化安装系统
linux·运维·自动化
皓月盈江2 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
深井冰水2 小时前
mac M2能安装的虚拟机和linux系统系统
linux·macos
leoufung2 小时前
内核内存锁定机制与用户空间内存锁定的交互分析
linux·kernel
撸码到无法自拔2 小时前
docker常见命令
java·spring cloud·docker·容器·eureka
LUCIAZZZ4 小时前
JVM之内存管理(一)
java·jvm·spring·操作系统·springboot
忧虑的乌龟蛋4 小时前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
zhojiew4 小时前
istio in action之服务网格和istio组件
云原生·istio
I_Scholar4 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl