【重磅】云栖大会 | 浪潮信息牵头《eBPF技术实践白皮书》正式发布(可下载)

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结 常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。 阅读详情

目录

1 背景

2 内容概览

3 eBPF介绍

4 应用与实践

5 挑战与展望


1 背景

随着eBPF技术的高速发展,eBPF已成为Linux内核顶级子系统,并扩展到内核网络、存储、内存、调度和安全等子模块。这种可编程底座内核框架构建了全系统,是云计算、运维和安全等领域技术创新的基础。

11月1日,2023云栖大会龙蜥操作系统峰会上,由浪潮信息牵头,与龙蜥社区共同编写的《eBPF技术实践白皮书》正式发布(以下简称“白皮书”),《白皮书》主要介绍eBPF技术原理、常见开发框架,并分享eBPF技术在系统诊断、网络性能优化、主机安全等场景的应用实践和成果。

 

2 内容概览

《白皮书》历经数月精心编写,旨在为企业、工程师和技术领导者提供eBPF技术的参考和借鉴,共分为四大章节,下载方式详见文章末尾处。

3 eBPF介绍

介绍了eBPF的技术原理、常见的开发框架特点和使用场景,重点介绍了龙蜥社区开源的coolbpf。以便于广大eBPF 爱好者可以简化开发和编译过程,专注自己功能开发。

4 应用与实践

重点介绍了浪潮信息和龙蜥社区在eBPF技术方面的四大实践应用和成功案例。

  • 场景一:系统诊断

针对传统系统诊断工具在网络、IO、内存和调度领域的限制,介绍了基于eBPF技术在网络、IO、内存和调度等场景的系统诊断实践,为系统诊断提供了更强大能力。

  • 场景二:IO全链路监测

主要突破了一种虚拟化I/O全链路分析技术,实现了虚拟机内部单个I/O到Virtio、Qemu、文件系统、块设备、分布式存储等不同技术层的I/O栈的运行状态追踪,解决传统虚拟化I/O因链路长、技术栈复杂等而难以追踪的问题。

  • 场景三:网络性能优化

基于eBPF提升容器网络性能的开发与实践,包括方案说明、整体架构及性能对比测试情况等。相比基于传统内核的容器网络方案,采用tc eBPF、sockops/sockmap、xdp等技术能够明显提升pod/service的关键性能指标。

  • 场景四:主机安全

浪潮信息云峦KeyarchOS团队研发的轻量化的安全组件KSecure,主要包括:功能特性、技术架构、关键技术和应用场景等。在增强操作系统安全性和合规性的同时,解决传统内核模块方式带来的系统稳定性和性能问题。

5 挑战与展望

后续,浪潮信息会继续开展eBPF应用的研究与实践,在安全方向,支持容器入侵检测、网络防护等;在容器网络可观测性方向,支持应用零侵入网络流量信息采集和分析、容器间网络拓扑绘制、时延和错误响应等监控告警等,敬请期待!

白皮书下载方式

欢迎关注浪潮信息云峦KeyarchOS操作系统公众号【浪潮信息操作系统】,后台回复关键字“ebpf”,即可获得下载链接。

 

飞腾平台(FT2000/4 D2000/8)配置GPIO引脚 飞腾平台配置CPU的引脚为GPIO工作模式的方式有永久型和暂时型: - 永久型是通过UEFI中的MmioWrite32函数来实现的,该方法可以在UEFI阶段就对复用引脚的工作模式配置为GPIO,并且在进入操作系统后仍然不会发生便会; - 临时型是通过rw工具,在系统下手动修改复用引脚的工作模式,该方法在系统重启后会失效,所以是暂时型的。 阅读详情

相关推荐

立创开源:基于AD831/ADF4351的250-500MHz宽频调幅信号处理实验电路设计与实现

本文详细解析了基于AD831混频器和ADF4351本振源的250-500MHz宽频调幅信号处理实验电路的设计与实现。文章从项目需求出发,系统讲解了超外差接收架构、核心模块(包括射频前端、混频器、本振源、AGC环路及解调电路)的选型与原理,并提供了实战调试波形与性能验证,为射频电路学习者提供了从理论到实践的完整指南。

weixin_35706255的博客 228

龙蜥社区成立系统安全 SIG,助力系统安全生态

为了进一步提升操作系统的安全性,加强行业内部的交流与合作,由浪潮信息牵头,阿里云和统信软件共同参与的系统安全特别兴趣小组(SIG)正式成立。

weixin_60347558的博客 3515

深度探索:机器学习中的Label Propagation算法(基于图论的半监督学习方法)原理及其应用

Label Propagation算法作为一种基于图论的半监督学习方法,有效地利用了数据的内在结构和未标注样本信息,降低了对标注数据的依赖。尽管存在对初始标签敏感、易陷入局部最优等局限性,但在图像分类、社交网络分析、生物信息学等领域展现了良好的应用前景。未来的研究方向可能包括:探索更稳健的标签初始化策略、设计抗噪声和异常值的相似度计算方法、结合深度学习模型提升模型表示能力等。随着半监督学习理论和技术的不断发展,Label Propagation及其变种算法将在更大范围内推动机器学习在标注数据有限情况下的应用

