当前位置: 首页 > news >正文

虚拟化逻辑架构:OVS 交换机与端口管理

目录

一、实验

1.OVS 交换机管理

2.OVS端口管理

二、问题

1.KVM下的br0和virbr0有何区别

2.OVS 虚拟交换机 与接口如何实现关联的创建和删除

3.两个ovs之间如何进行流量交互

4.虚拟网络如何和物理网络互联


一、实验

1.OVS 交换机管理

(1)查看网络信息

lo:本地回环接口

enp0s17 :  ubuntu系统识别到的物理网卡

virbr0/br1/virbr0-nic : linux bridge 网桥相关

root:~# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:d8:2a:24 brd ff:ff:ff:ff:ff:ffinet 192.168.31.20/24 brd 192.168.31.255 scope global dynamic noprefixroute enp0s17valid_lft 42599sec preferred_lft 42599secinet6 fe80::f79a:6227:76ba:e22e/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: br1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 3a:e1:3f:67:ea:22 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ff

(2)安装 openvswitch-switch

sudo apt-get install openvswitch-switch

(3)查看软件ID与软件版本

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edovs_version: "2.9.8"

(4)创建OVS 虚拟交换机

ovs-vsctl add-br br0

(5)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edBridge "br0"Port "br0"Interface "br0"type: internalovs_version: "2.9.8"

(6)删除OVS 虚拟交换机并查看

ovs-vsctl del-br br0

(7)再次查看openvswitch。显示已删除

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edovs_version: "2.9.8"

2.OVS端口管理

 (1)向br0 中添加 if01端口,并且绑定 if01接口,设置端口类型 internal类型

ovs-vsctl add-port br0 if01 -- set interface if01 type=internal

(2)将if01端口设置为access VLAN模式

ovs-vsctl set port if01 VLAN_mode=access 

(3)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edBridge "br0"Port "if01"Interface "if01"type: internalPort "br0"Interface "br0"type: internalovs_version: "2.9.8"

(4)查看网络信息

已新增br0和if01

root:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:d8:2a:24 brd ff:ff:ff:ff:ff:ffinet 192.168.31.20/24 brd 192.168.31.255 scope global dynamic noprefixroute enp0s17valid_lft 39205sec preferred_lft 39205secinet6 fe80::f79a:6227:76ba:e22e/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: br1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 3a:e1:3f:67:ea:22 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ff
8: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 3a:6f:7f:57:9f:3d brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ae:f5:0b:f1:b4:4c brd ff:ff:ff:ff:ff:ff
10: if01: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 96:1e:9c:4d:4d:62 brd ff:ff:ff:ff:ff:ff

(5)向br0 中添加 if02端口,并且绑定 if02接口,设置端口类型 internal类型

ovs-vsctl add-port br0 if02 -- set interface if02 type=internal

(6)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edBridge "br0"Port "if02"Interface "if02"type: internalPort "if01"Interface "if01"type: internalPort "br0"Interface "br0"type: internalovs_version: "2.9.8"

(7) 查看网络信息

root:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:d8:2a:24 brd ff:ff:ff:ff:ff:ffinet 192.168.31.20/24 brd 192.168.31.255 scope global dynamic noprefixroute enp0s17valid_lft 39017sec preferred_lft 39017secinet6 fe80::f79a:6227:76ba:e22e/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: br1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 3a:e1:3f:67:ea:22 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ff
8: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 3a:6f:7f:57:9f:3d brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ae:f5:0b:f1:b4:4c brd ff:ff:ff:ff:ff:ff
10: if01: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 96:1e:9c:4d:4d:62 brd ff:ff:ff:ff:ff:ff
11: if02: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 66:c9:a7:75:d2:d8 brd ff:ff:ff:ff:ff:ff

(8)删除名称为 br0的 ovs的if01端口

 ovs-vsctl del-port br0 if01

(9)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edBridge "br0"Port "if02"Interface "if02"type: internalPort "br0"Interface "br0"type: internalovs_version: "2.9.8"

(10)查看br0桥-OVS上的所有添加的port端口

root:/# ovs-vsctl list-ports br0
if02

(11)查看网络信息
显示端口if01已删除

root:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:d8:2a:24 brd ff:ff:ff:ff:ff:ffinet 192.168.31.20/24 brd 192.168.31.255 scope global dynamic noprefixroute enp0s17valid_lft 38737sec preferred_lft 38737secinet6 fe80::f79a:6227:76ba:e22e/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: br1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 3a:e1:3f:67:ea:22 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ff
8: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 3a:6f:7f:57:9f:3d brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ae:f5:0b:f1:b4:4c brd ff:ff:ff:ff:ff:ff
11: if02: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 66:c9:a7:75:d2:d8 brd ff:ff:ff:ff:ff:ff

(12)删除名称为 br0的 ovs的if02端口

 ovs-vsctl del-port br0 if02

(13)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edBridge "br0"Port "br0"Interface "br0"type: internalovs_version: "2.9.8"

(14)查看网络信息

root:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 08:00:27:d8:2a:24 brd ff:ff:ff:ff:ff:ffinet 192.168.31.20/24 brd 192.168.31.255 scope global dynamic noprefixroute enp0s17valid_lft 38698sec preferred_lft 38698secinet6 fe80::f79a:6227:76ba:e22e/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: br1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 3a:e1:3f:67:ea:22 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:2f:20:d6 brd ff:ff:ff:ff:ff:ff
8: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 3a:6f:7f:57:9f:3d brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether ae:f5:0b:f1:b4:4c brd ff:ff:ff:ff:ff:ff

(15)删除名称为 br0的 ovs

ovs-vsctl del-br br0

(16)查看openvswitch

root:/# sudo ovs-vsctl show
e436b05b-210c-468a-9d94-fd63c6c419edovs_version: "2.9.8"

二、问题

1.KVM下的br0和virbr0有何区别

(1)KVM 的三种网络模式

桥接、仅主机、NAT

(2)区别

默认br0是桥接模式;

virbr0为NAT模式,它其实就是hypervisor的虚拟接口

2.OVS 虚拟交换机 与接口如何实现关联的创建和删除

(1)关联操作

#向br0 – OVS中添加 if01 端口,并且绑定  if01接口  ,设置端口类型 internal类型
ovs-vsctl add-port br0 if01   -- set interface  if01 type=internal#将if01 端口设置为 access VLAN模式
ovs-vsctl set port if01 VLAN_mode=access#查看br0桥-OVS上的所有添加的port端口ovs-vsctl  list-ports br0 # 在ovs – br0 删除掉if01端口 (接口也删除)
ovs-vsctl   del-port  br0 if01#为VM虚拟机配置IP地址
sudo ifconfig eth0 172.16.10.1 netmask 255.255.255.0#查看br0的接口信息
ovs-ofctl show br0#查看br0的MAC地址表(VLAN信息)
ovs-appctl  fdb/show br0# 添加VLAN标记
ovs-vsctl  add port if01  tag 10  #将接口01划分到vlan10
ovs-vsctl  add port if02  tag 20  #将接口02划分到vlan20#删除VLAN标记
ovs-vsctl  remove port if01  tag 10  #将接口01划分到vlan10# 查看OVS数量-名称
ovs-vsctl list-br

3.两个ovs之间如何进行流量交互

(1)设置互联patch

#默认允许所有VLAN通过patch接口互联需要设置peer(对端)
ovs-vsctl add-port br0 patch-br0-br2 -- set interface patch-br0-br2 type=patch options:peer=patch-br2-br0ovs-vsctl add-port br2 patch-br2-br0 -- set interface patch-br2-br0 type=patch options:peer=patch-br0-br2

4.虚拟网络如何和物理网络互联

(1)添加上行链路

#将一个物理网卡作为OVS虚拟交换机的上行链路,一个网卡作为虚拟交换机的上行链路后,该网卡直接作为OVS的一个逻辑接口,衔接物理和虚拟网络
ovs-vsctl add port  br0 enp0s17   #将enp0s17物理网卡绑定到br0虚拟交换机,作为一个ovs中的一个接口ovs-ctl set port enp0s17 VLAN_mode=trunkovs-ctl set port enp0s17 trunk=10,20

相关文章:

虚拟化逻辑架构:OVS 交换机与端口管理

目录 一、实验 1.OVS 交换机管理 2.OVS端口管理 二、问题 1.KVM下的br0和virbr0有何区别 2.OVS 虚拟交换机 与接口如何实现关联的创建和删除 3.两个ovs之间如何进行流量交互 4.虚拟网络如何和物理网络互联 一、实验 1.OVS 交换机管理 &#xff08;1&#xff09;查看网…...

【springboot】idea项目启动端口被占用

问题 idea本地启动springboot项目端口老是被占用 解决 关闭被占用的端口进程 步骤: 1. winR打开程序框 2. 查出被占用端口的进程id netstat -ano | finderstr 端口号 例如 netstat -ano | finderstr 81013.杀死进程 taskkill /pid 进程id -t -f 例如 taskkill /pid 2…...

linux环境下编译安装OpenCV For Java(CentOS 7)

最近在业余时间学习了一些有关图像处理的代码&#xff0c;但是只能本地处理&#xff0c;满足不了将来开放远程服务的需求。 因此&#xff0c;查找并参考了一些资料&#xff0c;成功在centos7环境安装上了opencv 460。 下面上具体安装步骤&#xff0c;希望能帮到有需要的同学。 …...

