程序是否可以保存在数据中在网络上四处流动无处不在?

2012-05-11 09:48:38 +08:00
 glume
我觉得这有点像病毒,又不是病毒。
网络是四通八达的,上面总有各种数据在传递,而网络协议比操作系统来说统一多了,这样是否就提供了一个物理条件让某个程序运行和保存在这些数据中,而不是内存或硬盘上。
那是否可能有这么一种程序,一旦程序员编好运行后,她就在网上游荡,除非整个网络断电,否则她不可消灭,听起来有点像“天网”,感觉很酷。
5154 次点击
所在节点    奇思妙想
30 条回复
tuoxie007
2012-05-12 14:03:58 +08:00
樓主的想法還停留在遐想階段吧,按照目前的計算機架構好像還不行
比如程序本身是數據,數據的必鬚存在於存儲介質中,不可能在網絡上游荡,當然我不知道LZ所謂的網絡是包括那些設備的,還有游荡是什麽意思
網絡上走的數據是由其他程序發出和接收的,你這個程序作爲數據是不能自己走的,必然需要有個運行着的程序發送你才行
程序在網絡上游荡的意義是什麽?網絡設備是不會給你運行環境的,它只會把你當數據發來發去。如果你想跑到别人的電腦上運行,必鬚有接收你的程序
reus
2012-05-12 14:06:25 +08:00
数据不可能不保存在硬盘或者内存上,网线是没有存储能力的
网络协议是统一的,但是实现不是统一的,每个操作系统都有细微的差异(所以也就能以这些特征去探测某个机器的操作系统类型),不过这跟物理存储有何关联呢?
蠕虫病毒就是这样的程序,但是防火墙和杀毒软件会中止它的传播
有类似传播能力的是dns协议,不过它传播的一般不是可执行程序
dianyong
2012-05-12 14:07:54 +08:00
听起来就是蠕虫 蠕虫是病毒 病毒需要宿主
HowardMei
2012-05-12 15:23:21 +08:00
网络本身就包括状态存储功能呀,真正纯传输的那只有光纤和电缆了,估计楼主不是讲这个吧。

普通程序肯定不行,但若有个不依赖现有库与协议直接进行底层操作的人工智能,那么现有网络基础设施只会被她玩弄于鼓掌之中。要到多底层呢?我看最起码要到寄存器级别,也就是RTL级别。熟悉硬件的都知道,数字通讯模块都建立在寄存器之上,整个网络就是一巨型规模的状态机;模拟射频模块就是受寄存器操纵的振荡器+放大器;电网系统现在也日益程控化,大功率晶闸管也是被寄存器直接操纵。所以,只要你找出NxN卡诺图化简方法,那么全球电厂电子电器电话光纤网络所有寄存器就成了你逻辑运算电路的一部分,只是这盘棋很大,不是那么好下的。

直接在现有Internet中放出这种程序(假如真有人能写出来的话),影响会是核弹级别的,一旦部署,现有网络基础架构会直接解体,被此妖孽取代,她(们)摇身一变成为全球网络操作系统^_^

缩小版的网络上早就有这样的例子了,那就是大家智能手机里普遍使用的 SOC 芯片,这种集合了电源模块、模拟射频模块和数字逻辑模块的芯片,本身就是一个很大的类似Intranet的网络,内部通讯协议和Internet所用不同,但差不到哪儿去,也同样要考虑传输过程中的各种问题以及复杂的调度。

当然人家只是往SOC里灌Mobile OS,你要往里面灌超级牛逼的自我进化蠕虫,也没啥不可以的。

