Programming languages V8的一般服务器端使用:隔离

Programming languages V8的一般服务器端使用:隔离,programming-languages,v8,embedded-v8,javascript-engine,Programming Languages,V8,Embedded V8,Javascript Engine,谷歌的开源V8引擎是成熟的、高性能的JIT编译器 主要实现在C++中,作为JS中心执行运行时。 它有一个隔离实现(V8:Isolates),在单个进程中提供隔离粒度 引出问题的两部分 (通用) 此功能能否广泛用于跨服务器端web应用程序引擎(如nginx、apache)和编程语言的隔离 (以及更具体的->) 我对V8的理解是,它是为JS脚本语言设计的(尽管它直接编译成机器代码)。 如果想要使用编程语言来编写源代码,比如Haskell,C++/C,那么两者之间仍然有JS接口。 在仍然使用V8:Is

谷歌的开源V8引擎是成熟的、高性能的JIT编译器

主要实现在C++中,作为JS中心执行运行时。 它有一个隔离实现(

V8:Isolates
),在单个进程中提供隔离粒度

引出问题的两部分

(通用) 此功能能否广泛用于跨服务器端web应用程序引擎(如nginx、apache)和编程语言的隔离

(以及更具体的->)

我对V8的理解是,它是为JS脚本语言设计的(尽管它直接编译成机器代码)。 如果想要使用编程语言来编写源代码,比如Haskell,C++/C,那么两者之间仍然有JS接口。 在仍然使用
V8:Isolates
的情况下,是否有更直接的方法来生成机器代码?

V8是一个JavaScript(以及最新版本中的WebAssembly)引擎,因此不能用于编译或执行任何其他语言

如果你有C++代码,你需要使用C++编译器来生成可执行的机器代码。Haskell代码需要Haskell编译器

根据您的需求,WebAssembly可能会对您感兴趣:它是C++语言的一个可移植的编译目标,它比JavaScript更适合这个目的。 这应该回答你的“更具体”和“一般”问题

请注意,在V8的隔离中并没有任何魔力可以用于其他目的;该术语主要描述在同一进程中拥有多个单独的V8实例的能力。如果你从零开始自己的项目(不管它的目的是什么),这很容易实现,你只需要保持一点编码规则;对于现有的代码库,它需要重构所有全局状态(静态变量等)

另外,请注意,今年世界已经了解到,从安全角度来看,实际上不存在进程内隔离。如果您有强大的安全需求,那么至少您必须为不同的安全域运行不同的进程。(需要明确的是,V8的隔离不提供防止侧通道攻击的保护。)

V8是一个JavaScript(以及最新版本中的WebAssembly)引擎,因此不能用于编译或执行任何其他语言

如果你有C++代码,你需要使用C++编译器来生成可执行的机器代码。Haskell代码需要Haskell编译器

根据您的需求,WebAssembly可能会对您感兴趣:它是C++语言的一个可移植的编译目标,它比JavaScript更适合这个目的。 这应该回答你的“更具体”和“一般”问题

请注意,在V8的隔离中并没有任何魔力可以用于其他目的;该术语主要描述在同一进程中拥有多个单独的V8实例的能力。如果你从零开始自己的项目(不管它的目的是什么),这很容易实现,你只需要保持一点编码规则;对于现有的代码库,它需要重构所有全局状态(静态变量等)


另外,请注意,今年世界已经了解到,从安全角度来看,实际上不存在进程内隔离。如果您有强大的安全需求,那么至少您必须为不同的安全域运行不同的进程。(需要明确的是,V8的隔离不提供防止侧通道攻击的保护。)

>今年,世界已经了解到,从安全角度来看,实际上不存在进程内隔离\n您能否指出您所指的特定事件?侧通道攻击的“幽灵”类。是否存在不受影响的隔离解决方案?我相信目前假定单独的进程彼此有效隔离,只要关闭“超线程”。>world今年已经了解到,从安全角度来看,实际上不存在进程内隔离\n您能否指出您似乎指的某个特定事件?侧通道攻击的“幽灵”类。是否存在不受影响的隔离解决方案?我相信,只要关闭“超线程”,当前假定各个进程彼此有效隔离。