健康学习到 150 岁:人体系统调优不完全指南 | 开源日报 No.93

jesseduffield/lazygit Stars: 40.0k License: MIT lazygit&#xff0c;一个用 Go 语言编写的简单终端UI工具&#xff0c;可以执行 Git 命令。 该项目旨在让使用者更加方便地使用 Git&#xff0c;并提供了以下功能&#xff1a; 可视化操作&#xff1a;用户可以通过图形界面进…...

C++ Easyx 三子棋

目录 思路 框架​编辑 读取操作 数据操作 绘制画面 游戏的数据结构 用二维数组来模拟棋盘格 赢的情况 平局情况 Code 代码细节部分 &#xff08;1&#xff09;初始化棋盘格 &#xff08;2&#xff09; 初始化棋子类型​编辑 事件处理部分 落子 框架内代码的完善 数据处…...

[NAND Flash 2.1] NAND Flash 闪存改变了现代生活

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​ 1989年NAND闪存面世了&#xff0c;它曾经且正在改变了我们的日常生活。 NAND 闪存发明之所以伟大&#xff0c;是因为&#xff0c…...

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模 B题 空气污染问题研究 原题再现 近十年来&#xff0c;我国 GDP 持续快速增长&#xff0c;但经济增长模式相对传统落后&#xff0c;对生态平衡和自然环境造成一定的破坏&#xff0c;空气污染的弊病日益突出&#xff0c;特别是日益加重的雾霾天气已经干扰…...

java面试题,上楼梯有多少种方式

java面试题&#xff0c;上楼梯有多少种方式 题目&#xff1a;一个小孩上一个N级台阶的楼梯&#xff0c;他可以一次走1阶、2阶或3阶&#xff0c;那么走完N阶有多少种方式。 很自然的想法是使用递归&#xff1a; public class Test04 { public static int countWays(int n) {…...

8.HTTP工作原理

HTTP是什么 HTTP工作原理 HTTP协议的请求类型和响应状态码 总结 1.HTTP是什么 HTTP超文本传输协议就是在一个网络中上传下载文件的一套规则 2.HTTP工作原理 HTTP超文本传输协议的本质是TCP通信&#xff0c;链接—>请求—>响应—>断开 3.HTTP协议的请求类型和响应状…...

环境部署的学习笔记(Docker)

1 前言 在现场测试时&#xff0c;常常需要在现场机器上搭建开发环境&#xff0c;此时使用容器会是一个比较方便的途径&#xff1b; 2 常见的容器技术 2.1 Docker⭐️31k&#xff1a;目前使用最为广泛的容器技术 2.2 Nix⭐️13.8k&#xff1a;镜像文件占用会比Docker少 Chat…...

Navicat在分辨率不同的屏幕窗口显示大小不一致问题解决

1.主屏幕为2560*1600分辨率&#xff0c;能够显示较多数据连接 2.在第二屏幕分辨率低&#xff0c;字体变大&#xff0c;显示内容变少 解决办法&#xff1a; 1.右击navicat图标-属性 2.选择【兼容性】-在兼容性页面中选择**“更改高DPI设置”** 3…勾选“高DPI缩放替代”&a…...

通过代码搞明白JAVA中值传递和引用传递

public static void main(String[] args) {Map a new HashMap();a.put("a", 1);System.out.println(a "我在main中的值");aaa(a);System.out.println(a "我在main中的值");bbb(a);System.out.println(a "我在main中的值");int b …...

ambari 开启hdfs回收站机制

hdfs回收站类似于我们常用的windows中的回收站&#xff0c;被删除的文件会被暂时存储于此&#xff0c;和回收站相关的参数有两个&#xff1a; fs.trash.interval&#xff1a;默认值为0 代表禁用回收站&#xff0c;其他值为回收站保存文件时间&#xff0c;单位为分钟 fs.trash…...

服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌linux操作系统服务器&#xff0c;服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。 服务器故障&检测&#xff1a; 服务器在运行过程中突然瘫痪&#xff0c;管理员对服务器进行了重装…...

软件工程之架构设计

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、架构设计的目的 1.什么是复杂的软件项目 复杂的软件项目通常有两个特点&#xff1a; 需求不确定 技术复杂 技术的复杂性主要体现在四个方面…...

oracle java.sql.SQLException: Invalid column type: 1111

1.遇到的问题 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{propertyuuid, modeIN, javaTypeclass java.lang.String, jdbcTypenull, numericScalenull, r…...

Mac 浏览器下载的文件名总是「乱码」

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 本文所说的方法是在出现文件名乱码情况下&#xff0c;如何恢复文件名的正确中文名称&#xff0c;并非一劳永逸地避免乱码的出现。这是由于下载文件名称乱码的出现&#xff0c;往往是系统、浏览器、网站三方面因素共…...

Redis Reactor事件驱动模型源码

前置学习&#xff1a;Redis server启动源码-CSDN博客 1、Redis服务器启动的时候就会就一直在轮询。 // 运行事件处理器&#xff0c;一直到服务器关闭为止 aeSetBeforeSleepProc(server.el,beforeSleep); aeMain(server.el);// 服务器关闭&#xff0c;停止事件循环 aeDeleteEven…...

cv2.error: OpenCV(4.7.0)

运行hsv脚本报错&#xff1a; cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function cv::cvtColor 解决方案&#xff1a; 这个错误信息是在使用OpenCV的cvtColor函…...

10.vue3项目(十):spu管理页面的sku的新增和修改

目录 一、sku静态页面的搭建 1.思路分析 2.代码实现 3.效果展示...

Revelation光影包:物理渲染与启发式算法的视觉革命

Revelation光影包&#xff1a;物理渲染与启发式算法的视觉革命 【免费下载链接】Revelation An explorative shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation Revelation不仅仅是一个Minecraft光影包——它是基于物理渲…...

如何利用 Taotoken 为 Hermes Agent 提供自定义模型支持

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何利用 Taotoken 为 Hermes Agent 提供自定义模型支持 对于使用 Hermes Agent 构建复杂应用的开发者而言&#xff0c;其强大的自…...

物联网技术如何重塑智能电网的底层架构

1. 物联网技术重塑智能电网的底层逻辑2003年美加大停电事故导致5000万人陷入黑暗&#xff0c;这场灾难直接催生了现代智能电网的诞生。如今&#xff0c;当我们谈论智能电网时&#xff0c;本质上是在讨论一个由物联网(IoT)技术重构的能源神经系统。这个系统通过海量智能终端实时…...

攻克:C8051Fxxx uVision驱动在Keil Debug中“隐身”的安装与配置实战

1. 问题背景与现象分析 第一次接触C8051Fxxx系列芯片的开发者&#xff0c;大概率会在Keil uVision环境中遇到一个让人抓狂的问题&#xff1a;明明按照官方文档安装了驱动&#xff0c;但在Debug选项列表中死活找不到"C8051Fxxx uVision"这个关键驱动。我当年接手公司一…...

Windows: 深入剖析pip install SSLError与SSL模块缺失的根源及系统级修复

1. Windows下pip install SSLError的典型表现 最近在Windows系统上用pip安装Python包时&#xff0c;不少朋友都遇到了这样的报错信息&#xff1a;"Cant connect to HTTPS URL because the SSL module is not available"。这个错误通常会出现在使用清华源、阿里云源等…...

iMeta | 伦敦国王学院量化系统生物学组-解析肝硬化中口腔-肠道转移细菌与宿主互作

点击蓝字 关注我们整合宿主–微生物组建模揭示了口腔–肠道微生物转移在晚期肝硬化中的潜在作用iMeta主页&#xff1a;http://www.imeta.science研究论文● 期刊: iMeta (IF 33.2,中科院双一区Top)● 英文题目: Integrative host-microbiome modelling uncovers the implicatio…...

Windows Cleaner:解决C盘爆红问题的3个高效方法

Windows Cleaner&#xff1a;解决C盘爆红问题的3个高效方法 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当您的Windows电脑C盘突然变红&#xff0c;可用空间告…...

别再只刷Demo了!手把手教你用CCS给AWR1843毫米波雷达写自己的‘大脑’

从Demo玩家到雷达开发者&#xff1a;AWR1843毫米波雷达CCS深度开发实战 毫米波雷达技术正在智能驾驶、工业检测等领域掀起革命浪潮。作为TI明星产品&#xff0c;AWR1843凭借其高性价比和丰富功能成为众多开发者的首选。但大多数用户止步于运行官方Demo&#xff0c;未能真正释放…...

C加加开发者如何通过Taotoken快速接入多模型API服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 C开发者如何通过Taotoken快速接入多模型API服务 1. 场景与需求 在C后端服务中集成大模型能力时&#xff0c;开发者常面临几个实际…...

STM32CubeMX配置SPI驱动W25Q64 Flash:从硬件连接到驱动封装,一个完整项目实战

STM32CubeMX实战&#xff1a;构建高可靠SPI Flash存储系统从硬件到软件全解析 在嵌入式开发中&#xff0c;外部Flash存储解决方案往往成为扩展设备数据容量的关键选择。W25Q64作为一款经典的64M-bit SPI Flash芯片&#xff0c;凭借其稳定的性能和广泛的应用场景&#xff0c;成为…...