免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[其他] Linux/Unix弥久长青,设计思想有何独特之处?(获奖名单已公布-2012-5-22) [复制链接]

论坛徽章:
0
1 [报告]
发表于 2012-03-29 13:10 |显示全部楼层
Linux/Unix设计思想:一场盛大的SimNature游戏

对于喜思好静的智力型玩家而言,模拟类游戏一直都是上佳娱乐选择。Simcity、The Sims等等不可胜数的提供“再活一次”机会的游戏,让好奇心盛却寿命有限的人类能够多体验几次不同的人生,实在是妙不可言。在那些纯粹模拟出来的世界里,各种思想、行为、交互、反馈可以齐头并进,盘根错节地交织、发展、竞争、演进,构筑出分外瑰丽壮美的图景,让玩家们喜不自禁,乐在其中。如果想寻求宇宙和自然运作规律与天人之间和谐共生的真理,亲手构筑或亲身参与一个SimNature世界,将会是一场非常有趣的游戏。  

《Linux/Unix设计思想》恰好为这样一个SimNature世界提供了足够多的背景、素材与灵感,只不过将个体换成了软件,摸索探求如何让软件在其“浩瀚无边、互联互动的软件网络”中更自然、更长久地生存。通过阅读这本书,读者可以掀开汽车前盖,一窥引擎里的秘密与原理,进而更好地驾驭、甚至构建性如烈马的各类优秀软件。  

现在,让我们愉快地畅想一下,如果程序员是上帝,那他们将如何制定方针和策略,玩这一场SimNature的游戏,并让自己设计实现的软件最终胜出?  

论坛徽章:
0
2 [报告]
发表于 2012-03-30 16:50 |显示全部楼层
asuka2001 发表于 2012-03-29 23:32
回复 30# GFree_Wind

一点个人愚见:管道就我个人理解,应该是以数据为中心,从最初输入到最终输出,不 ...


个人理解:管道才是机制,管道上的各种程序是策略。
实例:grep/sed/awk/perl,四者都可以在管道中实现数据过滤、抽取、变换,但侧重点有所不同,配合不同参数的混用可以提供异常丰富的微型解决方案。
有些经典的管道线写法已经成了惯用技巧。

数据才是正经事,程序不过是描述数据变化规则和状态的手段。UNIX/Linux的设计哲学正视了这一点。

论坛徽章:
0
3 [报告]
发表于 2012-03-30 17:05 |显示全部楼层
cjdao 发表于 2012-03-30 08:40
你为什么喜欢Unix?
好吧,我承认在接触linux之前并不知道什么是unix,我也承认开始接触linux只是觉得能在终 ...


《UNIX编程艺术》值得每年复读个几章。
Linux有些实践思想跟UNIX还是有点不一样。

论坛徽章:
0
4 [报告]
发表于 2012-03-30 17:15 |显示全部楼层
GFree_Wind 发表于 2012-03-30 12:30
回复 32# asuka2001

一点个人愚见:管道就我个人理解,应该是以数据为中心,从最初输入到最终输出,不断 ...


>讲得很好。我认为管道还是只能被专业的用户应用。

>因为应用管道的几个条件:
>1. 输入和输出为普通文本;
>2. 命令行
>3. 需要理解管道

>而对于普通用户来说,还是所见即所得的图形界面更方便

普通用户也可以使用管道线,只要加以适当训练即可。
管道线比较符合人脑思维过程,逐步求精的过程被管道符强化和显现了。

考虑一下遥控器和Windows桌面,哪个更便于跟电话另一头的人解释其用法?

论坛徽章:
0
5 [报告]
发表于 2012-03-30 18:14 |显示全部楼层
asuka2001 发表于 2012-03-30 17:43
回复 39# 无锋之刃

管道是机制,它提供的功能就是串行数据流动


没错。我的描述仅针对人机交互界面而言,也即使用Shell指导Core完成一系列任务时,管道为机制,程序为策略(这是大部分人使用UNIX/Linux的主要目的吧?)。
至于应用在管道内的程序本身,或多或少基于过滤器模式实现,当然也是机制的一部分,或者说是同一机制的两个不同部分:管道实现数据流,程序实现数据变换。
从这个层面来看,管道化机制更显眼,程序内的过滤器则经常隐而不见。

管道有点类似协议栈又有所不同。协议栈中的每一层对上是机制,对下是策略。比如驱动协议栈,再比如网络协议栈。

另外,仅仅实现数据流动并不是没有用的。考虑一下tee实用程序,它实现了数据流动而不加以变换的功能,也相当有用。

论坛徽章:
0
6 [报告]
发表于 2012-03-30 23:44 |显示全部楼层
asuka2001 发表于 2012-03-30 19:37
回复 50# 无锋之刃

另外,仅仅实现数据流动并不是没有用的。考虑一下tee实用程序,它实现了数据流动而不 ...


确实如此。还可以有另一种理解:管道是每一个应用的可复用底层逻辑。只不过是牺牲了某些能力以求得如此灵活的能力。
专有软件极难应付变化,正是因为它们从结构上就与需求绑死了,需求变而结构跟不上变化,自然会让维护成本大幅提升。

论坛徽章:
0
7 [报告]
发表于 2012-04-09 11:39 |显示全部楼层
回复 65# wang290


UNIX设计原则与大自然造物原则类似。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP