首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
merge
emoji
cookie
const
web
express
hashtable
main
function
filter
go
audio
frameworks
list
byte
tree
input
php7
range
search
callback
数组
string
lua
timestamp
char
iostream
format
bitmap
tags
nodejs
header
perl
integer
default
require
process
jar
fetch
heap
stream
hashcode
python2
bash
keyword
less
email
runtime
httprequest
subset
copy
php5
jsp
datetime
join
node.js
md5
match
settings
web3
object
include
hook
dockerfile
config
triggers
c语言
uri
cPlusPlus
controller
js
netty
command
replace
shell
substring
loops
dll
int
当前位置:
开发笔记
>
编程语言
> 正文
eBPF和WebAssembly:云原生VM的比较及应用领域
作者:强毛 | 来源:互联网 | 2023-12-14 21:27
本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdgeRuntime的案例,展示了WebAssembly作为原生应用程序的潜力。
当今
云原生
世界中两个最热门的轻量级代码执行沙箱/VM 是eBPF和WebAssembly。它们都运行从 C、C++ 和 Rust 编译的高性能字节码程序。
然而,最大的区别在于: eBPF 在 Linux 内核中运行,而 WebAssembly 在用户空间中运行。
eBPF 有一些编程限制,使其在内核用例中是安全的(例如,没有无限循环)。但这也意味着 eBPF 是图灵不完整的。另一方面,WebAssembly 是一种图灵完备的语言,具有打破沙盒和访问原生 OS 库的扩展。
一般来说,eBPF 适用于网络或安全相关的任务,而 WebAssembly 则非常适用于商业应用。但肯定有重叠。
首先,已经有案例努力在Linux 内核中[url=https://link.medium.com/HAUbDlHM4ib]运行 WebAssembly[/url]。然而,他们在很大程度上是不成功的。eBPF 是这个用例的更好选择。
然而,WebAssembly 程序可以处理许多类似内核的任务。WebAssembly 可以被 AOT 编译成原生应用程序。基于 LLVM 的云原生 WebAssembly 编译器的一个很好的例子是来自CNCF的WasmEdge Runtime。本机应用程序将所有沙箱检查合并到本机库中。这允许 WebAssembly 程序表现得像一个独立的 unikernel “库操作系统”。
此外,这种 AOT 编译的沙盒 WebAssembly 应用程序可以在微内核操作系统上运行,例如seL4,并且可以接管许多“内核级”任务。
虽然 WebAssembly 可以下降到内核级别,但 eBPF 也可以上升到应用程序级别。例如,服务网格代理通常支持WebAssembly 作为扩展机制。由于这些代理基本上是网络应用程序,因此可以在 eBPF 中编写一些扩展,以在不影响安全性和可
扩展性
的情况下获得更高的性能和可观察性。
在服务网格用例中,WebAssembly 非常适合sidecar
微服务
应用程序
,eBPF 适合通过代理路由 API 流量并监控整个应用程序。
eBPF 和 WebAssembly 的兴起对开发人员来说是个好消息。我们有更多的工具来管理和编程日益复杂的基础设施。Rust 已成为这两种虚拟机的领先编程语言,因为它具有高性能,并且可以由 LLVM 编译为机器代码,而无需额外的运行时支持。
web
rust
编译
编程
linux
安全
扩展
https
runtime
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
web
秒建一个后台管理系统?用这5个开源免费的Java项目就够了
秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ...
[详细]
蜡笔小新 2024-11-12 03:21:33
format
Android 构建基础流程详解
Android 构建基础流程详解 ...
[详细]
蜡笔小新 2024-11-10 15:45:20
char
IOS Run loop详解
为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ...
[详细]
蜡笔小新 2024-11-13 12:14:35
web
应用链时代,详解 Avalanche 与 Cosmos 的差异
应用链时代,详解 Avalanche 与 Cosmos 的差异 ...
[详细]
蜡笔小新 2024-11-13 09:37:19
string
Java 并发编程:深入解析 AtomicInteger 和 CAS 无锁算法
在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ...
[详细]
蜡笔小新 2024-11-12 16:40:04
char
MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ...
[详细]
蜡笔小新 2024-11-12 15:57:04
char
合天网络安全实验室CTF实战演练中的逆向工程挑战题
近期在研究逆向工程,因此尝试了一些CTF题目。通过合天网络安全实验室的CTF实战演练平台(http://www.hetianlab.com/CTFrace.html),我对Linux逆向工程的掌握还不够深入,因此暂时跳过了RE300题目。首先从逆向100开始,将文件后缀名修改为.apk进行初步分析。这一过程不仅帮助我熟悉了基本的逆向技巧,还加深了对Android应用结构的理解。 ...
[详细]
蜡笔小新 2024-11-11 21:02:10
go
深入解析浏览器内核与版本的发展历程
浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ...
[详细]
蜡笔小新 2024-11-11 13:34:37
format
基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ...
[详细]
蜡笔小新 2024-11-11 10:58:21
format
WordPress Duplicator 0.4.4 版本存在跨站脚本攻击漏洞分析
在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ...
[详细]
蜡笔小新 2024-11-10 13:16:43
char
深入理解ASCII、ANSI、GB2312、UNICODE及UTF-8、UTF-16编码
本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ...
[详细]
蜡笔小新 2024-11-13 07:33:27
char
Shell脚本编译器的全面解析与应用指南
Shell脚本编译器的全面解析与应用指南 ...
[详细]
蜡笔小新 2024-11-11 18:58:26
char
SQL Server系统的基本概述与核心功能解析
本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ...
[详细]
蜡笔小新 2024-11-11 15:59:32
char
深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ...
[详细]
蜡笔小新 2024-11-11 13:13:17
go
OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ...
[详细]
蜡笔小新 2024-11-11 09:47:50
强毛
这个家伙很懒,什么也没留下!
Tags | 热门标签
merge
emoji
cookie
const
web
express
hashtable
main
function
filter
go
audio
frameworks
list
byte
tree
input
php7
range
search
callback
数组
string
lua
timestamp
char
iostream
format
bitmap
tags
RankList | 热门文章
1
C# 获取实体类的字段名称和值
2
mysql超哥
3
折腾个半死,数据库初始化设置不当报错 ORA01078: failure in proces...
4
Vue项目优化上线
5
《汉宫春》翻译 原文赏析诗人宋赵时奚
6
mmcls多标签分类实战(二):resnet多标签分类
7
Codeigniter3.1.6开启csrf访问被拒绝
8
计算机图形学应用题,《计算机图形学》练习题(答案)
9
Windows7 安装TensorflowGPU文档
10
开发笔记:读《分布式一致性原理》JAVA客户端API操作2
11
java 控制台输入_安装Java环境的那些事
12
国庆节到了,安利一个Android的自动动态授权插件
13
万能五笔设置(万能五笔设置向导打不开)
14
ava.lang.Class.getDeclaredMethod()方法
15
【完全背包】A005_LC_贴纸拼词(dp + 状态压缩)
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有