• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chai2010
V2EX  ›  程序员

粗大, WebAssembly 居然可以跑 Windows 2000 了!

  •  5
     
  •   chai2010 ·
    chai2010 · Aug 21, 2018 · 20320 views
    This topic created in 2997 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Aug 22, 2018

    技术路线其实和以前js模拟Linux命令行差不多。 不过这次是从js换成了WebAssembly,性能有了很大提升,因此得以模拟更耗费资源的图形化的Windows 2000系统。

    2018年应该可以算是WebAssembly元年了,上个月草案1.0发布,这个月即将发布的Go1.11都开始支持WebAssembly了。 正如Ending定律所断言:所有可以用WebAssembly实现的终将会用WebAssembly实现。

    WebAssembly(wasm)资源精选: https://github.com/chai2010/awesome-wasm-zh

    对wasm技术感兴趣的同学可以关注公众号(WASM Hackers/wasm-hackers) 或 QQ群:726475047

    79 replies  •  2018-08-24 11:46:55 +08:00
    slack
    slack
    Aug 21, 2018 via Android
    1
    就是 qemu 的作者吗?厉害
    mortal
    mortal
    Aug 21, 2018
    2
    牛批,很喜欢的操作系统
    WildCat
    WildCat
    Aug 21, 2018
    3


    该有的都有哦
    silencefent
    silencefent
    Aug 21, 2018❤️4
    4
    ie 模仿的很有灵性了
    到现在还没打开
    gkiwi
    gkiwi
    Aug 21, 2018
    5
    @silencefent #4 不是模仿。。。是真的 run 起来
    lneoi
    lneoi
    Aug 21, 2018
    6
    大神大神
    ballshapesdsd
    ballshapesdsd
    Aug 21, 2018
    7
    牛批
    hanxiV2EX
    hanxiV2EX
    Aug 21, 2018 via Android
    8
    厉害,手机上都能跑
    tanglangshan
    tanglangshan
    Aug 21, 2018
    9
    是直接在浏览器模拟了整个 windows ?还是只是对服器上的 windows 进行远程控制?
    RingoTC
    RingoTC
    Aug 21, 2018 via Android❤️1
    10
    @tanglangshan 不是模拟,是 Windows 系统实实在在地在浏览器上跑起来
    tanglangshan
    tanglangshan
    Aug 21, 2018
    11
    @RingoTC 能在上面安装软件吗
    zhzer
    zhzer
    Aug 21, 2018
    12
    js 天下第一
    300
    300
    Aug 21, 2018
    13
    可以浏览器里跑系统跑浏览器吗(๑•̀ㅂ•́)و✧
    alexsunxl
    alexsunxl
    Aug 21, 2018❤️3
    14
    @zhzer WebAssembly 跟 js 有一毛钱关系?
    能好好学习吗
    hahastudio
    hahastudio
    Aug 21, 2018 via Android
    15
    解决了浏览器的兼容性问题
    lanmingyan
    lanmingyan
    Aug 21, 2018
    16
    @WildCat 我想知道你怎么在里面配置网络的
    neilp
    neilp
    Aug 21, 2018 via iPhone
    17
    试试
    shiny
    shiny
    PRO
    Aug 21, 2018
    18
    童年回忆啊
    mYYnSmiTEQWcCwAr
    mYYnSmiTEQWcCwAr
    Aug 21, 2018
    19
    @lanmingyan 它这个的实现是提供了一个 websocket 所有流量走代理
    mYYnSmiTEQWcCwAr
    mYYnSmiTEQWcCwAr
    Aug 21, 2018
    20
    https://bellard.org/jslinux/faq.html

    Can I access to the network from the virtual machine ?
    Yes it is possible. It uses the websocket VPN offered by Benjamin Burns (see his blog). The bandwidth is capped to 40 kB/s and at most two connections are allowed per public IP address. Please don't abuse the service.
    yksoft1
    yksoft1
    Aug 21, 2018
    21
    JSLinux 主要好处是对 Firefox 友好。
    yksoft1
    yksoft1
    Aug 21, 2018
    22
    我担心,Bellard 大把整个 Win2k 镜像塞网上不怕 M$找上门来么
    WildCat
    WildCat
    Aug 21, 2018
    24
    @lanmingyan 没有配置,直接能 run
    pityhero233
    pityhero233
    Aug 21, 2018 via Android
    25
    @tanglangshan 这是 webassembly。
    pityhero233
    pityhero233
    Aug 21, 2018 via Android
    26
    @zhzer ……你这不是无脑引战?
    js 和 wa 有毛关系……
    t6attack
    t6attack
    Aug 21, 2018
    27
    @tanglangshan 这是一个在浏览器中实现的虚拟机。你可以把它等同于 vmware/virtualbox。
    caola
    caola
    Aug 21, 2018
    28
    WebAssembly 以后会代替相当一部分服务器后端的工作,
    C、PHP,Java、Python、等等的语言都可以通过 WebAssembly 来运行
    itfanr
    itfanr
    Aug 21, 2018 via Android
    29
    牛
    RingoTC
    RingoTC
    Aug 21, 2018 via Android
    30
    @caola 我觉得更大的用途在于把成熟的库迁移到前端上。比如 ffmpeg,还有一些数值计算的库。某些库复杂且对性能要求高,这样的场景应该是 WebAssembly 的主场景。
    xiaqi
    xiaqi
    Aug 21, 2018 via Android
    31
    卧槽,卧槽,竟然真的把 kernel.bin 下载下来运行起来了,卧槽,卧槽,卧槽。


    @RingoTC 还可以想象一下,,每个人的浏览器都可以运行 server 了会是什么情景?
    当然 4G 网络还有点慢,但是 5G 以后呢?
    每个人打开一个网页就运行了一个服务,...
    RingoTC
    RingoTC
    Aug 21, 2018 via Android
    32
    @xiaqi 不过移动设备性能也是一种限制 😂 但是我认为确实 WebAssembly 是很有前景的
    tyrealgray
    tyrealgray
    Aug 21, 2018
    33
    手机都能开,就是有点卡,不过真的有点屌。看起来前景无可限量啊
    easylee
    easylee
    Aug 22, 2018
    34
    @alexsunxl
    @pityhero233

    我觉得那层的意思可能是说贝拉能将 js 用到出神入化......
    agagega
    agagega
    Aug 22, 2018 via iPhone
    35
    再次给 Bellard 大神跪了...
    f2f2f
    f2f2f
    Aug 22, 2018
    36
    除了速度慢,别的完美
    VDimos
    VDimos
    Aug 22, 2018 via Android
    37
    跨平台开发
    mofe
    mofe
    Aug 22, 2018
    38
    简直碉堡了,一开始看发现渲染在 canvas 上,然后一直挂着一个 websocket,以为是来搞笑的。。。

    后来发现它只是通过 websocket 模拟了网络连接

    每次打开一个应用程序都会卡一下是因为需要加载应用程序的二进制文件(模拟从硬盘中加载资源)

    打开记事本,然后把网断掉才出现了真正恐怖的事情。。这真的是一个活生生的运行在浏览器的系统。。
    tiaod
    tiaod
    Aug 22, 2018 via Android
    39
    卧槽
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    Aug 22, 2018 via iPhone
    40
    @RingoTC ffmpeg 我试过,开了 O3 还卡的一逼。转码别想了,切个图转个音频差不多
    YvesX
    YvesX
    Aug 22, 2018
    41
    我要吹一个月
    jessehzj
    jessehzj
    Aug 22, 2018 via Android
    42
    bellard 怎么那么多黑科技啊?之前还搞了模拟基站
    lslqtz
    lslqtz
    Aug 22, 2018
    43
    跪了
    按国内的网络环境,如果是远程绝对是卡的一批的
    tsui
    tsui
    Aug 22, 2018
    44
    从 load 到启动完成一共传了 25M 的 bin,windows 2K 启动只需要读这么少的磁盘文件么
    ech0x
    ech0x
    Aug 22, 2018 via iPhone
    45
    @RingoTC ffmpeg 已经可以被编译成 Webassembly 了.
    greed1is9good
    greed1is9good
    Aug 22, 2018
    46
    应该只是个 pe 吧,肯定不是完整的系统。。。
    @tsui
    daigouspy
    daigouspy
    Aug 22, 2018 via Android
    47
    @tsui windows 2000 默认启动带图形界面自占用 30m 不到的内存
    yksoft1
    yksoft1
    Aug 22, 2018
    48
    @tsui win2k 好像仅启动系统到 explorer 真只需要读这么多文件。
    ae
    ae
    Aug 22, 2018
    49
    能装仙剑吗
    someonedeng
    someonedeng
    Aug 22, 2018
    50
    WA 这么 6 的吗。。。
    leoleoasd
    leoleoasd
    Aug 22, 2018
    51
    里面装个最新 chrome 然后再跑个虚拟机试试
    deadEgg
    deadEgg
    Aug 22, 2018
    52
    活在现代的高斯。
    hronro
    hronro
    Aug 22, 2018
    53
    请问这个你们是怎么连上网的?
    myyou
    myyou
    Aug 22, 2018
    54
    WebAssembly 是不是以后会逐渐把 js 给淘汰?
    Arrowing
    Arrowing
    Aug 22, 2018
    55
    @myyou 不会,相辅相成,解释型的 js 代码依然会存在,高密集的计算才需要用 WebAssembly
    q397064399
    q397064399
    Aug 22, 2018
    56
    @myyou #54 早得很, 垃圾回收性能怎么样? 兼容性怎么样? 还是需要很长时间
    q397064399
    q397064399
    Aug 22, 2018
    57
    @caola #28 言之过早
    q397064399
    q397064399
    Aug 22, 2018
    58
    @Arrowing #55 真正普及了 也就没 js 什么事情了,浏览器现在大有发展成操作系统的趋势..
    raysonx
    raysonx
    Aug 22, 2018 via Android
    59
    没仔细看。用的好像是 asm.js 而不是 WebAssembly 吧
    joeyFuck
    joeyFuck
    Aug 22, 2018
    60
    mark!
    L3ve
    L3ve
    Aug 22, 2018
    61
    @raysonx 其实你可以这么理解,webassembly 是一个规范,asm 是他的一种实现
    mkeith
    mkeith
    Aug 22, 2018
    62
    @raysonx asm.js 是用来在不支持的浏览器中运行 WebAssembly 的吧
    xuyl
    xuyl
    Aug 22, 2018
    63
    vnc 是在浏览器远程控制的技术,wasm 则是浏览器虚拟机的技术,可以这样理解吗
    tinytin
    tinytin
    Aug 22, 2018
    64
    真大神
    scmod
    scmod
    Aug 22, 2018❤️1
    65
    打开里面的 ie,再访问 win2000 的地址,里面再打开个 ie,然后再访问.....
    quickma
    quickma
    Aug 22, 2018
    66
    @scmod 这样你的机器就报警了
    chengluyu
    chengluyu
    Aug 22, 2018
    67
    @xuyl #63 VNC 是一种远程控制手段。WebAssembly 不是虚拟机,只是一种在浏览器上跑的低级语言。
    a4854857
    a4854857
    Aug 22, 2018
    68
    妈耶。神了
    choury
    choury
    Aug 22, 2018
    69
    @scmod #65 里面那个 IE 肯定不能用 WebAssembly,然后就进行不下去了
    ShareDuck
    ShareDuck
    Aug 22, 2018
    70
    @scmod #65 这当然是可以的,其他虚拟机也能这么干,我闲的蛋疼试过一次,第二层虚拟还是能使用的,第三层就卡成狗了。
    duck2u
    duck2u
    Aug 22, 2018
    71
    paste here 和 upload 是干嘛用的
    zpczjl
    zpczjl
    Aug 22, 2018
    72
    原理是什么,能解释下么?
    weizhen199
    weizhen199
    Aug 22, 2018
    73
    这一天,第一猜想“ js 生万物” 被证明了。
    mooo
    mooo
    Aug 22, 2018
    74
    @zpczjl 浏览器里面跑了个虚拟机
    n37r06u3
    n37r06u3
    Aug 22, 2018
    75
    死过一
    RingoTC
    RingoTC
    Aug 22, 2018
    76
    @weizhen199 但是,JavaScript 在这个项目里面做的事情很少
    yfgeek
    yfgeek
    Aug 24, 2018
    77
    牛批
    seeker
    seeker
    Aug 24, 2018
    78
    改一改,把老游戏搞成页游。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4889 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 143ms · UTC 06:58 · PVG 14:58 · LAX 22:58 · JFK 01:58
    ♥ Do have faith in what you're doing.