<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cloud Hypervisor学习笔记 – unikernel</title>
    <link>https://skyao.net/learning-cloud-hypervisor/features/unikernel/</link>
    <description>Recent content in unikernel on Cloud Hypervisor学习笔记</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 15 Oct 2025 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="https://skyao.net/learning-cloud-hypervisor/features/unikernel/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Features: Running Nanos Unikernels under Cloud Hypervisor</title>
      <link>https://skyao.net/learning-cloud-hypervisor/features/unikernel/running-nanos-unikernels/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cloud-hypervisor/features/unikernel/running-nanos-unikernels/</guid>
      <description>
        
        
        &lt;p&gt;Running Nanos Unikernels under Cloud Hypervisor&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=1IteC54pcWM&#34;&gt;https://www.youtube.com/watch?v=1IteC54pcWM&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;这是一份为您详细整理的视频内容图文解析。由于我无法直接生成视频截图文件，我将采用**“关键画面描述与终端代码块还原”**的方式来为您展示“图片”和视觉信息，结合详细的文字解析，带您完整回顾该视频。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;-视频内容摘要-summary&#34;&gt;📑 视频内容摘要 (Summary)&lt;/h3&gt;
&lt;p&gt;本视频是一个关于 &lt;strong&gt;Cloud Hypervisor&lt;/strong&gt; 与 &lt;strong&gt;Nanos Unikernel (单内核)&lt;/strong&gt; 结合使用的硬核技术演示。
作者首先介绍了 Cloud Hypervisor 的官方网站、核心特性（如基于 Rust 开发、毫秒级启动、极小内存开销等）以及其背后的支持大厂（包含腾讯云等）。随后，作者转入 Linux 终端实战，展示了一个简单的 Go 语言程序，将其编译为 Nanos Unikernel 镜像，并通过 Cloud Hypervisor 极速拉起该轻量级虚拟机。程序成功在虚拟机内运行并输出日志。最后，作者通过强杀进程结束了演示，并总结指出这种极速、轻量的技术栈非常适合用来构建 Serverless（无服务器）架构。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;-详细内容与图文解析-detailed-breakdown&#34;&gt;🎬 详细内容与图文解析 (Detailed Breakdown)&lt;/h3&gt;
&lt;h4 id=&#34;第一阶段介绍-cloud-hypervisor-0000---0027&#34;&gt;第一阶段：介绍 Cloud Hypervisor (00:00 - 00:27)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📺 画面展示：&lt;/strong&gt;
浏览器停留在 Cloud Hypervisor 的官方网站主页 (&lt;code&gt;cloudhypervisor.org&lt;/code&gt;)。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[网页视觉呈现]&lt;/strong&gt;
&lt;strong&gt;大标题&lt;/strong&gt;：Run Cloud Virtual Machines Securely and Efficiently (安全高效地运行云虚拟机)
&lt;strong&gt;简介&lt;/strong&gt;：Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) implemented in Rust&amp;hellip;
&lt;strong&gt;核心特性面板&lt;/strong&gt;：Secure (安全)、Fast (快，启动&amp;lt;100ms)、Slim (轻量)、Kata Containers (支持 Kata)、Live migration (热迁移) 等。
&lt;strong&gt;支持机构&lt;/strong&gt;：Alibaba, AMD, ARM, ByteDance, Intel, Microsoft, &lt;strong&gt;Tencent Cloud&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📝 文字解说：&lt;/strong&gt;
作者欢迎大家来到视频教程系列。今天的主角是 Cloud Hypervisor。他介绍道，这是一个用 Rust 语言编写的全新虚拟机监视器（VMM）。它拥有许多酷炫的功能，并且得到了如阿里巴巴、字节跳动、英特尔、腾讯、Ampere 等众多大厂的支持。作者预告，今天的演示目标是在 Cloud Hypervisor 上启动一些 Unikernel（单内核）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;第二阶段准备-go-语言测试程序-0027---0050&#34;&gt;第二阶段：准备 Go 语言测试程序 (00:27 - 00:50)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📺 画面展示：&lt;/strong&gt;
画面切换到纯黑背景的 Linux 终端。作者使用 Vim 打开了一个名为 &lt;code&gt;main.go&lt;/code&gt; 的文件。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[终端代码截图还原]&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;time&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;main&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;++&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;fmt&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Println&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;hello from nanos&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;time&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Sleep&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;time&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Second&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📝 文字解说：&lt;/strong&gt;
作者展示了他准备好的一个非常简单的 Go 语言程序。这个程序的功能只有一个：通过一个 &lt;code&gt;for&lt;/code&gt; 循环，每隔 1 秒钟在控制台打印一次 &lt;code&gt;&amp;quot;hello from nanos&amp;quot;&lt;/code&gt;，总共循环 10 次。作者表示，他在此之前已经提前将这个 Go 程序编译好了。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;第三阶段查看编译产物与-nanos-内核-0050---0136&#34;&gt;第三阶段：查看编译产物与 Nanos 内核 (00:50 - 01:36)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📺 画面展示：&lt;/strong&gt;
终端执行了 &lt;code&gt;ls -lh&lt;/code&gt; 命令，展示当前目录下的文件列表和大小。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[终端输出截图还原]&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$ ls -lh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rwxrwxr-x &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt; cyberg cyberg 4.0M May &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt; 08:15 cloud-hypervisor
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rw-rw-r-- &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt; cyberg cyberg 2.4M May &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt; 08:27 kernel.img
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rwxrwxr-x &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt; cyberg cyberg &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;120&lt;/span&gt;  May &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;24&lt;/span&gt; 08:30 run.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📝 文字解说：&lt;/strong&gt;
作者向大家展示当前工作目录中的三个关键文件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;cloud-hypervisor&lt;/code&gt;：编译好的 VMM 执行文件，体积非常小巧，大约只有 &lt;strong&gt;4MB&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kernel.img&lt;/code&gt;：这是 Nanos Unikernel 的内核镜像文件。&lt;/li&gt;
&lt;li&gt;为了照顾想要自己从源码编译 Nanos 的开发者，作者还特意敲击路径，展示了这个 &lt;code&gt;kernel.img&lt;/code&gt; 在 Nanos 源码树中的默认生成位置（通常在 &lt;code&gt;.../nanos/output/platform/pc/bin/kernel.img&lt;/code&gt;）。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;第四阶段一键极速启动轻量虚拟机-0136---0218&#34;&gt;第四阶段：一键极速启动轻量虚拟机 (01:36 - 02:18)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📺 画面展示：&lt;/strong&gt;
作者查看并执行了启动脚本 &lt;code&gt;run.sh&lt;/code&gt;。随后，终端立刻开始疯狂输出虚拟机的启动日志和 Go 程序的运行结果。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[启动脚本与运行画面还原]&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 查看 run.sh 内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$ cat run.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./cloud-hypervisor --kernel kernel.img --disk &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;path=/home/cyberg/ch/g&amp;#34;&lt;/span&gt; --console off --serial tty
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 执行脚本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$ sudo ./run.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;sudo&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt; password &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; cyberg: ******
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 虚拟机瞬间拉起并输出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;en1: assigned FE80::2C2C:47FF:FEE6:7D07
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello from nanos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello from nanos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello from nanos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📝 文字解说：&lt;/strong&gt;
作者打开了 &lt;code&gt;run.sh&lt;/code&gt; 脚本，讲解了启动 Cloud Hypervisor 的核心参数：指定内核文件 (&lt;code&gt;--kernel&lt;/code&gt;)、指定挂载的磁盘路径 (&lt;code&gt;--disk&lt;/code&gt;) 以及将输出重定向到串口终端 (&lt;code&gt;--serial tty&lt;/code&gt;)。
当他输入 &lt;code&gt;sudo&lt;/code&gt; 密码按下回车后，&lt;strong&gt;虚拟机在瞬间（毫秒级）就完成了启动&lt;/strong&gt;。我们直接在屏幕上看到了网卡分配的日志，紧接着，刚才编写的 Go 程序开始正常工作，屏幕上稳稳地每秒打印出一句 &lt;code&gt;&amp;quot;hello from nanos&amp;quot;&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;第五阶段展示进程管理并结束演示-0218---0244&#34;&gt;第五阶段：展示进程管理并结束演示 (02:18 - 02:44)&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📺 画面展示：&lt;/strong&gt;
作者将终端分屏（Split Screen）。左侧继续打印日志，右侧用于查找并杀掉进程。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;[分屏操作画面还原]&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 右侧终端操作&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$ ps aux &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt; grep cloud
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root     &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;13904&lt;/span&gt;  0.0  0.0 &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2004488&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;64536&lt;/span&gt; pts/2 ... ./cloud-hypervisor --kernel ...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$ sudo &lt;span style=&#34;color:#204a87&#34;&gt;kill&lt;/span&gt; -9 &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;13904&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 左侧终端显示：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello from nanos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hello from nanos
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Killed
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cyberg@nanos:~/...$
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;📝 文字解说：&lt;/strong&gt;
作者提到，Cloud Hypervisor 其实还提供了一个非常强大的 API（REST API），可以通过 API 来控制虚拟机的生命周期，但他今天不打算演示，留到以后的视频再说。
为了结束当前一直打印的虚拟机，他在右侧终端使用 &lt;code&gt;ps aux&lt;/code&gt; 找到了 Cloud Hypervisor 的进程 PID，然后直接运行 &lt;code&gt;sudo kill -9&lt;/code&gt; 强杀了该进程。左侧的虚拟机随即停止运行，显示 &lt;code&gt;Killed&lt;/code&gt; 并退回了宿主机的终端提示符。
最后，作者总结道：“这就是在 Cloud Hypervisor 下运行 Nanos Unikernel 的演示。我认为&lt;strong&gt;你可以利用这项技术制作出非常酷炫的 Serverless（无服务器）风格的特性&lt;/strong&gt;。下次再见！”&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
