SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
Plan 9
           / paravirt.org
/ @go_vm



2010   2    23     @IIJ
  Kernel/VM
                            1
•        / @go_vm

•
•
    •   KVM



                    2
•   twitter




              3
?
Plan 9   ?
             4
5
Plan 9
•                     Plan9



•   30


•                ”        ”


•   http://circle.paravirt.org/c77




                                       6
Plan 9       (2)

•               ...

• KVM       VM



•       Plan9



                            7
•   09 12   30


•

•   3            50



•

                      8
•   2 10   OST




•



                 9
10
11
•             VMM

                           OS            OS
    •   KVM VirtualBox
                         VMM         VMM

    •   VMM         OS            OS



                           Type II VMM




                                              12
VM            CPU
•                   OS
        CPU



    •
    •

                         13
OS

TEXT    main+0(SB),0,$0
MOVL    $1,4(SP)
MOVL    $.string+0(SB),8(SP)
MOVL    $14,12(SP)
MOVL    $20,AX
INT     $64
MOVL    $0,4(SP)
MOVL    $8,AX
INT     $64
GLOBL   .string+0(SB),$16
DATA    .string+0(SB)/8,$”Hello, w”
DATA    .string+0(SB)/8,$”orld!¥z¥z¥n”
END     ,




                                         14
• CPU

 •          :

 •                  :
        ”       ”


                        15
16
x86




      17
x86




      18
•     (VMware)

•     (LilyVM)

•   (Xen)




                 19
•
•


    20
Intel          AMD
• CPU

    • Intel → Intel VT (vmx)
    • AMD → AMD-V (svm)
•        vmx                         svm



                                           21
vmx
      VMX-root mode     VMX-non root mode
            VMEntry



(                       (
                 )                          )
                        VMExit
    VMX-non root mode

                                            22
non-root
•


     mode
                 OS            OS

               VMM         VMM
•
    mode
    root                OS



                 Type II VMM




                                    23
root     non-root
     mode      mode




      VMM
                 OS




     kernel    user
     mode      mode




24
•
                                •



     kernel              user
     mode                mode
              sysenter




25
•




    26
•          VMM




                 non-root
                  mode
                              OS


                                  vmcall
•   VMM(   )


                 mode
                 root
                            VMM




                                           27
<   Plan9>



             28
Plan9
•        Plan9       KVM
                             Plan9



• socket,connect,send,recv
         Plan9



                                     29
(1)
TEXT vmcall(SB), $0
  MOVL b+0(FP),BX
                      •   Plan9

  MOVL c+4(FP),CX     •           BYTE
  MOVL d+8(FP),DX           vmx vmcall
  MOVL $12345, AX
  BYTE $0xf
  BYTE $0x1
                      •
  BYTE $0xc1
  RET



                                         30
(2)
                                            •   hsocket
int hsocket(int dom,int type,int proto)
{
  struct {int d;int t;int p;} arg;
  arg.d = dom;
  arg.t = type;
                                            •              socket
  arg.p = proto;                                      FD
  return vmcall(0,(int)&arg,sizeof(arg));
}

                                            •   KVM




                                                                    31
(3)
int hsend(int fd,void *buf,int len,int flg)
{                                             •   hsend
  struct {int fd;void *b;int l;int f;} arg;
  arg.fd = fd;
  arg.b = buf;
  arg.l = len;
  arg.f = flg;
                                              •           socket
  return vmcall(2,(int)&arg,sizeof(arg));         send
}

                                              •


                                                                   32
VMM
                                                •   hsend VMM
int hcall_socket(void *opaque,gva_t arg,int len)
{
  struct {int dom;int type;int proto;} harg;    •
    if(sizeof(harg) != len) return -EINVAL;
    if(copy_from_guest(opaque,&harg,arg,len))
        return -EFAULT;

    return socket(harg.dom,
                  harg.type,
                  harg.proto);
                                                •
}                                                       socket()




                                                                   33
34
</   Plan9>



              35
36
Plan9

•
•         adhoc

• Plan9


                     37
•   Plan9       Plan9
        Plan9




                        38
• KVM
 • VMRPC
 • Socket Outsourcing


                        39
VMRPC
•                   RPC



    •   →    RPC

    •
    •
    •
                          40
