Calm Hill My Random Thoughts

PC Emulator with JavaScript by Fabrice Bellard

CNET မှာသတင်းတစ်ခုတွေ့လို့ အသေအချာလိုက်ဖတ်မိတယ် JavaScript နဲ့ Processor တစ်ခုကို Emulate လုပ်ထားပါတယ် ပြီးတော့ အဲဒီ့ Emulated Processor ပေါ်မှာ Linux တစ်ခုတင်ပြီး စမ်းသပ်ပြထားပါတယ်။ Browser ပေါ်မှာ ပထမဆုံး OS တစ်ခုတင်ပြီး သုံးနိုင်ခြင်းဖြစ်ပါတယ်။ တကယ်ကိုပဲ Innovative ဖြစ်ပါတယ် JavaScript ဆိုတာနဲ့ Emulator လုပ်ဖို့ဘယ်သူမှ မစဉ်းစားကြပါဘူး လုပ်မယ်ဆိုလည်း မဖြစ်နိုင်ဘူးရယ်လို့ပဲ သတ်မှတ်ကြမှာပါပဲ။ ဒါပေမယ့် ဖြစ်အောင်လုပ်ထားပါတယ် အောက်မှာပြထားတဲ့ Link မှာစမ်းသပ်ကြည့်နိုင်ပါတယ်။

http://bellard.org/jslinux/index.html

လုပ်တဲ့လူကို စိတ်ဝင်စားလို့ နောက်ပြန်ပြန်လိုက်ကြည့်မိတယ် ရေးတဲ့လူက Fabrice Bellard ပြောမယ်ဆိုရင် နာမည်ကြီးတဲ့ လူတစ်ယောက်ပါပဲ။ FFmpeg ဆိုတာ Cross Platform Media Converter တစ်ခုပါ ဒါဟာလည်း Fabrice Bellard လက်ကထွက်တာပါပဲ။ ဒီအချိန်အထိ ဘာမှမသက်ဆိုင်တော့ လက်မခံနိုင်သေးဘူး ဆက်ပြီးရှာကြည့်တယ် သူကိုယ်တိုင်လုပ်ထားတဲ့ Tiny C Compiler ဆိုတာလည်းရှိတယ်။ နည်းနည်းဆက်စပ်လာလို့ သဘောပေါက်စပြုလာတယ် သူဟာ Application Programmer မဟုတ်ဘူး Computer Scientist တစ်ယောက်ဖြစ်နေတယ်။

သင်္ချာတော်တဲ့ Computer Scientist ဆိုရင်စိတ်ဝင်စားတယ် Fabrice Bellard ကိုယ်ပိုင်တည်ထောင်ခဲ့တဲ့ Pi Calculation Formula တစ်ခုရှိတယ် Bellard’s formula လို့ခေါ်ပါတယ်။ သူ့အရင်က နာမည်ကြီးခဲ့တဲ့ Bailey–Borwein–Plouffe formula ထက် ၄၀% ​လောက်မြန်အောင် တွက်ချက်နိုင်တယ်။ ၂၀၀၉ ခုနှစ်အထိတော့ သူ့တွက်ချက်ခဲ့တဲ့ 2.7 trillion decimal places ဟာအမြင့်ဆုံးပဲ။ ၂၀၁၀ မှာတော့ Shigeru Kondo က 5 trillion decimal places နဲ့သူ့စံချိန်ကိုချိုးနိုင်သွားတယ်။ အသေးစိတ်ကတော့ Chronology of Computation of Pi မှာကြည့်လို့ရပါတယ်။

Fabrice Bellard မှာ Processor Emulation နဲ့သက်ဆိုင်တဲ့ Knowledge အပြည့်အဝရှိပါတယ် QEMU ဟာသူလုပ်ခဲ့တာပါ။ QEMU ဟာ Hardware အမျိုးအစား အတော်များများပေါ်မှာ အလုပ်လုပ်နိုင်ပါတယ်။ QEMU ကိုအခြေခံခဲ့တဲ့ Virtual Bridges ဟာအခုအချိန်မှာ အတော်ကို အောင်မြင်နေပါပြီ။ Virtual Bridges ဟာ Gartner ရဲ့ 2011 Cool Vendor ရတဲ့ကုမ္ပဏီလည်းဖြစ်သလို MIT Sloan CIO Symposium မှာလည်း Innovation Showcase finalist ဝင်ဖူးပါတယ် အဲဒီတော့ Virtual Bridges ရဲ့မူလပထမ QEMU ဟာ အတော်စိတ်ဝင်စားဖို့ ကောင်းပါတယ်။

JavaScript PC Emulator မှာ အောက်မှာပြထားတာတွေပါပါတယ် Technical Hardware တွေဖြစ်လို့ အသေးစိတ်သိချင်ရင်တော့ ရှာဖတ်ပါ။

-32 bit x86 compatible CPU -8259 Programmble Interrupt Controller -8254 Programmble Interrupt Timer -16450 UART

-Real Time Clock

သူ့မှာအဓိကမပါတာက Floating Point Coprocessor တစ်ခုတော့မပါလာပါဘူး ဒါပေမယ့် Browser ပေါ်မှာပဲ Run မှာဖြစ်လို့ ရှုပ်ထွေးတဲ့ တွက်ချက်မှု့တွေမပါတဲ့အတွက် Floating Point Coprocessor မပါလည်းသာမန်တော့ အလုပ်လုပ်ပါတယ်။ ဘာအတွက် သုံးမှာလဲမေးရင်တော့ Fabrice Bellard ကပြောပါတယ် အပျော်ရေးတာပါ သုံးချင်ရင်တော့ JavaScript Engine တွေ Benchmark စမ်းချင်တာတို့ Browser မှာ Linux Command စမ်းချင်ရင်ရနိုင်မယ် နောက်ပြီးတော့ အရင်က Dos Game တွေကို Browser မှာစမ်းချင်ရင် ရနိုင်ပါလိမ့်မယ်လို့ဆိုပါတယ်။ စိတ်ဝင်စားရင် အောက်မှာပြထားတဲ့ လင့်တွေကနေ စမ်းကြည့်နိုင်ပါတယ် ဖတ်ကြည့်နိုင်ပါတယ်။

External Links

http://bellard.org/jslinux/index.html

http://bellard.org/jslinux/tech.html

http://bellard.org/jslinux/cpux86.js

http://www.qemu.org

http://buildroot.uclibc.org/

http://www.busybox.net/

http://en.wikipedia.org/wiki/Bellard%27s_formula

http://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula

http://en.wikipedia.org/wiki/Chronology_of_computation_of_%CF%80

http://us.generation-nt.com/emulator-linux-javascript-bellard-news-2922501.html

http://news.cnet.com/8301-30685_3-20063563-264.html

http://www.zdnet.com/news/javascript-emulator-runs-linux-in-a-browser/6235117

http://vbridges.com/home.php