jslinux



  Linux emulator by Javascript
                Hiro Yoshioka
    YLUG – Yokohama Linux Users Group
                 @hyoshiok
           hyoshiok at gmail.com
       http://d.hatena.ne.jp/hyoshiok
   http://bellard.org/jslinux/
   What is it?
   Linux Emulator
   It is written in Javascript
   Developed by Fabrice Bellard
       QEMU
       2700 billion decimal digits of Pi
       FFMPEG
       TCC, QEmacs, and more
Javascript PC Emulator

   This PC emulator is written in Javascript.
   32 bit x86 compatible CPU
   8259 Programmble Interrupt Controller
   8254 Programmble Interrupt Timeer
   16450 UART
   Real Time Clock
CPU Emulation

   QEMU (developed by Fabrice Bellard)
   Some restrictions
       No FPU/MMX/SSE
       No segment limit and right checks when accessing
        memory.
       No CS/DS/ES/SS segment overrides.
       missing instruction (BCD operations, BOUND, …)
       No single stepping
       No real mode
       No 16 bit protected mode
Device

   No synchronization between PIT and the real
    time
   Clipboard device /dev/clipboard – exchange of
    data between the emulator andf out side world.
Linux Distribution

   2.6.20 linux kernel
   Buildroot
   Busybox
   Tinycc
   qemacs
Javascript

   V8 is slower than Jaeger Monkey
What's the use?

   Benchmarking
   Learning to use command line Unix

Jslinux

  • 1.
    jslinux Linuxemulator by Javascript Hiro Yoshioka YLUG – Yokohama Linux Users Group @hyoshiok hyoshiok at gmail.com http://d.hatena.ne.jp/hyoshiok
  • 2.
    http://bellard.org/jslinux/  What is it?  Linux Emulator  It is written in Javascript  Developed by Fabrice Bellard  QEMU  2700 billion decimal digits of Pi  FFMPEG  TCC, QEmacs, and more
  • 3.
    Javascript PC Emulator  This PC emulator is written in Javascript.  32 bit x86 compatible CPU  8259 Programmble Interrupt Controller  8254 Programmble Interrupt Timeer  16450 UART  Real Time Clock
  • 4.
    CPU Emulation  QEMU (developed by Fabrice Bellard)  Some restrictions  No FPU/MMX/SSE  No segment limit and right checks when accessing memory.  No CS/DS/ES/SS segment overrides.  missing instruction (BCD operations, BOUND, …)  No single stepping  No real mode  No 16 bit protected mode
  • 5.
    Device  No synchronization between PIT and the real time  Clipboard device /dev/clipboard – exchange of data between the emulator andf out side world.
  • 6.
    Linux Distribution  2.6.20 linux kernel  Buildroot  Busybox  Tinycc  qemacs
  • 7.
    Javascript  V8 is slower than Jaeger Monkey
  • 8.
    What's the use?  Benchmarking  Learning to use command line Unix