VMRPC



OS      OS




             41
                  41
Socket Outsourcing
•   VMRPC        Socket Hypercall Interface

•       OS         Socket API
             (BSD Socket        )

•                           Linux,Windows



    •

                                              42
•   OS

TCP/IP

                    OS
                         •
         NIC   VMM

                         •

                    OS
                         ‣
               43
                                  43
•
TCP/IP

                    OS
                         •   OS
         NIC   VMM

                         •

                    OS
                         ‣
               44
                                  44
•
TCP/IP                       OS

                    OS
                         •        OS
         NIC   VMM



TCP/IP

                    OS
                         ‣
               45
                                       45
Socket Outsourcing

• VMM

• VMRPC

•

                     46
• NIC              virtio Socket
 Outsourcing   iperf




                                   47
•
    • CPU: Intel Core i7 950 3.06GHz
    • NIC: Intel 82598EB (10G)
• VMM: KVM88 (VMRPC )
•       OS: Linux 2.6.25(SocketOutsourcing


                                             48
10000


          7500
[Mbps]




          5000


          2500


             0
                 e1000(emu)   virtio   Sos



                                             49
50
Plan9

•
    • dial       API

    • /net/tcp


                       51
API

   • Plan9                                   API           Sos Socket



       • API
       •                   Windows                                      *
*Improving Virtualized Network Performance by Delegating Network Processing
 Younggyun Koh,Calton Pu,Yasushi Shinjo,Hideki Eiraku,Go Saito,Daiyuu Nobori
                                IEEE NCA09


                                                                               52
/net/tcp
 •   Plan9       /net/tcp
           tcp

 •   SocketOutsourcing



 •   API

 •   Plan9




                            53
•
•   Plan9




            54
• KVM
    Plan9

•           Plan9




                    55
Demo
       56
•   Plan9     Hypercall



•       Hypercall




•     Plan9

                          57
http://circle.paravirt.org/c77




                                 58

Más contenido relacionado

La actualidad más candente

Introduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in LinuxIntroduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in Linux
Jazz Yao-Tsung Wang
 
Rootconf2009 Chubin Xgurulla
Rootconf2009 Chubin XgurullaRootconf2009 Chubin Xgurulla
Rootconf2009 Chubin Xgurulla
Liudmila Li
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議
Hiroki Mizuno
 

La actualidad más candente (20)

Flex pod driven by Openstack
Flex pod driven by OpenstackFlex pod driven by Openstack
Flex pod driven by Openstack
 
Introduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in LinuxIntroduction to Diskless Remote Boot in Linux
Introduction to Diskless Remote Boot in Linux
 
Openbsd days
Openbsd daysOpenbsd days
Openbsd days
 
Minio: Associated projects in Go programming.
Minio: Associated projects in Go programming. Minio: Associated projects in Go programming.
Minio: Associated projects in Go programming.
 
Rootconf2009 Chubin Xgurulla
Rootconf2009 Chubin XgurullaRootconf2009 Chubin Xgurulla
Rootconf2009 Chubin Xgurulla
 
Linux kernel bug hunting
Linux kernel bug huntingLinux kernel bug hunting
Linux kernel bug hunting
 
Workshop@naha_val3
Workshop@naha_val3Workshop@naha_val3
Workshop@naha_val3
 
Rasperry Pi and TI CC2650 IPv6 border router
Rasperry Pi and TI CC2650 IPv6 border routerRasperry Pi and TI CC2650 IPv6 border router
Rasperry Pi and TI CC2650 IPv6 border router
 
Qemu
QemuQemu
Qemu
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
 
How to manage stateful applications in Kubernetes
How to manage stateful applications in KubernetesHow to manage stateful applications in Kubernetes
How to manage stateful applications in Kubernetes
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
 
Linux encrypted container
Linux encrypted containerLinux encrypted container
Linux encrypted container
 
One plus 5t architecture
One plus 5t architectureOne plus 5t architecture
One plus 5t architecture
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議
 
ns2 install
ns2 installns2 install
ns2 install
 
testing-nfs
testing-nfstesting-nfs
testing-nfs
 
SwiftyGPIO
SwiftyGPIOSwiftyGPIO
SwiftyGPIO
 
Qt5 on ti processors
Qt5 on ti processorsQt5 on ti processors
Qt5 on ti processors
 
My First BCC
My First BCCMy First BCC
My First BCC
 

Similar a 軽快なPlan9 (第三回Kernel/VM探検隊)

[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
CODE BLUE
 
Vectorization on x86: all you need to know
Vectorization on x86: all you need to knowVectorization on x86: all you need to know
Vectorization on x86: all you need to know
Roberto Agostino Vitillo
 
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみたスマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Taro Matsuzawa
 

Similar a 軽快なPlan9 (第三回Kernel/VM探検隊) (20)

AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) HypervisorAsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
 
AVX512 assembly language in FFmpeg
AVX512 assembly language in FFmpegAVX512 assembly language in FFmpeg
AVX512 assembly language in FFmpeg
 
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
 
Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack Running Applications on the NetBSD Rump Kernel by Justin Cormack
Running Applications on the NetBSD Rump Kernel by Justin Cormack
 
Hardware support for efficient virtualization
Hardware support for efficient virtualizationHardware support for efficient virtualization
Hardware support for efficient virtualization
 
Java Jit. Compilation and optimization by Andrey Kovalenko
Java Jit. Compilation and optimization by Andrey KovalenkoJava Jit. Compilation and optimization by Andrey Kovalenko
Java Jit. Compilation and optimization by Andrey Kovalenko
 
OSインストーラーの自作方法
OSインストーラーの自作方法OSインストーラーの自作方法
OSインストーラーの自作方法
 
QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
 
Deep hooks
Deep hooksDeep hooks
Deep hooks
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
Genode Compositions
Genode CompositionsGenode Compositions
Genode Compositions
 
Clr jvm implementation differences
Clr jvm implementation differencesClr jvm implementation differences
Clr jvm implementation differences
 
Дмитрий Вовк: Векторизация кода под мобильные платформы
Дмитрий Вовк: Векторизация кода под мобильные платформыДмитрий Вовк: Векторизация кода под мобильные платформы
Дмитрий Вовк: Векторизация кода под мобильные платформы
 
Emulating With JavaScript
Emulating With JavaScriptEmulating With JavaScript
Emulating With JavaScript
 
Vectorization on x86: all you need to know
Vectorization on x86: all you need to knowVectorization on x86: all you need to know
Vectorization on x86: all you need to know
 
Introduction to PICAXE Microcontrollers
Introduction to PICAXE MicrocontrollersIntroduction to PICAXE Microcontrollers
Introduction to PICAXE Microcontrollers
 
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみたスマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
 
[ENG] IPv6 shipworm + My little Windows domain pwnie
[ENG] IPv6 shipworm + My little Windows domain pwnie[ENG] IPv6 shipworm + My little Windows domain pwnie
[ENG] IPv6 shipworm + My little Windows domain pwnie
 
Rsltollvm
RsltollvmRsltollvm
Rsltollvm
 
Building a robot with the .Net Micro Framework
Building a robot with the .Net Micro FrameworkBuilding a robot with the .Net Micro Framework
Building a robot with the .Net Micro Framework
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

軽快なPlan9 (第三回Kernel/VM探検隊)

  • 1. Plan 9 / paravirt.org / @go_vm 2010 2 23 @IIJ Kernel/VM 1
  • 2. / @go_vm • • • KVM 2
  • 3. twitter 3
  • 4. ? Plan 9 ? 4
  • 5. 5
  • 6. Plan 9 • Plan9 • 30 • ” ” • http://circle.paravirt.org/c77 6
  • 7. Plan 9 (2) • ... • KVM VM • Plan9 7
  • 8. 09 12 30 • • 3 50 • 8
  • 9. 2 10 OST • 9
  • 10. 10
  • 11. 11
  • 12. VMM OS OS • KVM VirtualBox VMM VMM • VMM OS OS Type II VMM 12
  • 13. VM CPU • OS CPU • • 13
  • 14. OS TEXT main+0(SB),0,$0 MOVL $1,4(SP) MOVL $.string+0(SB),8(SP) MOVL $14,12(SP) MOVL $20,AX INT $64 MOVL $0,4(SP) MOVL $8,AX INT $64 GLOBL .string+0(SB),$16 DATA .string+0(SB)/8,$”Hello, w” DATA .string+0(SB)/8,$”orld!¥z¥z¥n” END , 14
  • 15. • CPU • : • : ” ” 15
  • 16. 16
  • 17. x86 17
  • 18. x86 18
  • 19. (VMware) • (LilyVM) • (Xen) 19
  • 20. • • 20
  • 21. Intel AMD • CPU • Intel → Intel VT (vmx) • AMD → AMD-V (svm) • vmx svm 21
  • 22. vmx VMX-root mode VMX-non root mode VMEntry ( ( ) ) VMExit VMX-non root mode 22
  • 23. non-root • mode OS OS VMM VMM • mode root OS Type II VMM 23
  • 24. root non-root mode mode VMM OS kernel user mode mode 24
  • 25. • kernel user mode mode sysenter 25
  • 26. 26
  • 27. VMM non-root mode OS vmcall • VMM( ) mode root VMM 27
  • 28. < Plan9> 28
  • 29. Plan9 • Plan9 KVM Plan9 • socket,connect,send,recv Plan9 29
  • 30. (1) TEXT vmcall(SB), $0 MOVL b+0(FP),BX • Plan9 MOVL c+4(FP),CX • BYTE MOVL d+8(FP),DX vmx vmcall MOVL $12345, AX BYTE $0xf BYTE $0x1 • BYTE $0xc1 RET 30
  • 31. (2) • hsocket int hsocket(int dom,int type,int proto) { struct {int d;int t;int p;} arg; arg.d = dom; arg.t = type; • socket arg.p = proto; FD return vmcall(0,(int)&arg,sizeof(arg)); } • KVM 31
  • 32. (3) int hsend(int fd,void *buf,int len,int flg) { • hsend struct {int fd;void *b;int l;int f;} arg; arg.fd = fd; arg.b = buf; arg.l = len; arg.f = flg; • socket return vmcall(2,(int)&arg,sizeof(arg)); send } • 32
  • 33. VMM • hsend VMM int hcall_socket(void *opaque,gva_t arg,int len) { struct {int dom;int type;int proto;} harg; • if(sizeof(harg) != len) return -EINVAL; if(copy_from_guest(opaque,&harg,arg,len)) return -EFAULT; return socket(harg.dom, harg.type, harg.proto); • } socket() 33
  • 34. 34
  • 35. </ Plan9> 35
  • 36. 36
  • 37. Plan9 • • adhoc • Plan9 37
  • 38. Plan9 Plan9 Plan9 38
  • 39. • KVM • VMRPC • Socket Outsourcing 39
  • 40. VMRPC • RPC • → RPC • • • 40
  • 41. VMRPC OS OS 41 41
  • 42. Socket Outsourcing • VMRPC Socket Hypercall Interface • OS Socket API (BSD Socket ) • Linux,Windows • 42
  • 43. OS TCP/IP OS • NIC VMM • OS ‣ 43 43
  • 44. • TCP/IP OS • OS NIC VMM • OS ‣ 44 44
  • 45. • TCP/IP OS OS • OS NIC VMM TCP/IP OS ‣ 45 45
  • 47. • NIC virtio Socket Outsourcing iperf 47
  • 48. • CPU: Intel Core i7 950 3.06GHz • NIC: Intel 82598EB (10G) • VMM: KVM88 (VMRPC ) • OS: Linux 2.6.25(SocketOutsourcing 48
  • 49. 10000 7500 [Mbps] 5000 2500 0 e1000(emu) virtio Sos 49
  • 50. 50
  • 51. Plan9 • • dial API • /net/tcp 51
  • 52. API • Plan9 API Sos Socket • API • Windows * *Improving Virtualized Network Performance by Delegating Network Processing Younggyun Koh,Calton Pu,Yasushi Shinjo,Hideki Eiraku,Go Saito,Daiyuu Nobori IEEE NCA09 52
  • 53. /net/tcp • Plan9 /net/tcp tcp • SocketOutsourcing • API • Plan9 53
  • 54. • • Plan9 54
  • 55. • KVM Plan9 • Plan9 55
  • 56. Demo 56
  • 57. Plan9 Hypercall • Hypercall • Plan9 57