比Linux更快

2020-05-02 17:45:37

超光速通常指的是比光速快。在“星际迷航”宇宙中,一种被称为速子的理论粒子为某些宇宙飞船提供动力,使剧情在多个系列和电影系列中持续了几十年。

不过,今天我们要讨论的是运行Linux应用程序的速度要比Linux快。我们的公司NanoVM与单内核合作已经有一段时间了,但我们主要关注的是它们的安全属性,并没有太多考虑它们的性能。

有些人甚至正确地指出,Nanos不是传统的真正的单一内核,因为它为内核和用户代码保留了不同的特权级别。这是因为有特定的特权指令允许您更改页面映射,如果您拥有该功能,那么世界上所有的ASLR和页面保护都无关紧要。你会被黑客攻击的。

话虽如此,没有什么能阻止我们比大多数Linux发行版或Linux更快地运行软件。事实上,这几乎是一个保证,因为Linux是一个通用的操作系统,其构建的目的只是为了运行从最新的FPS游戏到承载数据库再到在边缘进行推理的一切。

它也是专门为在裸机上运行而构建的,因此它拥有单一内核永远不会包含的功能。超过一半的Linux是设备驱动程序,这不是你决定为你的手卷内核挑选什么的问题。请记住,这些相同的设计概念(多进程、多用户、交互性)是PDP-7的动力所在。

尽管我们谈论的是多进程模型,但您在裸机安装中可能需要它。您希望在正在阅读本文的笔记本电脑或手机上实现该功能。但是,对于始终在虚拟机中运行的生产服务器端应用程序(目前几乎占所有服务器端应用程序的99%),这种情况就不存在了。

事实上,我们既不想要用户,也不想要远程交互访问,也不想要一堆随机运行的非我们软件的垃圾。已经有一层Linux作为虚拟机管理程序运行-来宾是否也需要成为重量级GPO?正是这些环境特征使我们能够做我们所做的事情。

在我们继续前进之前,应该清楚的是,Linux是一个通用操作系统,因此有很多用例--例如,Linux现在是,也将永远是我们最喜欢的开发环境。

我们不仅通过只允许一个应用程序运行来获得安全好处,而且它的运行速度往往要快得多。市面上有很多单内核项目,但最终克隆数十年的内核工作只需要花费大量的时间和精力,而且您可能需要数年时间才能看到常用软件的性能提升。

由于OPS是用Go编写的,我们公司也有很多其他软件项目是用Go编写的,我们已经用Go进行了相当多的测试,因此我们开始看到一些结果。您只需使用最新的Nanos版本就可以复制大多数GO版本,但是如果您使用的是GO 1.14,您将需要从源代码(或使用夜间版本)构建Nano,因为我们刚刚提供了一个SA_ONSTACK修复程序。在GO 1.13和.之间进行了日程安排更改。

要从源代码开始构建,您需要克隆Nanos,并且需要一个简单的make。如果您还没有安装OPS,您应该安装。从那里,您可以将本地版本复制到最新的操作版本,如下所示:

如果可以,强烈建议您只使用运维预置的版本。

包主要导入(";fmt";";net/http";)func main(){fmt.Println(";hello world!";)http.HandleFunc(";/";,func(w http.ResponseWriter,r*http.Request){fmt.Fprintf(w,&34;欢迎访问我的网站!";)})fs:=。))http.Handle(";/static/";,http.StripPrefix(";/static/";,fs))http.ListenAndServe(";0.0.0.0:8080";,nil)}。

现在让';s直接在GCE上启动另外两个实例。一个用于使用ab进行基准测试,另一个用于Go web服务器只运行在Debian实例上。

不要像作者那样愚蠢,想知道为什么延迟与不同的地区相差两个数量级-使用与OPS相同的地区和区域:

➜~scp-i~/.ssh/nope [email protected]:~/y/hackernoday.hackernoday 100%7321KB 9.0MB/s 00:00➜~gcloud beta计算scp--zone";us-west2-a&34;--project";hackernoday";gtest";:~/。

$Revision:1757674$>;版权所有1996年亚当·特维斯,宙斯技术有限公司,网址:www.zeustech.net/许可给阿帕奇软件基金会,网址:www.apache.org/Benchmark 10.240.0.38(请耐心等待).d