Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Booting linux inside your browser

Name: Anonymous 2011-05-17 4:21

http://bellard.org/jslinux/

I'm impressed. It even features emacs and a working C compiler.

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

Name: Anonymous 2011-05-17 4:58

Good to see Fabrice (not to be confused with Febreeze) is still amazing as ever.

Name: Anonymous 2011-05-17 5:22

An x86 emulator in Javascript? That must be slow, but probably not as bad as Ruby as too many heavyweights have invested in fast Javascript despite its design not being too good for speed and the fact that eval is abused way too much in javascript code.

Name: Anonymous 2011-05-17 6:02

>>3
Now try running Ruby on top of it.

Name: Anonymous 2011-05-17 6:06

>>4
It will be so slow that it will break your perception of slowness and start going blazing fast.

Name: Anonymous 2011-05-17 6:08

Too bad it's slow as fuck, amiright?

Name: Anonymous 2011-05-17 6:10

>>3
Its design is better for speed than you think, and nobody sane uses eval.

Name: Anonymous 2011-05-17 6:11

>>7
So that excludes most lispers? Just kidding, chill bro.

Name: Anonymous 2011-05-17 6:40

>>8
Actually, yes.

Name: Anonymous 2011-05-17 6:42

>>7
and nobody sane uses eval.
I barely write any js myself, but I do view the source of the sites I go to and I've seen countless "minified"/"obfucated" versions of javascript abusing eval as much as they can. It's extremely common, both for compression purposes and obfucation purposes. Of course, removing the obfucation or reversing the compression to obtain the clean source code is quite easy, but that doesn't stop every idiot from abusing this.

Name: Anonymous 2011-05-17 6:42

>>9
Disregard that, I read that as includes. If you use eval you're a bad person.

Name: Anonymous 2011-05-17 7:08

>>11
But... but... eval/apply!

Name: Anonymous 2011-05-17 7:21

>>12
Don't make it even harder than it should... I still use eval in macros

Name: Anonymous 2011-05-17 20:00

Your browser does not support the W3C Typed Arrays
static typing?!! don't want. real man's language should be typeless.

Name: Anonymous 2011-05-17 23:42

>>14
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 8:44

>>15
JS is statically typed. Look at Adobe Flash, it has all these "for (double shit = 0)".

Name: Anonymous 2011-05-18 8:54

>>16
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 15:00

>>17
JS is statically typed. Look at Adobe Flash, it has all these "for (double shit = 0)".

Name: Anonymous 2011-05-18 15:06

>>17
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 15:37

>>19
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 15:39

>>20
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 16:13

>>21
Stop making the dynamic-typed-languages lovers look bad, you fucking faggot.

Name: Anonymous 2011-05-18 16:21

>>1
Stop making the static-typed-languages lovers look good, you fucking faggot.

Name: replica porsche watches 2011-06-01 22:53

As long as portray is a http://www.replica-watches-site.com , It is the http://www.replicawatcheshot.com  of the Moon. a http://www.replicawatcheshot.com  of rather basic purpose, It has admirers http://www.replicawatcheshot.com . since the watchmaking production realized wIth the purpose of http://www.replicawatcheshot.com/  on hand a http://www.replicawatcheshot.com/  opening, It hasn gone down wearing concerning make happy http://www.replica-watches-site.com . revive how on the practice on the road about make http://www.replicawatcheshot.com ? lost in aimed of a way to facilitate contents http://www.replicawatcheshot.com , one watchmakers even thought to it http://www.replicawatcheshot.com/  to dent the http://www.swisswatchesnet.com  to the dimension of a terminated http://www.swisswatchesnet.com  . added to though it http://www.replica-watches-site.com  , it was not glaring.

Name: Anonymous 2011-06-02 16:23

lol you can ping 127.0.0.1

Name: Anonymous 2011-06-02 20:13

To be honest, Javascript is just a Lisp who wanted to be like C :(.
Poor Javascript.

Name: Anonymous 2011-06-02 22:01

>>25
Stop playing with yourself

Name: Anonymous 2011-06-03 3:14

While this isn't the fastest computer I've ever seen, it's still impressive.
Compiling and running a CRC32 bruteforcer in C took 5h13m, compared to 57sec on a singlecore celeron @ 1.3GHz.

Name: Anonymous 2011-06-03 3:15

Addendum: the time attained with jslinux was on an i5 using ff4.

Name: Anonymous 2011-06-03 3:37

>>28
Why would you ever brute force a CRC32 when there are much better ways to reverse it?

Name: Anonymous 2011-06-03 3:53

>>30
To have some way of measuring the speed of jslinux, and it was the first mathematical operation I could think of that wouldn't be too ridiculously slow.

Name: Anonymous 2011-06-03 4:06

now someone make a Conway's Game version of linux

Name: Anonymous 2011-06-03 4:47

>>28
I hope you're not comparing tcc to gcc or doing something similarly asinine.

Name: Anonymous 2011-06-03 4:53

>>33
Note: gcc is pronounced ``gucci''.

Name: Anonymous 2011-06-03 5:27

I've tried to use the same binary in both machines, but I get sh: ./test: not found on the JS one when trying to run the gcc compiled binary and bash: ./tccbc7: No such file or directory on the Ubanto one when trying to run the tcc's, so apparently the binary formats are incompatible or something? The first 25 binary bytes are the same (both start with the ELF signature), transfers are verified by md5sum, the file is marked as executable and is suggested by tab-completion, etc...

Box A:
$ uname -a
Linux (none) 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux
$ gcc --version
gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5


Box B:
~ # uname -a                                                                   
Linux (none) 2.6.20 #1 Wed May 18 23:22:20 CEST 2011 i586 GNU/Linux            
~ # tcc -v                                                                     
tcc version 0.9.25                                                             

Name: Anonymous 2011-06-03 5:51

So I installed tcc. I checked the generated code and it seemed comparable, main() and the import section were different but oh well, it'll have to do.

Now there's a quite serious problem: the JS emulator purposefully sleeps to avoid hanging the browser. According to the CPU performance counters, it generally only uses 75% of the total cycles available.

In any case, the emulator did 5m47.29s and the native one 0m1.213s. Correcting for CPU use, it's just a bit over 200 times slower. Well, that was underwhelming, but not too bad I guess.

Name: Anonymous 2011-06-03 6:38

Name: Anonymous 2011-06-05 2:50

I have no idea what urged me to do so, but I just tried this with IE6 SP1 and... HOLY SHIT, IT WORKS. It's extremely slow (took 15 minutes to boot on an OC'd i7) and eats memory like a pig (~2.3GB), but it works.

Bellard is now a god.

Name: Anonymous 2011-06-06 11:31


Don't change these.
Name: Email:
Entire Thread Thread List