五千年(敝帚自珍)

主题:【原创】说一说我对透明计算的疑惑 -- 鸿乾

共:💬119 🌺320 🌵2
全看树展主题 · 分页首页 上页
/ 8
下页 末页
家园 P2P OS 可能有点意思, 不过能用的就是肉鸡网

目前P2P网络,实用的就是传递文档,挖比特币这样的单一用途。能平行搜索,分配计算就到能融资,高大上了。 上升到能在P2P网络上和硬件对话,编程,汇编,跑软件,OS要干的事,跨的步子就很大了。 P2P网络最大的问题是碎片无法同步,也不能保证质量。比如Z= function (X,Y); 求Z, 就等X和Y都从网络上下载下来,还要核实X,Y是有效数据,不是错乱数据。

冯诺依曼结构是硬件结构,透明计算怎么看都是软件结构,不知道怎么扯在一起。

家园 5分钟模拟“透明计算”

http://www.jianshu.com/p/3828fcfdbe7d

本课程转至实验楼项目课大赛5分钟模拟“透明计算”,若需转载请注明出处

透明计算相信大家都听说过,不知道的可自行百度。本实验课是一个科普实验,实验中可以学习到虚拟机及远程桌面基本概念,并自己动手搭建一个模拟透明计算的教学演示环境。

注意事项

本课只是模拟透明计算的演示效果,形似而已,绝非实现透明计算,毕竟我并不清楚透明计算的具体的技术原理。实验中选用的技术只是用来快速搭建一个通过浏览器访问的远程桌面,与透明计算没有任何关联。

5分钟是敲命令和环境配置的时间,不含文档阅读时间及受实验楼网络影响的软件下载和虚拟机启动时间。

本课主要步骤参考爱鸟同学的“15分钟实现透明计算”,感谢爱鸟同学贡献了这么一篇详尽透彻的文章。

实验原理

用虚拟化技术(QEMU)启动一个Linux虚拟机(Tiny Core Linux),然后启动一个web服务(Guacamole)连接虚拟机的VNC桌面,最后达到用户可以通过浏览器访问虚拟机桌面的效果。

参考资料

本课程参考文章及用到的技术:

15分钟实现透明计算

Guacamole HTML5远程桌面

QEMU虚拟化

Tiny Core Linux

1. 安装需要的软件

在实验楼的桌面点击Xfce 终端,开始我们的学习旅程。

在打开的命令行窗口中输入下面的命令,因为用到了sudo,会提示你输入密码,实验楼的默认用户是shiyanlou,密码是shiyanlou。

# 更新软件仓库

shiyanlou:~/$ sudo apt-get update

[sudo] password for shiyanlou: 此处输入shiyanlou

# 安装guacamole,libvncserver及qemu,其中会询问是否重启tomcat,选择Yes即可

shiyanlou:~/$ sudo apt-get install guacamole-tomcat libvncserver-dev qemu qemu-kvm

# 安装guacamole到tomcat6

shiyanlou:~/$ sudo mkdir /usr/share/tomcat6/.guacamole

shiyanlou:~/$ sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat6/.guacamole/

2. 下载虚拟机磁盘镜像

因为要启动虚拟机,所以我们需要一个虚拟机磁盘。实验楼环境启动大的Linux或Windows镜像时间会比较久,我们选择Tiny Core Linux,当然也可以选择ttylinux等其他的小型系统。

下载链接:http://www.tinycorelinux.net/6.x/x86/release/TinyCore-current.iso

注意:如果觉得输入链接麻烦,可以直接点击桌面上方的剪刀,拷贝到实验环境。

在刚才的Xfce终端中输入下列命令:

# 下载TinyCore最新版ISO镜像,下载时间受实验楼的网络影响

shiyanlou:~/$ wget http://www.tinycorelinux.net/6.x/x86/release/TinyCore-current.iso

3. 启动虚拟机

shiyanlou:~/$ sudo qemu-system-x86_64 -hda TinyCore-current.iso -boot d -no-acpi -vnc :10

这个时候命令会卡住,不用担心,虚拟机已经启动了,打开另外一个Xfce 终端继续下面的命令吧。

命令执行截图:

图片描述信息

图片描述信息

4. 配置guacamole

