Feeds

Linux kernel runs inside web browser

JavaScript mimics 486 PC

Secure remote control for conventional and virtual desktops

An independent programmer has used JavaScript to build a PC emulator capable of running Linux inside a web browser.

French hacker Fabrice Bellard says his JavaScript PC Emulator can run the 2.6.20 Linux kernel inside Mozilla's Firefox 4 and Google's Chrome 11, two browsers designed to significantly advance JavaScript speeds. "I did it for fun, just because newer JavaScript engines are fast enough to do complicated things," Belllard writes. But he believes the emulator could be used to benchmark JavaScript engines.

According to Bellard – known for creating the FFmpeg open source multimedia project and the QEMU processor emulator – his JavaScript PC emulator is about two times slower on Chrome's V8 JavaScript engine than on Firefox's Jaeger Monkey engine, and this was promptly seized upon by JavaScript creator Brenden Eich, who's now the chief technology officer at Mozilla. Bellard tested the 32-bit version of both browsers.

Douglas Crockford - the man who "discovered" JSON and now servers as senior JavaScript architect at Yahoo! – recently released a new JavaScript benchmark based on JSLint, his own JavaScript code quality tool. Firefox 4 bested Chrome on this test too, as did Microsoft's Internet Explorer 10 preview.

Fabrice Bellard wrote his PC Emulator with pure JavaScript using the typed array specification, which provides an API for using native binary data, and he has tested his creation on browsers running atop Linux, Windows, and Mac OS.

The emulated hardware includes a 32-bit x86 compatible CPU, a 8259 programmable interrupt controller, a 8254 programmable interrupt timer, and a 16450 UART (universal asynchronous receiver/transmitter). According to Bellard, the emulated CPU is comparable to an Intel 486 chip, though it does not include a floating point unit. Bellard was able to emulate a floating point unit, however, using the Linux kernel.

Bellard believes his emulator could be used for client-side cryptographic processing. Or – if you're looking for a more serious pursuit – he also points out it could eventually let you play old DOS games. ®

Next gen security for virtualised datacentres

More from The Register

next story
Why has the web gone to hell? Market chaos and HUMAN NATURE
Tim Berners-Lee isn't happy, but we should be
Apple promises to lift Curse of the Drained iPhone 5 Battery
Have you tried turning it off and...? Never mind, here's a replacement
Microsoft boots 1,500 dodgy apps from the Windows Store
DEVELOPERS! DEVELOPERS! DEVELOPERS! Naughty, misleading developers!
Eat up Martha! Microsoft slings handwriting recog into OneNote on Android
Freehand input on non-Windows kit for the first time
Linux turns 23 and Linus Torvalds celebrates as only he can
No, not with swearing, but by controlling the release cycle
Scratched PC-dispatch patch patched, hatched in batch rematch
Windows security update fixed after triggering blue screens (and screams) of death
This is how I set about making a fortune with my own startup
Would you leave your well-paid job to chase your dream?
prev story

Whitepapers

A new approach to endpoint data protection
What is the best way to ensure comprehensive visibility, management, and control of information on both company-owned and employee-owned devices?
Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Maximize storage efficiency across the enterprise
The HP StoreOnce backup solution offers highly flexible, centrally managed, and highly efficient data protection for any enterprise.
How modern custom applications can spur business growth
Learn how to create, deploy and manage custom applications without consuming or expanding the need for scarce, expensive IT resources.
Next gen security for virtualised datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.