首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
dagger
iostream
eval
python
tags
process
future
httpclient
vbscript
blob
metadata
node.js
python3
go
select
datetime
request
buffer
merge
install
default
join
python2
yaml
timestamp
javascript
usb
bash
cPlusPlus
jsp
tree
schema
httprequest
main
export
io
shell
emoji
uri
triggers
command
search
hashset
post
golang
erlang
controller
audio
loops
hashtable
frameworks
instance
ascii
const
object
window
solr
heatmap
md5
string
settings
char
express
header
email
netty
testing
less
function
flutter
subset
perl
cpython
keyword
c语言
scala
import
spring
fetch
当前位置:
开发笔记
>
编程语言
> 正文
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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
ide
服务网关与流量网关
一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ...
[详细]
蜡笔小新 2023-10-17 17:57:54
ide
如何用UE4制作2D游戏文档——计算篇
篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-14 09:50:34
ide
如何在服务器主机上实现文件共享的方法和工具
本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ...
[详细]
蜡笔小新 2023-12-13 13:23:48
ide
云原生应用最佳开发实践之十二原则(12factor)
目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ...
[详细]
蜡笔小新 2023-12-09 09:35:02
go
Docker Data Center系列(四) 离线安装UCP和DTR
DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ...
[详细]
蜡笔小新 2023-10-17 17:40:43
go
k8s+springboot+Eureka如何平滑上下线服务
k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ...
[详细]
蜡笔小新 2023-10-17 17:11:05
go
【技术分享】一个 ELF 蠕虫分析
【技术分享】一个 ELF 蠕虫分析 ...
[详细]
蜡笔小新 2023-10-17 16:12:28
request
request:fail错误(含https解决方案)(真机预览问题)
问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败,PC端是可以请求 ...
[详细]
蜡笔小新 2023-10-17 12:10:29
python
都说Python处理速度慢,为何月活7亿的 Instagram依然在使用Python?
点击“Python编程与实战”,选择“置顶公众号”第一时间获取Python技术干货!来自|简书作者|我爱学python链接|https:www.jian ...
[详细]
蜡笔小新 2023-10-16 19:27:08
bash
解决Docker中volume的权限问题的方法
在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ...
[详细]
蜡笔小新 2023-12-14 18:48:02
default
数据库的存储结构及其重要性
本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ...
[详细]
蜡笔小新 2023-12-14 16:00:02
default
云服务器API接口的入门使用及功能解析
本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ...
[详细]
蜡笔小新 2023-12-14 12:43:39
default
zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ...
[详细]
蜡笔小新 2023-10-17 14:51:06
default
后台自动化测试与持续部署实践
后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ...
[详细]
蜡笔小新 2023-10-17 13:30:06
go
为什么说产品化是私有IaaS的唯一出路?
提供:ZStack云计算原创2016-12-26张鑫讲师介绍张鑫ZStack总架构师、联合创始人《系统虚拟化》主要作者,曾任职Intel开源软件技术中心 ...
[详细]
蜡笔小新 2023-10-17 09:33:38
强毛
这个家伙很懒,什么也没留下!
Tags | 热门标签
dagger
iostream
eval
python
tags
process
future
httpclient
vbscript
blob
metadata
node.js
python3
go
select
datetime
request
buffer
merge
install
default
join
python2
yaml
timestamp
javascript
usb
bash
cPlusPlus
jsp
RankList | 热门文章
1
国内火狐浏览器不让使用有关广告插件解决方法
2
从出身高贵的公主到西辽君主,揭秘耶律普速完传奇的一生
3
TAL好未来秋招编程题
4
stm32f407使用Keil uV5建立工程日志
5
jquery的ajax方法异步提交表单
6
插件的内部实现_webpack插件怎么手写
7
php解释器是干什么的(2023年最新分享)
8
Access表中数据超过2万,查询怎么总是奇怪的结果呢?
9
荣耀FlyPods 3 深度体验,这款无线蓝牙耳机到底咋样?
10
大数据,还是DBA?
11
Bootstrap学习按钮
12
概念:弱监督学习
13
【对讲机的那点事】玩对讲机,你必须要了解的技术指标(上)
14
【whk向】学习报告:初中化学学习
15
swift 引入pod_引入自旋:Swift中的通用反馈循环系统
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有