编辑guacamole的文件,让这个web服务后台去连接虚拟机的VNC桌面。

编辑命令:

你如果对vim的使用不熟练,可以将命令中的vim替换为gedit,类似windows上的记事本。

shiyanlou:~/$ sudo vim /etc/guacamole/user-mapping.xml

把下面这段文字:

<!--

<authorize username="USERNAME" password="PASSWORD">

<protocol>vnc</protocol>

<param name="hostname">localhost</param>

<param name="port">5900</param>

<param name="password">VNCPASS</param>

</authorize>

-->

第一行的<!--和最后一行的-->删掉,即去掉了注释。

再把这段文字改为下面的内容:

<authorize username="touming" password="touming">

<protocol>vnc</protocol>

<param name="hostname">localhost</param>

<param name="port">5910</param>

<param name="password">VNCPASS</param>

</authorize>

编辑完成后的内容:

图片描述信息

图片描述信息

vim编辑完成后,需要按ESC键,再输入:wq保存文件。

5. 启动服务

# 重启guacamole后台服务及tomcat

shiyanlou:~/$ sudo service guacd restart

shiyanlou:~/$ sudo service tomcat6 restart

6. 测试

双击桌面上的Firefox浏览器,在浏览器中输入链接http://localhost:8080/guacamole,即可访问guacamole的页面,在页面中输入用户名touming及密码touming登录(第4步设置的用户名及密码)。

登录后点击DEFAULT即可进入我们刚刚创建的虚拟机桌面,如果你动作快的话现在可以看到TinyCore的启动画面,点进Web桌面敲下回车系统正式加载启动。

耐心等待1-2分钟,就可以看到TinyCore的桌面在浏览器中显示出来,恭喜你,你已经成功完成了本实验!

7. 后记

或许你还有疑问,我们一一解答:

手机可以访问吗?

只要你的浏览器支持HTML5,不分手机和PC。可以点击实验楼桌面上方的共享桌面按钮,在手机浏览器上打开其中任意一个链接即可体验。

是否可以运行Windows?

理论上可以,但实验楼的环境不够好,建议在自己的电脑上用KVM虚拟化技术尝试。

虚拟机的远程管理怎么实现?

可以使用libvirt API开发对虚拟机的远程管理组件,例如开关机重启等。

自己的电脑上如何搭建?

首先装个Ubuntu 14.04操作系统,剩下的完全按照本实验操作就可以了。

顺便提一句,实验楼应该也是虚拟机,这个实验算是在虚拟机里又虚拟了一层,不过谁知道实验楼环境外面又有多少层,你可能是在虚拟机里的虚拟机里跑虚拟机,像不像盗梦空间...

通宝推:陈王奋起,
家园 操作系统和应用软件没想象中的大!!!

不同指令集和底层代码,不同应用程序调用不同的库函数,就是一个“客户端”3个字这么容易?

你也知道这不容易啊!!!这就是其之所以获奖的关键了,他的团队就是搞定了这个!!!!

做一个兼容层确实是体力活,就是整天查对各个指令集,查找其差异和相同,然后归纳总结。

另外,后面两段明显是对操作系统整个生态链不了解:

1. 装操作系统的起始文件需要多大?大概10m!!!!

比如装debian,只下载 linux和initrd.gz两个文件 一共6M,如果没有引导程序,再下载个引导程序,总共10m。

然后从网络获取安装的所有的debian包。

windows理论上也是可以这样的:但微软系统没有类似linux那样的细分,网速不够,使得这种网络安装不现实。

2. 下载操作系统+桌面软件需要多大?这可以参考 slax 这是个u盘系统,封装了kde这个大大的桌面和简单程序,总共也才200多m。

当然, 如果你非要用nero这种分明几m就搞定(linux下刻录软件就几m)却生生整成几g的玩意,那啥网速也没办法。

3. 这些操作系统安装所用的 包管理工具 其核心是什么?就是一个粗粒度 差分同步!

所有数据,最终的存储形式都是一样,所以它们的同步方式是一样的——当然,有时为了提高效率,会使用一些特别的算法,比如压缩,调不同粒度。

软件包相对文件来说更加简单粗暴:只需要名字和版本比较。

家园 透明桌面?

