SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Plan 9 from Bell Labs
        meets
   TinyCore Linux
                    oraccha
 Plan9          http://d.hatena.ne.jp/oraccha/

2010   8   22                          VM
Plan 9
Plan 9
•                  OS

•       UNIX     UNIX       OS

•
    •
    •              GSoC 2010
                   accept
Plan 9 on SL-C3100
http://server.hemiola.co.uk/zaurus.jpg
Google
Plan 9
  •   Plan 9                Google

      •   Rob Pike Ken Thompson Dave
          Presotto Russ Cox ...

  •                            Plan 9
                 Mac OS X      Plan9port

      •                  9term       acme sam

      •                       venti
UNIX                      Plan 9
•   Plan9port (a.k.a. Plan 9 from User Space)
    •  http://swtch.com/plan9port/


•   9vx (a.k.a. Plan 9 Virtual eXecutable)
    • http://swtch.com/9vx/

                                Russ Cox
Plan9port
•   Plan 9

•                       OS

•   v9fs Linux   9P2000 FS

•
    •   NetBSD/evbarm LinkStation

    •   NIMIX3        Pthread
Plan9port on MINIX 3

acme




        rio (Xnest)
9vx
•   Plan 9 a.out


    •   vx32
                     c.f., Google NaCl

    •
9vx
•   Plan 9

    •
        •                   →SIGSEGV

        •                 →SIGALRM

    •                                OS

        •   #A (audio), #i (draw), #I (inet),
            #m (mouse), #Z (local filesystem)
9vx
      Plan 9      Plan 9       Plan 9
1     a.out       a.out        a.out


            vx32 sandbox library


           Modified Plan 9 kernel



            Host OS
    (Linux, *BSD, MacOS X)
vx32
 separate signal stack, passing vx32 the full saved register
 state when such a signal occurs. Again, all widely-used
 x86 operating systems have this capability.
    Finally, vx32 can benefit from being able to map disk
 files into the host application’s address space and to
 control the read/write/execute permissions on individual
 pages in the mapping. Although these features are not
 strictly required by vx32, they are, once again, provided
 by all widely-used x86 operating systems.
    On modern Unix variants such as Linux, FreeBSD,
 and OS X, specific system calls satisfying the above re-


    •
 quirements are modify_ldt/i386_set_ldt, sigaction,
           Guest Data Segment
 sigaltstack, mmap, and mprotect. Windows NT, 2000,
 and XP support equivalent system calls, though we have

    •
 not ported vx32 to Windows. We have not examined
           Guest Control Segment
 whether Windows Vista retains this functionality.
    Guest code. Although vx32 uses x86 segmentation

    •      vx32 sandbox library
 for data sandboxing, it assumes that guest code running
 in the sandbox conforms to the 32-bit “flat model” and
 makes no explicit reference to segment registers. In fact,
 vx32 rewrites any guest instructions referring to segment
 registers so that they raise a virtual illegal instruction
 exception. This “flat model” assumption is reasonable
 for practically all modern, compiled 32-bit x86 code; it
Bryan Ford and Russ Cox,only if, for example, the
 would typically be a problem “Vx32: Lightweight
User-level Sandboxing on the DOS or USENIX
 sandboxed guest wished to run 16-bit x86,” Windows