qq_51320133的博客 2283

蓝屏风暴全球肆虐,浪潮信息KSecure守护系统安全!

2024年7月19日,Windows系统用户遭遇了大面积的蓝屏死机事件,这一问题最初在亚太地区被发现,随后迅速扩散到全球其他地区。至少20多个国家的交通、金融、医疗、零售等行业或公共服务的业务系统受到影响。数百万到千万台设备蓝屏崩溃,包括271家世界500强企业的IT系统。

ITer_szlgz的博客 261

半桥LLC谐振变换器及同步整流MATLAB仿真(一)

LLC工作原理详细解析,工作过程详细拆解

qq_55203246的博客 3万+

手把手教你解决Ubuntu 20.04虚拟机桥接模式下的网络问题:DHCP与静态IP配置全指南

本文详细解析了Ubuntu 20.04虚拟机在桥接模式下的网络配置问题,包括DHCP与静态IP的配置方法及常见故障排查技巧。通过深入讲解桥接模式原理和提供实战操作指南,帮助用户解决无法访问外网、ping不通等典型网络问题,实现虚拟机与物理网络的无缝连接。

weixin_29256771的博客 545

六千字,解读云栖大会《AI原生应用架构白皮书》(附白皮书下载)大模型入门到精通,收藏这篇就足够了!

今天给大家分享的是一个白皮书,长达156页,20w字,阿里的云栖大会上发布的,由40位一线工程师联合撰写。

DEVELOPERAA的博客 1346

基于STM32、HAL库的MPX5500DP气压传感器 驱动程序设计

define MPX5500DP_MIN_VOLTAGE 0.2f // 最小输出电压(V)#define MPX5500DP_MAX_VOLTAGE 4.7f // 最大输出电压(V)#define MPX5500DP_MIN_PRESSURE 0.0f // 最小压力(kPa)#define MPX5500DP_MAX_PRESSURE 500.0f // 最大压力(kPa)* @brief 读取压力值(kPa)// 计算压力值 (线性转换)

corlin6688的博客 196

浪潮信息KSecure安全防御软件之程序管控功能

安全管理平台是一套基于B/S架构的软件,负责针对所有受保护云主机进程安全策略的统一制定、安全事件的集中存储和分析、安全状态的统一监控;云峦操作系统安全防御软件企业版(以下简称“KSecure企业版”) 是一款集安全检测、安全防御、安全响应为一体,面向云主机环境的集成化、可视化的安全防护系统。上述策略生效后,testApp下的程序允许过程中产生的程序文件就是白名单程序了。Vim更新了test程序后,test程序是一个全新的程序(MD5变化了),但是由于是信任目录的程序更新的,所以也是白名单。

weixin_48038400的博客 318

RAG 实战:LangChain + 向量数据库构建知识问答系统

从文档加载、分割、嵌入到检索增强生成,完整实现一个基于本地文档的知识问答系统。

kaixin110a的博客 189

ICV:Metal Fill Insertion流程

如果不想删除先前加的metal fill,可以使用signoff_create_metal_fill -mode add命令,当使用这个mode后,工具不会fix density问题,哪怕设置了signoff.create_metal_fill.fix_density_errors,设置这个mode后可以使用以下option控制metal fill 的插入。默认情况下,signoff_create_metal_fill是会删掉已经加进去的metal/via fill再重新加的。

m0_61544122的博客 1134

KeyarchOS工具系列 | 新一代轻量化“零侵入”安全防御组件KSecure

基于标准和最佳实践对操作系统配置进行检测和自动修复,提升操作系统的合规性和安全性。支持用户结合实际的安全需求选择实施加固和扩展,以便更好地满足对不同用户不同场景的配置安全基准要求。为关键业务服务器提供保护,仅允许合法应用程序对客户的关键业务文件进行操作,限制系统超级管理员权限,防止误操作或账号泄露导致的重要文件/配置的破坏。(extended Berkeley Packet Filter)是一种新的内核技术,提供了一种安全、可编程的方式来扩展内核功能,具有“,为应用提供安全可信的计算环境和安全服务。

ITer_szlgz的博客 439

Agentic AI应用架构师如何提升AI应用的灵活性

可扩展性(Scalability):快速添加新功能或扩展任务范围(如Agent从“客服”扩展到“供应链管理”);可修改性(Modifiability):调整Agent的决策逻辑或动作策略,无需重构整个系统;鲁棒性(Robustness):在环境异常或数据噪声下保持性能稳定;自适应(Self-Adaptation):自主学习新场景,无需人工干预。状态空间(S):Agent能感知的所有内部/外部状态(如用户需求、环境数据);动作空间(A):Agent能执行的所有动作(如调用工具、发送消息);

项目管理的博客 604

eBPF技术实践白皮书精选:基于eBPF的新一代主机安全解决方案