所以,透明桌面,作为“基于透明计算理念研发的应用原型之一”,作为“透明计算应用演示”,究竟是在什么地方使用了bVNC和aSPICE的代码?根据你的描述我看不出来啊,我知道如何只用虚拟机+vnc做出视频中的演示(相信很多网友都可以,不过透明桌面肯定不会这么简单),但我不知道为何透明计算还需要参考vnc的部分代码,还望指点

家园 你把Linux Kernel当作整个OS了?

Linux Kernel只是最最基础的部分,离整个OS的功能还差得远呢。看你举例子都是用Linux,那就自己算算吧,MetaOS加载Kernel后,要想能够用Chrome上网,得加载多少文件,多少MB?如果客户端的忍耐极限(包括load网页)是10秒钟,得要多大的带宽?

不同指令集和底层代码,不同应用程序调用不同的库函数,就是一个“客户端”3个字这么容易?

你也知道这不容易啊!!!这就是其之所以获奖的关键了,他的团队就是搞定了这个!!!!

哈哈,他说搞定了就搞定了?应用呢?演示呢?别跟我说用个VNC就算演示了啊,哈哈

家园 再说Windows的Kernel

windows理论上也是可以这样的:但微软系统没有类似linux那样的细分,网速不够,使得这种网络安装不现实。
这个纯属自己想象。Windows的Kernel是这么容易分成“片段”供MetaOS调用的?自己看看相关的文档和评论吧

What is Linux

The Kernel

All operating systems have kernels, built around the architectural metaphor that there must be a central set of instructions to direct device hardware, surrounded by various modular layers of functionality. The Linux kernel is unique and flexible because it is also modular in nature.

The kernel of the Window operating system (which few people outside of Microsoft are allowed to look at without paying for the privilege) is a solidly connected piece of code, unable to be easily broken up into pieces. It is difficult (if not impossible) to pare down the Windows kernel to fit on a phone.

家园 winpe呢?

我充分理解大家觉得软件好大好大,需要网速好快好快。毕竟大家在windows下生活十几年,扣扣都从几兆长胖到几百兆了。

但:应用软件的下载,大家既然习惯下载软件的等待,那这样的等待也同样应该允许在别的平台上如此,比如这个 meta os上的软件。

也就是说,只要讨论系统大小和网速是否影响体验即可!

那段英文就算了,现在 win 自己都把自己切小以便应对移动设备了。

国内切win的也不少,可以到无忧论坛上看看。

请觉得win系统很大很大的,先到无忧论坛学习学习。

我心如水_2003_PE_v19.36_珍藏版.ISO 74.3M

我心如水_Win8_x64_PE_v19.36.IS 415.8M

我心如水_XP3_2003_Win8_PE_v19.36.ISO 791.7M

这些镜像,什么东西占用最多?图片、音频、视频,还有vc运行环境。如果把这几个都缓存到本地呢?

全功能镜像下面仅仅列出最近添加的软件,完整内容请自己下载查看,链接里面有几张效果图。

软件镜像843.6MB

新增加的软件有:

freehand mx;

flash mx;

photoshop cs3;

coreldraw 9;

VMware Workstation 6;

光影魔术手;

Cool Edit Pro(音频处理专家)

迅雷精简版

修改QQ2014为腾迅TM(因为QQ经常更新而旧版不能使用,用TM也一样可以用QQ的大部份功能,比较稳定);

修改Diskgenius为自己测试过的4.6.1专业版,有些版本经常出现一些错误,我用过所有版本,也就这版功能最强大最稳定了,新版还是有BUG;

WPS

OFFICE2003(短小精悍)

修改和DIY的PE工具软件,在PE中就能订制PE,不需要经常重启测试;

ADDS10硬盘分区助手;

傲梅分区助手;

重新整合了KMPLAYER播放器;(能够播放更多格式视频)

另外一些实用的小工具

……

另外,linux要实现浏览器,也不需要多大,看你用什么软件了,damn small linux 整个系统外加浏览器总共50m!!!

家园 用虚拟机模拟硬件和网络

用虚拟机模拟硬件和网络,这是底层开发常用方法。

比如用qemu,模拟出几台不同硬件的设备,网络方式设为桥接,就可以在一台电脑里模拟一个小型局域网,这时使用vnc有何什么需要解释的么?不用vnc这种资源消耗可控的高效管理办法,难道要逐个开小窗口?用来模拟的电脑硬件允许么?