2008 or wished to run apaper award) of vx32 itself.
 code (Best student nested instance
    Some modern multithreading libraries use segment           Figure 1: Guest and Host Address Space Structure
int 0x64
      Plan 9      Plan 9       Plan 9
1     a.out       a.out        a.out    virtual
                                         trap
            vx32 sandbox library


           Modified Plan 9 kernel



            Host OS
    (Linux, *BSD, MacOS X)
08048160   int 0x64
                                    unsafe
b7d8d0f9   mov   ebx, fs:[0x2c]     GCS
b7d8d100   mov   fs:[0x20], eax
b7d8d106   mov   eax, 0x264    ; 0x264 = int 0x64
b7d8d10b   mov   fs:[0x40], 0x8048162
b7d8d116   jmb   vxrun_gentrap
                                             (fragment index table)

                                          code fragment cache
                          Guest
                         Control                (code fragment)
                         Segment
                                           Endpoint hash table
                                    Fixed execution state, register save area
•   kencc     gcc
    ed


              ,s!Lock;!Lock lk;!g
    struct                       struct
    {                            {
         Lock;                        Lock lk;
         int   fid;                   int   fid;
         Chan *free;                  Chan *free;
         Chan *list;                  Chan *list;
    }chanalloc;                  }chanalloc;

            gccgo       kencc
            http://gcc.gnu.org/ml/gcc-patches/2009-04/msg00727.html
1.0
                                                              1.0




                                                                                        1.




                                                                                                                                                 1.
                                                                                                                                                1.0
                                                                1




                                                                                                             1.
                                                 1




                                                                                                                                              0.98
                                                                                                                                                 1
                    Core 2 D




                                                       Core 2 D




                                                                                                    Core 2 D
                                                                                                           1.0




                                                                                                                                         Core 2 D




                                                                                                                                                                                     Core 2 D
                    Athlon64




                                                       Athlon64




                                                                                                    Athlon64




                                                                                                                                                           Athlon64




                                                                                                                                                                                     Athlon64
                                                                                                            1.
                                                              1.
                    Xeon, Li




                                                       Xeon, Li




                                                                                                    Xeon, Li




                                                                                                                                                           Xeon, Li




                                                                                                                                                                                     Xeon, Li
                    Pentium
                    Pentium




                                                       Pentium
                                                       Pentium




                                                                                                    Pentium
                                                                                                    Pentium




                                                                                                                                         Pentium
                                                                                                                                                           Pentium




                                                                                                                                                                                     Pentium
                                                                                                                                                                                     Pentium
                    Opteron




                                                       Opteron




                                                                                                    Opteron




                                                                                                                                                           Opteron




                                                                                                                                                                                     Opteron
                        0.92
                                1




                                                                                                      0.85




                                                                                                                                                          0.74
              0




                                      Athlon64 x86-32, Linux




                                                                     Athlon64 x86-32, Linux




                                                                                                         Athlon64 x86-32, Linux




                                                                                                                                         Athlon64 x86-32, Linux




                                                                                                                                                                      Athlon64 x86-32, Linux
                                      Opteron x86-32, Linux




                                                                     Opteron x86-32, Linux




                                                                                                         Opteron x86-32, Linux




                                                                                                                                         Opteron x86-32, Linux




                                                                                                                                                                      Opteron x86-32, Linux
                                md5                                  sha1                                    sha512                                    ripemd                               whirlpool




                                      Core 2 Duo, OS X




                                                                     Core 2 Duo, OS X




                                                                                                         Core 2 Duo, OS X




                                                                                                                                         Core 2 Duo, OS X




                                                                                                                                                                      Core 2 Duo, OS X
                                      Pentium M, Linux




                                                                     Pentium M, Linux




                                                                                                         Pentium M, Linux




                                                                                                                                         Pentium M, Linux




                                                                                                                                                                      Pentium M, Linux
                                      Pentium 4, Linux




                                                                     Pentium 4, Linux




                                                                                                         Pentium 4, Linux




                                                                                                                                         Pentium 4, Linux




                                                                                                                                                                      Pentium 4, Linux
                                      Xeon, Linux




                                                                     Xeon, Linux




                                                                                                         Xeon, Linux




                                                                                                                                         Xeon, Linux




                                                                                                                                                                      Xeon, Linux
 10: Normalized run times for cryptographic hash functions running under vx32. Each bar plots run time using vx32
time for the same benchmark running natively (smaller bars mark faster runs).
                                0

                  VMWare QEMU                  md5                            sha1                            sha512                          ripemd                        whirlpool

          Figure 10: Normalized run times for cryptographic hash functions running under vx32. Each bar plots run time using vx32 divided
                            4.8
                            23




                                                         21




                                                                                            22




                                                                                                                                  18




                                                                                                                                                                                            9.1




                                                                                                                                                                                                                    3.9
          by run time for the same benchmark running natively (smaller bars mark faster runs).
                                                       3.8
          4




                                                                                      2.8
          3




                                                                                                                                                                                      2.7
                                                 2.7




                                                                                                                         2.6
                                               4.8
                                                23




                                                                       21




                                                                                                  22




                                                                                                                          18




                                                                                                                                                                            9.1




                                                                                                                                                                                                  3.9
                                                                     3.8



                                                                                2.5
                            4




                                                                                                                                                         1.90
                                                                                                                                                         1.90
                     1.69




          2

                                                                                            2.8
                            3




                                                                                                                                                                      2.7
                                                               2.7




                                                                                                                       2.6
                                                                                      2.5




                                                                                                                                                                                                                   1.32
                                                                                                                                                 1.90
                                                                                                                                                 1.90
                                                                                                                                                1.00
                                                                                                                           0.93
                                        1.69




                            2




                                                                                                                                                                                 vx32 0.57




                                                                                                                                                                                                         vx32 0.63
          1




                                                                                                                                                                                 QEMU1.32
                  VMware




                                                     VMware




                                                                                  VMware




                                                                                                                  VMware




                                                                                                                                                         VMware




                                                                                                                                                                                 VMware




                                                                                                                                                                                                         VMware
                                                                                                                                                 1.00
                                                                                                                      0.93
                  QEMU




                                                     QEMU




                                                                                  QEMU




                                                                                                                                  QEMU




                                                                                                                                                                      QEMU




                                                                                                                                                                                                         QEMU
                  native




                                        native




                                                                                  native




                                                                                                                  native




                                                                                                                                             native




                                                                                                                                                                                 native




                                                                                                                                                                                                         native
                                                                                                                                                                  vx32 0.57




                                                                                                                                                                             vx32 0.63
                  vx32




                                                     vx32




                                                                                  vx32




                                                                                                                  vx32




                                                                                                                                             vx32
                            1
                                    VMware




                                                                     VMware




                                                                              VMware




                                                                                                              VMware




                                                                                                                                         VMware




                                                                                                                                                                  VMware




                                                                                                                                                                             VMware
                                    QEMU




                                                                     QEMU




                                                                                                  QEMU




                                                                                                              QEMU




                                                                                                                                         QEMU




                                                                                                                                                                  QEMU




                                                                                                                                                                                                  QEMU
                                    native




                                                 native




                                                                              native




                                                                                                              native




                                                                                                                                         native




                                                                                                                                                                  native




                                                                                                                                                                             native
          0
                                    vx32




                                                 vx32




                                                                              vx32




                                                                                                              vx32




                                                                                                                                         vx32
                       0
                    syscall                    pipe-byte                      pipe-bulk                            rdwr                       sha1zero                            du                         mk
                                      syscall             pipe-byte               pipe-bulk                       rdwr                   sha1zero                    du                  mk

  11: Normalized Normalized run times for simple Plan 9 benchmarks. The four barsbars correspond9to Plannatively, Plan 9 VX,
          Figure 11: run times for simple Plan 9 benchmarks. The four correspond to Plan running 9 running natively, Pla
 under VMware Workstation 6.0.2 on Linux, and Plan 9 under QEMU on LinuxLinux using the kqemu kernel extensio
          Plan 9 under VMware Workstation 6.0.2 on Linux, and Plan 9 under QEMU on using the kqemu kernel extension. Each
          bar plots run time divided by the native Plan 9 run time (smaller bars mark faster runs). The tests are: swtch, a system call that
 ts run time divided by theprocess, causing a9contexttime (smaller bars marktwo processes sending a single byte back and forthsystem
          reschedules the current native Plan run switch (sleep(0)); pipe-byte, faster runs). The tests are: swtch, a
dules theover a pairprocess,pipe-bulk, twocontext switch (sleep(0)); pipe-byte, two data over a pipe; rdwr, aa single byte back a
           current of pipes; causing a processes (one sender, one receiver) transferring bulk processes sending single process
pair of pipes; pipe-bulk, two processes; sha1zero, a singleone receiver) /dev/zero and computing its over a pipe; rdwr, a single
          copying from /dev/zero to /dev/null (one sender, process reading transferring bulk data SHA1 hash; du, a single
          process traversing the file system; and mk, building a Plan 9 kernel. See Section 5.3 for performance explanations.
g from /dev/zero to /dev/null; sha1zero, a single process reading /dev/zero and computing its SHA1 hash; du,
s traversing the file system; and mk, building a Plan 9 kernel. See Section 5.3 for performance explanations.
Tiny Core Linux
•   DawmSmallLinux            Robert
    Shingledecker

•        Linux                GUI      10 MB

    •   BusyBox Tiny X    FLTK

•            3.0   7/31

    •                2.6.11
Tiny Core Linux
•
•                   squashfs


    1. tmpfs

    2.

    3. /usr/local
tvx: 9vx package
•   Ron Minnich
    John (EBo) David

•   9vx
                       TCL

•   Appbrowser
    wbar
Appbrowser
“tvx”
tvx
9vx
USB
TinyCore Linux + 9vx




     Plan9   http://d.hatena.ne.jp/oraccha/

Contenu connexe

Plus de Ryousei Takano

クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価Ryousei Takano
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)Ryousei Takano
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network ProcessingRyousei Takano
 