Linux Kernel 5.7引入了LSM扩展eBPF(简称BPF-LSM),而无需配置LSM模块(SELinux、AppArmor等)或加载自定义内核模块,通过在LSM层面的文件、进程、网络等hook加载eBPF程序,获取应用的异常行为,通过与内置和自定义的安全策略对比后,进行细粒度的(函数级)实时拦截,实现入侵检测和关键文件和进程防御功能。Linux操作系统漏洞曝出频率呈现逐年上涨的趋势,新型攻击层出不穷,攻击者利用漏洞实现权限提升、业务关键信息的获取等,严重破坏了操作系统的机密性、可用性和完整性。

八哥快走开的博客 405

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

新增六大功能解析!eBPF 技术实践白皮书第二版正式发布(附下载链接)

揭秘eBPF最新技术进展。

weixin_60347558的博客 1694

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

浪潮 inspur K-DB 技术白皮书

浪潮 inspur K-DB 技术白皮书

msdnchina的专栏@JiNan,ShanDong 4661

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux输入输出重定向与用户管理精要

本文系统梳理了Linux输入输出与用户组管理核心内容。输入输出部分涵盖字符设备与块设备区别、文件描述符、重定向与管道机制,重点解析2>&1等易错点;用户管理部分详解3A安全机制、用户分类、配置文件及常用命令(如useradd、passwd、sudo),强调权限最小化与安全审计。全文突出实践应用,适用于系统运维与考试复习。

2301_80092853的博客 634

Linux 网络排障实战:工业边缘场景下的 ss 与 netsta

工业网关的网络问题 — 服务起不来、连接堆积、外联异常 — 大多能从 socket 状态入手定位。;netstat 属于已停止维护的 net-tools,本文仅作对照。从工程实战角度梳理连接排查的完整用法。

ZenovaEdgeOS的博客 439

linux下面Kconfig简说depends on和select

关键字作用在你这段配置里的含义depends on门槛:条件不满足,选项不出现必须有 I2C、V4L2、MD6000 平台支持select强制:本选项开启,则被选项自动开启IMX178 开启时,自动打开 Media Controller 和 V4L2 Subdev API简单记:depends on管“我需不需要别人”select管“我开启了就顺手把别人拉上”。备注: 不会被看见,则不会被编译进去default nhelp+123。

hezhensheng007的专栏 199

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 286

Linux 学习 - 第十五周作业

与 2.4 步骤相同, 唯一差别是先装 docker, 再用 cri-dockerd 把 docker 适配成 CRI, 因为 v1.24 之后移除了内置的 dockershim。组件之间只有一条通道: 全部组件都 watch 或写入 kube-apiserver, 由 apiserver 落 etcd, 组件之间从不直接通信。设置 immutable: true 后不能修改, 只能删除重建。全程异步、watch 驱动, 没有任何组件去命令另一个组件, 这就是声明式架构的本质。

corey93的博客 191

linux用phytool测试mdio接口的phy芯片

【代码】linux用phytool测试mdio接口的phy芯片。

qq_26074053的博客 203

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 243

【Linux】35:应用层自定义协议和序列化

本文实现了一个基于TCP字节流的网络计算器,通过自定义协议(长度头+JSON)解决粘包问题。核心在于应用层协议设计:使用Jsoncpp进行序列化与反序列化,以“长度\r\nJSON报文\r\n”格式封装数据,确保读取完整性。服务端采用多进程模型(二次fork)处理并发请求,客户端循环输入并发送请求,服务端计算后返回结果。项目融合了Socket编程、多进程、策略模式日志、RAII锁等技术,完整演示了从底层通信到高层业务的全栈实现。

qq_62473190的博客 105

Instabox 云端 Linux 虚拟机配置中文拼音输入法

Fcitx5 和拼音已安装、桌面会话加载了输入法环境变量、Fcitx 当前处于激活状态。在这次 Debian + XFCE 排查中,拼音本来已经安装;问题出在桌面会话没有正确加载变量,而且 Fcitx 需要再次激活。配置登录环境并执行后,当前输入法显示为pinyin,中文输入恢复正常。

binweisili的博客 137

第12篇:VXLAN协议深度解析——智算网络的二层隧道(附Linux实战抓包)

VXLAN突破传统VLAN 4094个隔离限制,通过MAC-in-UDP封装实现1600万虚拟网络(VNI),解决云数据中心和AI智算集群中二层跨三层、多租户隔离与虚拟机热迁移难题。其核心在于将二层帧嵌入IP网络,由VTEP负责封装/解封装,借助Underlay IP路由实现逻辑二层连通。实验验证了点对点VXLAN隧道搭建与Wireshark抓包解析,揭示了50字节封装开销及MTU调优必要性。结合RDMA与EVPN控制平面,VXLAN成为智算网络关键支撑技术。

cyf31的专栏 636
上一篇: 云栖大会 | 浪潮信息、龙蜥社区共同发布《可信计算技术最佳实践》白皮书(可下载)
下一篇: 在KeyarchOS操作系统上安装运行Bowtie2(测序序列与参考序列比对)
KeyarchOS
博客等级 码龄3年 1312粉丝 339原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值