另外,我猜啊,如果真的去细究 qemu和meta os的代码,估计它们相同度肯定很高——呵呵,这不是废话嘛!底层的代码都是硬件商提供的,不相同才怪了呢。

家园 明白了

你的说法,基本上印证了知乎的答案,可惜被删了

呵呵,这不是废话嘛!底层的代码都是硬件商提供的,不相同才怪了呢。

这个不是理由,也不用辩解,张的团队确实引用了qemu的

家园 WInPE执行预置软件还行,随便安装一个就有依赖问题

不知道你到底用没用过PE?预置在无忧的这些PE包里的软件都是做过测试的,所以执行起来没有问题。但是预置的软件非常少,基本上不能作为日常使用。如果你想要在PE上安装一个什么软件,对不起,十有八九你会遇到dependency问题,告诉你对不起,某某库函数缺失。预置软件稍稍多些的,动辄就是8,900MB,跟装个XP也没啥区别了。DSL也是类似问题。不过,张教授显然没有你这么聪明,要是他想得到拿PE和DSL做演示,也用不着用别人VNC的代码了,呵呵

什么东西占用最多?图片、音频、视频,还有vc运行环境。如果把这几个都缓存到本地呢?
哦,缓存本地。这些东西大概占了整个软件容量的有80%-90%吧?如果把这些都缓存本地了,干嘛不干脆缓存整个OS和应用程序?对了,张教授说不需占用本地资源的

但:应用软件的下载,大家既然习惯下载软件的等待,那这样的等待也同样应该允许在别的平台上如此,比如这个 meta os上的软件。
我倒。下载软件一次性等10分钟,跟每次运行都要等5分钟在你看来是一样一样的?有时间就是任性,难怪你这么支持MetaOS啊

还有,你这些讨论都仅仅在讨论软件大小。别忘记张教授可说的是把OS和应用程序分解成“片段”下载运行,这样就用不着下载整个OS和软件了。Linux嘛可能还好说,大虽大些,想分解还稍稍容易些,毕竟别人是模块化的而且开源,可惜的是Linux用户接受度太低。要分解Windows和QQ,不知道你能替张教授出什么主意?

家园 qemu通常都本地执行本地显示啊,用VNC干嘛?

你的解释我还是没懂。qemu不都是在本地执行本地显示吗?在Windows上好像用的是一个叫做什么SDL的库来直接输出到显卡的。模拟10台机器开10个qemu窗口就成了,需要VNC干吗?

哦,qemu确实有-vnc启动选项,不过我一般都是拿来做远程显示用的,就是qemu跑在一台机器上,我在另一台机器上看执行结果。。。可是这不是透明计算啊,透明计算是要在本地执行的

家园 开qemu窗口和用vnc资源占用情况不同

如果模拟的是命令行界面如果开10qemu窗口估计还行,但如果是windows之类的,很呛。

家园 winpe现在日常应用没啥问题了

winpe现在已经切了不少了,看上面给的那个链接,几乎所有日常应用都可以了。

普通人平常用杀软件?聊天工具,浏览器,办公软件,修图,压缩,听歌看电影,玩游戏……这些都有就差不多了,linux都没这么丰富的。

另外,都装内存里了,哪有运行一下要卡顿5分钟的?

我说的把大的部分缓存本地,是说做到客户端里——假设某一天,所有硬件出产都内建该客户端的话,不就可以做到无缝体验了么?

家园 不能说一无是处,但其实难副。

先说得奖,拿着无盘工作站、NC的思路一路走来(云,透明计算...),修修改改,不能说创新一点没有,但上升到所谓“颠覆”,还完全不够格,现在包装成自然科学一等奖,实不至名归。

推广开来,有些人搞科研,有一敢说十,有十敢说千,反正核心东西属于我的科研成果,具体算法、参数不公开,反正你没办法复现出我的东西,所以你的种种质疑说明你学术能力不强,技术能力不够,眼界还太LOW,不服?来咬我啊....

评审时候,都是圈子里的人,你好我好大家好,谁敢质疑我,下回就冠冕堂皇的,态度认真的回敬回去。

全看树展主题 · 分页首页 上页
/ 8
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河