Flow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore EraFlow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore EraRyousei Takano
 
A Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center NetworksA Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center NetworksRyousei Takano
 
クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術Ryousei Takano
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...Ryousei Takano
 
IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告Ryousei Takano
 
Expectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchExpectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchRyousei Takano
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudRyousei Takano
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何かRyousei Takano
 
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...Ryousei Takano
 
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~Ryousei Takano
 
From Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computersFrom Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computersRyousei Takano
 
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green CloudRyousei Takano
 
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data CenterIris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data CenterRyousei Takano
 
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...Ryousei Takano
 
HPC Cloud: Clouds on supercomputers for HPC
HPC Cloud: Clouds on supercomputers for HPCHPC Cloud: Clouds on supercomputers for HPC
HPC Cloud: Clouds on supercomputers for HPCRyousei Takano
 

Plus de Ryousei Takano (20)

ABCI Data Center
ABCI Data CenterABCI Data Center
ABCI Data Center
 
クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価クラウド環境におけるキャッシュメモリQoS制御の評価
クラウド環境におけるキャッシュメモリQoS制御の評価
 
USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)USENIX NSDI 2016 (Session: Resource Sharing)
USENIX NSDI 2016 (Session: Resource Sharing)
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network Processing
 
Flow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore EraFlow-centric Computing - A Datacenter Architecture in the Post Moore Era
Flow-centric Computing - A Datacenter Architecture in the Post Moore Era
 
A Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center NetworksA Look Inside Google’s Data Center Networks
A Look Inside Google’s Data Center Networks
 
クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術クラウド時代の半導体メモリー技術
クラウド時代の半導体メモリー技術
 
AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...AIST Super Green Cloud: lessons learned from the operation and the performanc...
AIST Super Green Cloud: lessons learned from the operation and the performanc...
 
IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告IEEE CloudCom 2014参加報告
IEEE CloudCom 2014参加報告
 
Expectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software researchExpectations for optical network from the viewpoint of system software research
Expectations for optical network from the viewpoint of system software research
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
 
不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か不揮発メモリとOS研究にまつわる何か
不揮発メモリとOS研究にまつわる何か
 
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
High-resolution Timer-based Packet Pacing Mechanism on the Linux Operating Sy...
 
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
クラウドの垣根を超えた高性能計算に向けて~AIST Super Green Cloudでの試み~
 
From Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computersFrom Rack scale computers to Warehouse scale computers
From Rack scale computers to Warehouse scale computers
 
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
 
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data CenterIris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
Iris: Inter-cloud Resource Integration System for Elastic Cloud Data Center
 
IEEE/ACM SC2013報告
IEEE/ACM SC2013報告IEEE/ACM SC2013報告
IEEE/ACM SC2013報告
 
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
 
HPC Cloud: Clouds on supercomputers for HPC
HPC Cloud: Clouds on supercomputers for HPCHPC Cloud: Clouds on supercomputers for HPC
HPC Cloud: Clouds on supercomputers for HPC
 