很多技术都早有了,十年前就看到美国有若干研究 封闭环境下自学习机器人群组网行为 的项目,当时据说智商比蚁群稍微高点,现在指不定啥样了,所以某天这些在几块破芯片上自我学习的程序进化到精通硬件操纵,自己跑上Internet,导致人类被天网控制,我是一点儿也不会觉得奇怪的。
glume
2012-05-13 00:57:17 +08:00
@Semidio 应该说部分类似分布式运算,但如果运算完成就程序结束了吧。
@Hyperion 我觉得虽然当前漏洞造成了类似的现象,但应该提供公共的一个接口供类似的程序运行。
@vanemu 宿主不是存在的必须条件,如果没有宿主程序本身就应该是个“宿主”。
@eric_q 我回头翻翻看,多谢。
@willwen 若用master server那也算是一种方法,发现p2p的程序也用类似或更多的办法,但他们传递的是主要是数据,当然请求电脑硬件做什么就天知道了。
@tuoxie007 我说的游荡就是在某些环境下,数据可以进行操作,比如拦截过滤等。当然,任务可以保留至请求到硬件的时候,这个过程也算是一种保存吧。
@reus 我的意思是如果数据不停的在网络上传输,那么可以看成是一种保存,当然要做到这个需要条件,比如两个人在打羽毛球,那么球不落地,则可以看成羽毛球保存在赛场上或任何一个选手都可以使用此球,虽然球并没有装在某个选手的口袋里。
@dianyong 或许应该有个协议式的普遍的宿主,那么蠕虫就威武了。
@HowardMei 感谢如此丰富的回复。我豁然啊开朗。没发现居然有这么多回复,我才进一步发现其实这种设想开头就已经假定了该程序具有自我意识,或者说在某种条件下具有部分的类似自我意识的表现。

程序和数据在目的上是有区别的,如果程序在游荡那么她和数据的区别就是她需要执行某个任务达到某个目的,这个目的不应该是计算机发出的,而应该是程序本身发出的;或许这个只是类似自我意识,不过作为程序来讲楼上的GG提到人工智能,姑且不管这个智能到底要做什么,但我想首先第一目的就是要生存,“游荡”就下意识的暗示了这个状态,这段程序不能像数据发出接收就完事。我完全认同楼上说要到达这样的目的需要硬件层的支持。不过貌似人工智能都是在重点算法,我觉得但凡用逻辑和数学只能产生智能不能产生生命。
guoquan
2012-05-13 01:09:02 +08:00
这不就是云么。。。在云上运算好把结果给你回来。。。好了洗洗睡吧
binux
2012-05-13 01:14:19 +08:00
@glume 生命在于运动,无论这个程序出于什么目的,它首先需要动起来,只有无处不在的数据是不够的,重要的是怎么让它自己动起来。
而且就如真正的病毒/细菌一样,它要存活/传播也有物种限定,作为一个寄宿生命,它必须能够调动寄主的某种技能,让自己活动起来,不然“目的”完全就是连想都没法想。

同理,程序作为没有实体,无法独立存活的数据,是无法脱离寄主而产生活动的。如果无法活动它怎么思考呢?所以,让自己动起来是它自己思考如何传播的前提条件。
ck65
2012-05-13 01:20:59 +08:00
打破冯诺依曼体系 -> 生物计算机 -> 像粒子一样飘浮并可以互相通讯的计算机 -> 实现卤煮的想法
reus
2012-05-13 02:05:23 +08:00
@glume 这根本不能用打羽毛球来比喻,因为电磁信号的传播很快,两个直接连接的接口之间传播时间可以看作是零,所以也就没有像羽毛球那样的“保存在赛场上”的状态。不论有线信道或是无线信道,都是没有存储能力的,只有通讯的两端才有保存数据的能力。所以所有数据都是在广义的内存之间传播的(或者硬盘,其实都是存储设备,可以统一来看)。数据只能从一个节点跳到另一个节点,没有不属于任一个节点的状态。而且一个节点如何处理这个数据,是由节点自己控制的,而跟数据无关(其实就是路由)。在当前的体系结构下,这种程序是不存在的

楼上说的生物计算机就极有可能出现不可消灭的程序,但这种程序必然会被称作病毒。生物本身就有计算能力,可以当作计算机用,病毒的本来意义就是生物病毒。病毒会被设法控制的,如果不能控制,那就是人类的灾难了
SR1
2012-05-13 02:23:52 +08:00
我觉得就像PHP里的eval函数一样,把数据当作指令来执行,也就是说,如果电脑能将数据作为指令处理,那么在这个层面上数据就具有了“生命”,电脑“受控”于数据,如果数据将自身不断发往别的电脑,不就实现了自我繁殖,数据传输中的出错也类似于突变…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/35448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX