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

米尔基于STM32MP25x核心板Debian系统发布,赋能工业设备

一、系统概述

MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能,同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能,为工业设备赋予“超强算力+实时响应+极简运维”的体验!

类别

名称

描述

源码

TF-A

Arm Trusted Firmware 2.8

OP-TEE

OP-TEE 3.19

Bootloader

U-boot 2022.10

Kernel

Linux Kernel 6.1.82

文件系统

myir-image-debian

Debian12文件系统

工具

烧录工具

STM32CubeProgrammer

文档

MYD-LD25X_Debian系统开发指南

包含源码编译,烧录等

注:目前Debian系统只适配了高配置开发板型号:MYD-LD257-8E2D-150-I

图:MYC-LD25X核心板及开发板

二、亮点功能介绍

1、Xfce桌面

Xfce是一款轻量级的开源桌面环境,旨在提供高效、稳定和易于使用的桌面体验。

轻量级:Xfce以资源效率为目标,注重在低资源消耗下提供快速响应和流畅的用户体验。它适用于各种硬件配置,包括旧式计算机和嵌入式设备。

简洁和直观:Xfce遵循简洁和直观的设计原则,提供了直观易用的用户界面,使用户能够快速上手和自定义桌面环境。

模块化:Xfce采用模块化的设计,桌面环境由多个独立的组件(如面板、窗口管理器、文件管理器等)组成,用户可以根据自己的需求进行定制和配置。

1.1.启动Xfce

myir-image-debian系统默认已经包含xfce显示界面,开发板启动进入系统后,接上屏幕会显示如下界面,说明成功启动Xfce,需输入设置的账户进入系统界面。

图1.1 xfce显示界面

2、VNC远程控制

2.1. vnc简介

VNC(Virtual Network Computing,虚拟网络计算)是一种远程桌面控制技术,允许用户通过互联网或局域网远程访问和控制另一台计算机的桌面环境。系统默认安装了TigerVNC。以下是其核心特点和应用:

  • 协议基础:基于RFB协议(Remote Framebuffer Protocol),通过传输屏幕图像的更新部分和用户输入指令实现交互。

  • 客户端-服务端架构:

服务端:运行在MYD-LD25X上,负责分享屏幕并接收客户端指令。

客户端:用户通过客户端连接到服务端,查看并操作远程桌面。

  • 网络传输:默认使用TCP端口5900+N(N为显示器编号,如:1对应5901)。

2.2. 启动VNC服务

Debian系统默认上电就开启VNC服务端,使用下面命令查看vnc服务:

root@myd-ld25x:~# ps -ef | grep vnc
root        2348       1  0 15:14 ?        00:00:00 /usr/bin/perl /usr/bin/vncserver -geometry 1280x720 -depth 24 -localhost no :1
root        2349    2348  0 15:14 ?        00:00:01 /usr/bin/Xtigervnc :1 -localhost=0 -desktop myd-ld25x:1 (root) -rfbport 5901 -PasswordFile /tmp/tigervnc.QQW419/passwd -SecurityTypes VncAuth,TLSVnc -auth /root/.Xauthority -geometry 1280x720 -depth 24
root        2350    2348  0 15:14 ?        00:00:00 /bin/sh /etc/X11/Xtigervnc-session
root        2356    2350  0 15:14 ?        00:00:00 tigervncconfig -iconic
root        4836    3480  0 16:48 ttySTM0  00:00:00 grep vnc

2.3 客户端连接测试

  • 下载客户端

Windows下载并安装客户端软件(如RealVNC Viewer),如下图所示:

图2.1 客户端VNC界面

  • 获取连接信息

通过myd-ld25x开发板获取目标设备的IP地址或主机名

(如192.168.40.198或myd-ld25x):

root@myd-ld25x:~# cat /etc/hosts
127.0.0.1 myd-ld25x
root@myd-ld25x:~# ifconfig 
end1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500ether 38:d5:47:00:29:62  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0device interrupt 65  base 0xc000  end2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.40.198  netmask 255.255.255.0  broadcast 192.168.40.255inet6 fe80::bd6:742b:ef7e:ee6f  prefixlen 64  scopeid 0x20<link>ether 5e:08:0d:0e:83:b6  txqueuelen 1000  (Ethernet)RX packets 12454  bytes 2524533 (2.4 MiB)RX errors 0  dropped 129  overruns 0  frame 0TX packets 476  bytes 41087 (40.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0device interrupt 68  base 0x8000

通过VNC服务器的log,获取端口/显示编号,如:1(对应端口5901)或直接指定端口号5901:

root@myd-ld25x:~# cat .vnc/myd-ld25x:1.log 
Xvnc TigerVNC 1.12.0 - built 2023-01-06 16:01
Copyright (C) 1999-2021 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12101006, X.OrgMon Mar  3 18:02:44 2025vncext:      VNC extension running!vncext:      Listening for VNC connections on all interface(s), port 5901vncext:      created VNC server for screen 0
3NI3X0 New Xtigervnc server 'myd-ld25x:1 (root)' on port 5901 for display :1.
3NI3X0 Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.otB4Rd/passwd myd-ld25x:1 to connect to the VNC server.
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 2
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 3
..................................................

  • 输入连接地址

依次点击VNC客户端界面“File->New connection”输入服务器和主机名,格式如下:

格式:目标地址:显示编号或 目标地址::端口号

示例1(主机名+显示编号):myd-ld25x:1

示例2(IP+端口):192.168.40.198:5901

以主机名为例子,配置完成后,点击”OK”按钮,如下图所示:

图2.2 客户端VNC配置

  • 成功连接

连接成功后,客户端窗口将显示远程设备的桌面,可进行交互操作。

图2.3 VNC连接成功界面

3、交换机功能

3.1. 交换机简介

以太网交换机是一种硬件设备,用于连接局域网(LAN)上的设备,并在这些设备之间转发数据包。它在OSI模型的数据链路层(第2层)运行,并使用MAC地址来确定每个数据包的目的地。以太网交换机可以通过减少冲突和拥塞来提高网络性能,同时还可以提供如虚拟局域网(VLAN)和基于端口的访问控制等安全功能。与以太网桥接器相比,以太网交换机在CPU使用率方面更为高效。由于硬件以太网交换机负责数据转发、过滤和优先级排序,因此减轻了CPU的工作负担。这样一来,CPU可以专注于处理其他任务,从而进一步提升网络性能。本节主要介绍myd-ld25x作为交换机进行双网段转发功能。

3.2. 网络拓扑介绍

STM32MP257有两个以太网控制器,MYD-LD25X以太网控制器1支持交换机功能。其网络拓扑如下图:

图3.1 网络拓扑图

根据上图很容易了解网络拓扑结构:

[Device1] (169.254.1.2) 
│
├── end2 接口
│
[MP25 板] 
│
├── end2 接口: 169.254.1.1(连接 Device1)
├── sw0p2 接口: 192.168.0.20(连接 Device2 end2)
│
└── IP 转发已启用 (`echo 1 > /proc/sys/net/ipv4/ip_forward`)[Device2] (192.168.0.11)

3.3.关键拓扑配置解析

  • myd-ld25x的配置

从网络拓扑图可知,myd-ld25x被当作为交换机/网关,连接不同的子网络,

子网1配置169.254.1.0/24(通过 end2 接口);子网2:配置192.168.0.0/24(通过 sw0p2 接口)。启用 ip_forward 后,myd-ld25x可将来自子网1的流量转发到子网2,反之亦然。

  • Device1 配置

设置 IP 为169.254.1.2,默认网关指向 myd-ld25x的 end2 接口 (169.254.1.1)。使得所有非本子网的流量(如访问 192.168.0.11)通过网关 myd-ld25x 转发。

  • Device2 配置

设置 IP 为192.168.0.11,默认网关指向myd-ld25x的 sw0p2 接口 (192.168.0.20)。使所有非本子网的流量(如访问 169.254.1.2)通过网关myd-ld25x转发。

3.4.转发功能配置与测试

  • 切换交换机设备树

启动开发板,在uboot阶段选择交换机设备树,如下图所示:

图3.2 选择交换机设备树

  • 转发功能配置

根据拓扑结构对myd-ld25x开发板板进行配置,启动设备并设置 end1/sw0ep 接口,同时启用 IP 转发功能,使设备能够充当路由器,转发网络流量。

root@myd-ld25x:~# ifconfig end2 169.254.1.1 up 
root@myd-ld25x:~# ifconfig sw0p2 192.168.0.20 up
root@myd-ld25x:~# echo 1 > /proc/sys/net/ipv4/ip_forward

配置设备1(开发板或者PC)网络接口IP和路由,这里Device1使用一块MYD-LD25X开发板:

Board $> ifconfig end2 169.254.1.2 up
Board $> ip route add default via 169.254.1.1

配置设备2(开发板或者PC)网络IP和路由,这里Device2也使用一块MYD-LD25X开发板:

Board $> ifconfig end2 192.168.0.11 up
Board $> ip route add default via 192.168.0.10

3.5.连通性验证

从Device1->Device2,当执行ping 192.168.0.11 时, 数据包从 Device1 发送到默认网关MYD-LD25X (169.254.1.1),MYD-LD25X根据路由表将数据包转发到 sw0p2 接口 (192.168.0.20)。Device2 收到数据包并回复,路径反向同理。

Board $> ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=63 time=0.959 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=63 time=0.618 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=63 time=0.649 ms
64 bytes from 192.168.0.11: icmp_seq=4 ttl=63 time=0.669 ms
64 bytes from 192.168.0.11: icmp_seq=5 ttl=63 time=0.625 ms
64 bytes from 192.168.0.11: icmp_seq=6 ttl=63 time=0.624 ms
64 bytes from 192.168.0.11: icmp_seq=7 ttl=63 time=0.630 ms
64 bytes from 192.168.0.11: icmp_seq=8 ttl=63 time=0.669 ms

从Device2->Device1,过程一样:

Board $> ping 169.254.1.2 
PING 169.254.1.2 (169.254.1.2) 56(84) bytes of data.
64 bytes from 169.254.1.2: icmp_seq=1 ttl=63 time=0.761 ms
64 bytes from 169.254.1.2: icmp_seq=2 ttl=63 time=0.688 ms
64 bytes from 169.254.1.2: icmp_seq=3 ttl=63 time=0.678 ms
64 bytes from 169.254.1.2: icmp_seq=4 ttl=63 time=0.640 ms
64 bytes from 169.254.1.2: icmp_seq=5 ttl=63 time=0.676 ms
64 bytes from 169.254.1.2: icmp_seq=6 ttl=63 time=0.614 ms
64 bytes from 169.254.1.2: icmp_seq=7 ttl=63 time=0.608 ms
64 bytes from 169.254.1.2: icmp_seq=8 ttl=63 time=0.543 ms

通过MYD-LD25X板作为路由中转,成功实现了两个不同子网(169.254.1.0/24和 192.168.0.0/24)间的通信。

4、TSN

4.1.TSN简介

TSN代表时间敏感网络(Time-Sensitive Networking),它是由电气和电子工程师协会(IEEE)开发的一系列标准,旨在通过以太网网络提供确定性和低延迟的通信。TSN旨在支持实时应用,如工业自动化、汽车以及音频/视频流传输。

TSN通过在网络中的所有设备之间提供时间同步,并使用流量整形和调度机制为时间关键型流量分配优先级和网络资源,从而实现确定性通信。TSN还支持冗余和容错机制,以确保高可用性和可靠性。此处列出了IEEE定义的TSN标准的完整清单。TSN的关键特性包括:

  • 时间同步:TSN使用精确时间协议(PTP)来同步网络中所有设备的时钟,精度可达亚微秒级。IEEE 802.1AS-Rev    

  • 流量整形和调度:TSN使用服务质量(QoS)机制为时间关键型流量分配优先级和网络资源,并防止拥塞和数据包丢失。IEEE 802.1Qav和IEEE 802.1Qbv

  • 互操作性:TSN设计为与现有以太网网络兼容,并支持不同供应商和设备之间的互操作性。

总体而言,TSN为以太网网络上的实时通信提供了一个标准化且可靠的解决方案,有助于在各行各业启用新的应用和用例。802.1Qav和802.1Qbv之间的选择取决于应用的特定需求。802.1Qav通常用于带宽需求可变且不可预测的应用,而802.1Qbv则通常用于带宽需求固定且可预测的应用。MYD-LD25X独立网口end2和switch都支持TSN功能。本节将以myd-ld25x开发板独立以太网为例,展示TSN 802.1Qav如何提升流量整形效果。 

4.2. 网络拓扑介绍

通过预留4个带宽序列,给每个序列分别不同的优先级,如下网络拓扑图所示:

图4.1 QAV例子

如上图所示,配置网口如下:

  • 使用4个队列(Q0-Q3)。每个队列在硬件中都有预留的带宽。最多支持4个队列。

  • 队列0无带宽限制,用于通用流量。

  • 队列1预留了最大带宽的10%(100Mbps)

  • 队列2预留了最大带宽的20%(200Mbps)

  • 队列3预留了最大带宽的30%(300Mbps)

  • Q3是最高优先级队列,而Q0是最低优先级队列。

4.3. 网络流量控制

  • 创建vlan端口

在MYD-LD25X开发板发送端执行下面命令创建vlan端口,并建立端口映射:

root@myd-ld25x:~# ip link add link end2 name end2.200 type vlan id 200
root@myd-ld25x:~# ip link set end2.200 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
root@myd-ld25x:~# ifconfig end2.200 192.168.200.60 netmask 255.255.255.0

在接受端(PC或者其他开发板)接收端创建vlan端口:

root@localhost:~# ip link add link eno0 name eno0.200 type vlan id 200 
root@localhost:~# ip link set eno0.200 up 
root@localhost:~# ip addr add 192.168.200.30/24 dev eno0.200

  • 配置网络流量

CBS用于通过限制流量类别的数据速率来强制实施服务质量;为了将数据包划分为不同的流量类别,用户可以选择使用mqprio。

root@myd-ld25x:~# tc qdisc add dev end0 clsact
root@myd-ld25x:~# tc qdisc add dev end0 handle 100: parent rootmqprio num_tc 4 map 0 0 1 1 2 2 3 3 3 3 3 3 3 3 3 3 queues 1@0 1@1 1@2 1@3 hw 0

为每个队列分配不同的带宽

// Set bandwidth of queue 1 to be 100Mbps
root@myd-ld25x:~#  tc qdisc replace dev end0 parent 100:2 cbs idleslope 100000 sendslope -900000 hicredit 150 locredit -1350 offload 1// Set bandwidth of queue 2 to be 200Mbpsroot@myd-ld25x:~# tc qdisc replace dev end0 parent 100:3 cbs idleslope 200000 sendslope -800000 hicredit 300 locredit -1200 offload 1// Set bandwidth of queue 3 to be 300Mbpsroot@myd-ld25x:~# tc qdisc replace dev end0 parent 100:4 cbs idleslope 300000 sendslope -700000 hicredit 450 locredit -1050 offload 1

  • 流量测试

在连接到端点end2且IP地址为192.168.200.30的远程PC或其他设备上运行4个iperf会话,以生成具有不同优先级的多个数据流。

root@localhost:~#  iperf3 -s -p 5003&
root@localhost:~#  iperf3 -s -p 5002&
root@localhost:~#  iperf3 -s -p 5001&
root@localhost:~#  iperf3 -s -p 5000&

在MYD-LD25X开发板,使用iperf3开始传输数据流:

//Stream with SKB priority 6  : TOS=0x14 == SO_PRIORITY=6
// https:man7.org/linux/man-pages/man8/tc-prio.8.html
root@myd-ld25x:~#  iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &
//Stream with SKB priority 4
root@myd-ld25x:~#  iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &
//Stream with SKB priority 2
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa &
//Stream with SKB priority 0 (Best effort)
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60  &

  • 测试结果

对于优先级为6且带宽为300Mbps的队列3,使用TC规则后:

root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &
[1] 5238
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5003
[  5] local 192.168.200.60 port 56663 connected to 192.168.200.30 port 5003
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  34.7 MBytes   291 Mbits/sec  24720  
[  5]   1.00-2.00   sec  34.7 MBytes   291 Mbits/sec  24710  
[  5]   2.00-3.00   sec  34.7 MBytes   291 Mbits/sec  24730  
[  5]   3.00-4.00   sec  34.6 MBytes   291 Mbits/sec  24680  
[  5]   4.00-5.00   sec  34.6 MBytes   290 Mbits/sec  24670

对于优先级为4且带宽为200Mbps的队列2,使用TC规则后:

root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &
[1] 5335
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5002
[  5] local 192.168.200.60 port 33494 connected to 192.168.200.30 port 5002
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  23.3 MBytes   195 Mbits/sec  16600  
[  5]   1.00-2.00   sec  23.2 MBytes   195 Mbits/sec  16550  
[  5]   2.00-3.00   sec  23.2 MBytes   195 Mbits/sec  16550  
[  5]   3.00-4.00   sec  23.2 MBytes   195 Mbits/sec  16550  
[  5]   4.00-5.00   sec  23.2 MBytes   195 Mbits/sec  16550  
[  5]   5.00-6.00   sec  23.2 MBytes   195 Mbits/sec  16550

对于优先级为2且带宽为100Mbps的队列1,使用TC规则后:

root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa &
[1] 5376
warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
root@myd-ld25x:~# Connecting to host 192.168.200.30, port 5001
[  5] local 192.168.200.60 port 40923 connected to 192.168.200.30 port 5001
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  11.7 MBytes  98.3 Mbits/sec  8350  
[  5]   1.00-2.00   sec  11.7 MBytes  97.9 Mbits/sec  8310  
[  5]   2.00-3.00   sec  11.7 MBytes  97.7 Mbits/sec  8300  
[  5]   3.00-4.00   sec  11.7 MBytes  97.9 Mbits/sec  8310  
[  5]   4.00-5.00   sec  11.7 MBytes  97.8 Mbits/sec  8310  
[  5]   5.00-6.00   sec  11.7 MBytes  97.8 Mbits/sec  8300  
[  5]   6.00-7.00   sec  11.7 MBytes  97.9 Mbits/sec  8310

对应优先级为0且带宽无限制的流量,使用TC规则后:

root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60  &
[1] 5426
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5000
[  5] local 192.168.200.60 port 47330 connected to 192.168.200.30 port 5000
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   101 MBytes   845 Mbits/sec  71800  
[  5]   1.00-2.00   sec   104 MBytes   875 Mbits/sec  74300  
[  5]   2.00-3.00   sec   105 MBytes   880 Mbits/sec  74750  
[  5]   3.00-4.00   sec   105 MBytes   880 Mbits/sec  74700  
[  5]   4.00-5.00   sec   105 MBytes   881 Mbits/sec  74790  
[  5]   5.00-6.00   sec   105 MBytes   878 Mbits/sec  74560

相关文章:

米尔基于STM32MP25x核心板Debian系统发布,赋能工业设备

一、系统概述 MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能&#xff0c;同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能&#xff0c;为工业设备赋予“超强算力实时响应极简运维”的…...

ES02 - ES语句

ES语句 文章目录 ES语句一&#xff1a;连接和基本的使用1&#xff1a;显示详细信息2&#xff1a;输出可显示列3&#xff1a;查看分片 二&#xff1a;Http接口 - 索引(数据库)的增删改2.1&#xff1a;插入数据2.2&#xff1a;删除数据2.3&#xff1a;更新数据2.3.1&#xff1a;P…...

C++ 学生成绩管理系统

一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...

项目管理工具 Maven

目录 1.Maven的概念 1.1​​​​​什么是Maven 1.2什么是依赖管理 1.3什么是项目构建 1.4Maven的应用场景 1.5为什么使用Maven 1.6Maven模型 2.初识Maven 2.1Maven安装 2.1.1安装准备 2.1.2Maven安装目录分析 2.1.3Maven的环境变量 2.2Maven的第一个项目 2.2.1按照约…...

设计心得——分层和划分模块

一、分层 在实际的设计开发过程中&#xff0c;对于稍微大一些的项目&#xff0c;基本都涉及到分层。什么是分层呢&#xff1f;其实非常简单&#xff0c;就是利用某种逻辑或域的范围等把整个项目划分成多个层次。它们之间通过接口&#xff08;可能是简单的函数接口也可以是服务…...

uniapp使用蓝牙,usb,局域网,打印机打印

使用流程&#xff08;支持安卓和iOS&#xff09; 引入SDK 引入原生插件包地址如下 https://github.com/oldfive20250214/UniPrinterDemo 连接设备 安卓支持经典蓝牙、ble蓝牙、usb、局域网&#xff08;参考API&#xff09; iOS支持ble蓝牙、局域网&#xff08;参考API&…...

PQL查询和监控各类中间件

1 prometheus的PQL查询 1.1 Metrics数据介绍 prometheus监控中采集过来的数据统一称为Metrics数据&#xff0c;其并不是代表具体的数据格式&#xff0c;而是一种统计度量计算单位当需要为某个系统或者某个服务做监控时&#xff0c;就需要使用到 metrics prometheus支持的met…...

day1 redis登入指令

[rootlocalhost data]# redis-cli -h ip -p 6379 -a q123q123 Warning: Using a password with -a or -u option on the command line interface may not be safe. ip:6379> 以上&#xff0c; Bigder...

2025 年 AI 网络安全预测

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 微软和 OpenAI 宣布延长战略合作伙伴关系&#xff0c;加强对推进人工智能技术的承诺&#xff0c;这表明强大的 AI 将在未来占据主导地位。 随着人工智能 &#x…...

[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑

参考原文&#xff1a;[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑 还在为多台电脑需要多套键盘鼠标而烦恼吗&#xff1f;是不是在操控 Windows、macOS、Linux 不同系统电脑时手忙脚乱&#xff1f;现在&#xff0c;这些问题通通能解决&#xff01;Deskflow 软件闪亮登…...

单片机的发展

一、引言 单片机自诞生以来&#xff0c;经历了四十多年的风风雨雨&#xff0c;从最初的工业控制逐步扩展到家电、通信、智能家居等各个领域。其发展过程就像是一场精彩的冒险&#xff0c;每一次技术的革新都像是在未知的海域中开辟新的航线。 二、单片机的发展历程 &#xff…...

Spring 构造器注入和setter注入的比较

一、比较说明 在 Spring 框架中&#xff0c;构造器注入&#xff08;Constructor Injection&#xff09;和 Setter 注入&#xff08;Setter Injection&#xff09;是实现依赖注入&#xff08;DI&#xff09;的两种主要方式。它们的核心区别在于依赖注入的时机、代码设计理念以及…...

uploadlabs通关思路

目录 靶场准备 复现 pass-01 代码审计 执行逻辑 文件上传 方法一&#xff1a;直接修改或删除js脚本 方法二&#xff1a;修改文件后缀 pass-02 代码审计 文件上传 1. 思路 2. 实操 pass-03 代码审计 过程&#xff1a; 文件上传 pass-04 代码审计 文件上传 p…...

迷你世界脚本自定义UI接口:Customui

自定义UI接口&#xff1a;Customui 彼得兔 更新时间: 2024-11-07 15:12:42 具体函数名及描述如下:&#xff08;除前两个&#xff0c;其余的目前只能在UI编辑器内部的脚本使用&#xff09; 序号 函数名 函数描述 1 openUIView(...) 打开一个UI界面&#xff08;注意…...

【情境领导者】评估情境——准备度水平

本系列是看了《情境领导者》一书&#xff0c;结合自己工作的实践经验所做的学习笔记。 在文章【情境领导者】评估情境——什么是准备度-CSDN博客我们提到准备度是由能力和意愿两部分组成的。 准备度水平 而我们要怎么去评估准备度呢&#xff1f;准备度水平是指人们在每项工作中…...

2025 ubuntu24.04系统安装docker

1.查看ubuntu版本&#xff08;Ubuntu 24.04 LTS&#xff09; rootmaster:~# cat /etc/os-release PRETTY_NAME"Ubuntu 24.04 LTS" NAME"Ubuntu" VERSION_ID"24.04" VERSION"24.04 LTS (Noble Numbat)" VERSION_CODENAMEnoble IDubun…...

Android中AIDL和HIDL的区别

在Android中&#xff0c;AIDL&#xff08;Android Interface Definition Language&#xff09; 和 HIDL&#xff08;HAL Interface Definition Language&#xff09; 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC&#xff08;进程间通信&#xff0…...

通过数据库网格架构构建现代分布式数据系统

在当今微服务驱动的世界中&#xff0c;企业在跨分布式系统管理数据方面面临着越来越多的挑战。数据库网格架构已成为应对这些挑战的强大解决方案&#xff0c;它提供了一种与现代应用架构相匹配的分散式数据管理方法。本文将探讨数据库网格架构的工作原理&#xff0c;以及如何使…...

Python基于Django的医用耗材网上申领系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

Python爬虫实战:一键采集电商数据,掌握市场动态!

电商数据分析是个香饽饽&#xff0c;可市面上的数据采集工具要不贵得吓人&#xff0c;要不就是各种广告弹窗。干脆自己动手写个爬虫&#xff0c;想抓啥抓啥&#xff0c;还能学点技术。今天咱聊聊怎么用Python写个简单的电商数据爬虫。 打好基础&#xff1a;搞定请求头 别看爬虫…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...