Dernier

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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 MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Dernier (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Plan9 from Bell Labs meets TinyCore Linux

  • 1. Plan 9 from Bell Labs meets TinyCore Linux oraccha Plan9 http://d.hatena.ne.jp/oraccha/ 2010 8 22 VM
  • 3. Plan 9 • OS • UNIX UNIX OS • • • GSoC 2010 accept
  • 4. Plan 9 on SL-C3100 http://server.hemiola.co.uk/zaurus.jpg
  • 5. Google Plan 9 • Plan 9 Google • Rob Pike Ken Thompson Dave Presotto Russ Cox ... • Plan 9 Mac OS X Plan9port • 9term acme sam • venti
  • 6. UNIX Plan 9 • Plan9port (a.k.a. Plan 9 from User Space) • http://swtch.com/plan9port/ • 9vx (a.k.a. Plan 9 Virtual eXecutable) • http://swtch.com/9vx/ Russ Cox
  • 7. Plan9port • Plan 9 • OS • v9fs Linux 9P2000 FS • • NetBSD/evbarm LinkStation • NIMIX3 Pthread
  • 8. Plan9port on MINIX 3 acme rio (Xnest)
  • 9. 9vx • Plan 9 a.out • vx32 c.f., Google NaCl •
  • 10. 9vx • Plan 9 • • →SIGSEGV • →SIGALRM • OS • #A (audio), #i (draw), #I (inet), #m (mouse), #Z (local filesystem)
  • 11. 9vx Plan 9 Plan 9 Plan 9 1 a.out a.out a.out vx32 sandbox library Modified Plan 9 kernel Host OS (Linux, *BSD, MacOS X)
  • 12. vx32 separate signal stack, passing vx32 the full saved register state when such a signal occurs. Again, all widely-used x86 operating systems have this capability. Finally, vx32 can benefit from being able to map disk files into the host application’s address space and to control the read/write/execute permissions on individual pages in the mapping. Although these features are not strictly required by vx32, they are, once again, provided by all widely-used x86 operating systems. On modern Unix variants such as Linux, FreeBSD, and OS X, specific system calls satisfying the above re- • quirements are modify_ldt/i386_set_ldt, sigaction, Guest Data Segment sigaltstack, mmap, and mprotect. Windows NT, 2000, and XP support equivalent system calls, though we have • not ported vx32 to Windows. We have not examined Guest Control Segment whether Windows Vista retains this functionality. Guest code. Although vx32 uses x86 segmentation • vx32 sandbox library for data sandboxing, it assumes that guest code running in the sandbox conforms to the 32-bit “flat model” and makes no explicit reference to segment registers. In fact, vx32 rewrites any guest instructions referring to segment registers so that they raise a virtual illegal instruction exception. This “flat model” assumption is reasonable for practically all modern, compiled 32-bit x86 code; it Bryan Ford and Russ Cox,only if, for example, the would typically be a problem “Vx32: Lightweight User-level Sandboxing on the DOS or USENIX sandboxed guest wished to run 16-bit x86,” Windows 2008 or wished to run apaper award) of vx32 itself. code (Best student nested instance Some modern multithreading libraries use segment Figure 1: Guest and Host Address Space Structure
  • 13. int 0x64 Plan 9 Plan 9 Plan 9 1 a.out a.out a.out virtual trap vx32 sandbox library Modified Plan 9 kernel Host OS (Linux, *BSD, MacOS X)
  • 14. 08048160 int 0x64 unsafe b7d8d0f9 mov ebx, fs:[0x2c] GCS b7d8d100 mov fs:[0x20], eax b7d8d106 mov eax, 0x264 ; 0x264 = int 0x64 b7d8d10b mov fs:[0x40], 0x8048162 b7d8d116 jmb vxrun_gentrap (fragment index table) code fragment cache Guest Control (code fragment) Segment Endpoint hash table Fixed execution state, register save area
  • 15. kencc gcc ed ,s!Lock;!Lock lk;!g struct struct { { Lock; Lock lk; int fid; int fid; Chan *free; Chan *free; Chan *list; Chan *list; }chanalloc; }chanalloc; gccgo kencc http://gcc.gnu.org/ml/gcc-patches/2009-04/msg00727.html
  • 16. 1.0 1.0 1. 1. 1.0 1 1. 1 0.98 1 Core 2 D Core 2 D Core 2 D 1.0 Core 2 D Core 2 D Athlon64 Athlon64 Athlon64 Athlon64 Athlon64 1. 1. Xeon, Li Xeon, Li Xeon, Li Xeon, Li Xeon, Li Pentium Pentium Pentium Pentium Pentium Pentium Pentium Pentium Pentium Pentium Opteron Opteron Opteron Opteron Opteron 0.92 1 0.85 0.74 0 Athlon64 x86-32, Linux Athlon64 x86-32, Linux Athlon64 x86-32, Linux Athlon64 x86-32, Linux Athlon64 x86-32, Linux Opteron x86-32, Linux Opteron x86-32, Linux Opteron x86-32, Linux Opteron x86-32, Linux Opteron x86-32, Linux md5 sha1 sha512 ripemd whirlpool Core 2 Duo, OS X Core 2 Duo, OS X Core 2 Duo, OS X Core 2 Duo, OS X Core 2 Duo, OS X Pentium M, Linux Pentium M, Linux Pentium M, Linux Pentium M, Linux Pentium M, Linux Pentium 4, Linux Pentium 4, Linux Pentium 4, Linux Pentium 4, Linux Pentium 4, Linux Xeon, Linux Xeon, Linux Xeon, Linux Xeon, Linux Xeon, Linux 10: Normalized run times for cryptographic hash functions running under vx32. Each bar plots run time using vx32 time for the same benchmark running natively (smaller bars mark faster runs). 0 VMWare QEMU md5 sha1 sha512 ripemd whirlpool Figure 10: Normalized run times for cryptographic hash functions running under vx32. Each bar plots run time using vx32 divided 4.8 23 21 22 18 9.1 3.9 by run time for the same benchmark running natively (smaller bars mark faster runs). 3.8 4 2.8 3 2.7 2.7 2.6 4.8 23 21 22 18 9.1 3.9 3.8 2.5 4 1.90 1.90 1.69 2 2.8 3 2.7 2.7 2.6 2.5 1.32 1.90 1.90 1.00 0.93 1.69 2 vx32 0.57 vx32 0.63 1 QEMU1.32 VMware VMware VMware VMware VMware VMware VMware 1.00 0.93 QEMU QEMU QEMU QEMU QEMU QEMU native native native native native native native vx32 0.57 vx32 0.63 vx32 vx32 vx32 vx32 vx32 1 VMware VMware VMware VMware VMware VMware VMware QEMU QEMU QEMU QEMU QEMU QEMU QEMU native native native native native native native 0 vx32 vx32 vx32 vx32 vx32 0 syscall pipe-byte pipe-bulk rdwr sha1zero du mk syscall pipe-byte pipe-bulk rdwr sha1zero du mk 11: Normalized Normalized run times for simple Plan 9 benchmarks. The four barsbars correspond9to Plannatively, Plan 9 VX, Figure 11: run times for simple Plan 9 benchmarks. The four correspond to Plan running 9 running natively, Pla under VMware Workstation 6.0.2 on Linux, and Plan 9 under QEMU on LinuxLinux using the kqemu kernel extensio Plan 9 under VMware Workstation 6.0.2 on Linux, and Plan 9 under QEMU on using the kqemu kernel extension. Each bar plots run time divided by the native Plan 9 run time (smaller bars mark faster runs). The tests are: swtch, a system call that ts run time divided by theprocess, causing a9contexttime (smaller bars marktwo processes sending a single byte back and forthsystem reschedules the current native Plan run switch (sleep(0)); pipe-byte, faster runs). The tests are: swtch, a dules theover a pairprocess,pipe-bulk, twocontext switch (sleep(0)); pipe-byte, two data over a pipe; rdwr, aa single byte back a current of pipes; causing a processes (one sender, one receiver) transferring bulk processes sending single process pair of pipes; pipe-bulk, two processes; sha1zero, a singleone receiver) /dev/zero and computing its over a pipe; rdwr, a single copying from /dev/zero to /dev/null (one sender, process reading transferring bulk data SHA1 hash; du, a single process traversing the file system; and mk, building a Plan 9 kernel. See Section 5.3 for performance explanations. g from /dev/zero to /dev/null; sha1zero, a single process reading /dev/zero and computing its SHA1 hash; du, s traversing the file system; and mk, building a Plan 9 kernel. See Section 5.3 for performance explanations.
  • 17. Tiny Core Linux • DawmSmallLinux Robert Shingledecker • Linux GUI 10 MB • BusyBox Tiny X FLTK • 3.0 7/31 • 2.6.11
  • 18. Tiny Core Linux • • squashfs 1. tmpfs 2. 3. /usr/local
  • 19. tvx: 9vx package • Ron Minnich John (EBo) David • 9vx TCL • Appbrowser wbar
  • 20.
  • 22. tvx
  • 23. 9vx
  • 24. USB TinyCore Linux + 9vx Plan9 http://d.hatena.ne.jp/oraccha/