Kør Linux i browseren: Franskmand emulerer Linux-kerne med Javascript

Javascript kan køre så hurtigt i browseren nu, at det er lykkedes at emulere en hel Linux-kerne med Javascript. Resultatet svarer til en 486-processor.

Om en Linux-kerne i browseren bliver et hit, der kan bruges på mange måder, eller om det mest er et 'fordi jeg kan'-projekt, vil tiden vise.

For den franske udvikler Fabrice Bellard var det først og fremmest en måde at vise på, at der er sket en hel del med Javascript i browseren de seneste år, skriver The Register.

»Jeg gjorde det for sjov, fordi nye Javascript-motorer er hurtige nok til at gøre komplicerede ting,« skriver Fabrice Bellard til det britiske it-site.

Med Javascript PC Emulator kan man køre Linux-kernen 2.6.20 fra 2007 i de nyeste browsere fra Mozilla og Google. Tilsammen svarer emulatoren omtrent til en gammel 486-processor, bortset fra at der mangler en floating point-unit, som franskmanden så har emuleret ved siden af.

Han peger på kryptografiske funktioner direkte i browseren som en mulig fremtid for emulatoren, men foreløbigt er den i hvert fald blevet brugt i det evige kapløb mellem de forskellige browserproducenters Javascript-motorer.

Emulatoren kørte nemlig cirka dobbelt så hurtigt i Firefox 4 som i Chrome 11, og det er straks blevet brugt af Firefox-folkene som bevis på, hvor overlegen deres Jaeger Monkey-maskine er.

PC Emulatoren er skrevet i rent Javascript med hjælp fra et API, der gør det nemmere at tilgå binære data lokalt. Den er testet i browsere på både Windows, Mac og Linux-platforme.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (18)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Lars Kr. Lundin

http://bellard.org/jslinux/

Rimeligt imponerende:

uname -a

Linux (none) 2.6.20 #1 Wed May 18 23:22:20 CEST 2011 i586 GNU/Linux ~ #

~ # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 5 model : 4 model name : Pentium MMX stepping : 3 cache size : 0 KB fdiv_bug : no hlt_bug : no f00f_bug : yes coma_bug : no fpu : no fpu_exception : no cpuid level : 1 wp : yes flags : bogomips : 20.22 clflush size : 32

~ #

  • 0
  • 0
#6 Thomas Daugaard

@Jesper Kildebogaard

Det er stadig forkert. Han emulerer ikke kernen, han emulerer en x86 CPU og booter kernen.

Den korrekte overskrift ville være: "Kør Linux i browseren: Franskmand emulerer x86 processor i Javascript og booter Linux-kernen i den"

Den er nok lidt lang, men den er langt mere sigende.

  • 0
  • 0
#9 Thomas Daugaard

Hvis vi skal brainstorme lidt, så kan man jo downloade jslinux + de 3 .bin filer, mounte root.bin og kopiere over i en større 'container' med en browser og en simpel HTTP server ;)

Hvis du kan indbygge noget js i Lynx/Links, så kan det vel godt virke :p Givet, hvis en Core 2 Duo bliver til en 486'er i Chrome, hvad bliver en 486'er så...? :(

  • 0
  • 0
#12 Flemming Frandsen

Det kan den ikke, han har ikke implementeret real mode eller 16 bit protected mode, kun 32 bit protected mode, mao. virker ingen legacy OS'er på den CPU.

Han har heller ikke implementeret en BIOS, end ikke EFI, så faktisk kan hans maskine kun boote Linux fordi hans maskine er hardcodet til det.

Ikke at det er mindre imponerende af den grund, det er stadig en voldsom bedrift.

  • 0
  • 0
#15 Jan Harries

Tidsspilde..

Jeg kan også køre en PC emulator på min Amiga, og i den køre en C64 emulator, boote GEOS og så browse internettet derfra.

Giver jo ingen mening.

VMWARE klarer vel nok opgaverne noget bedre.

  • 0
  • 0
#16 Morten W. Jørgensen

Tidsspilde..

og

Giver jo ingen mening.

Jeg læste en gang for længe siden en bog om Java og DHTML. Det var før Web 2.0 og Ajax var det nye sort. I den viste forfatteren hvordan man kunne lave et HTML dokument hvor man med musen kunne trække rundt med forskellige elementer. "Det er selvfølgelig meget sjovt" sagde han, men hvad man ellers lige skulle kunne bruge det til kunne han nu ikke se.

Siden den gang har vi set flere eksempler på at trækbare HTML elementer har et kommercielt aspekt. F.eks. Vistaprint.dk

  • 0
  • 0
#17 Deleted User

Giver jo ingen mening.

Well, på den ene side har du ret i at det ikke er særligt anvendeligt at køre x86 i Javascript, men det er en imponerende demonstration af hvor solid og hurtig Javascript er blevet og hvor dygtig forfatteren er, så helt værdiløs er projektet ikke.

  • 0
  • 0
Log ind eller Opret konto for at kommentere