荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: SueTaLL.bbs@bjsing.net (^紫龙), 信区: Linux
标  题: 百合的一个分析(LV)
发信站: DQPI (Thu May  1 09:04:49 2003)
转信站: SZU!news.tiaozhan.com!news.bjsing.net!DQPI

信人: Lv (Make it happen), 信区: LinuxUnix
标  题: Re: 我怀疑linux 的前途
发信站: 南京大学小百合站 (Tue Apr 29 21:38:56 2003)

: 我一直相信玩linux 只要开心就好
: 我自己也是这么做的
既然如此,就不必太在意别人的目光。让那些无缘享受linux带来
种种乐趣的人呆在windows下面吧。
:
: 可是我没办法让别人知道用linux 可以这么开心
: 没办法把linux 宣传出去
: 真的是很郁闷
: 打不过m$ 的产品广告的
ms的东西给人的表面感觉都不错,因此许多人就以为某某软件就应该是这个样子。
Linux下面的东西感觉都很吓人,但是你会越用越爽,逐步发现,跳出windows的
框框,世界原来是如此之美妙。
:
: 还有找不到一个和com 一样的东西
: 能让我的设想变成现实
: 就是 用那种方法实现功能的扩充
: mozilla 的办法不错 浏览器的办法能用在播放器上吗
说道扩展,就不要老是想着com。虽然对应com有一个cobra,不过我2者都不熟悉。
因为linux下面的多进程合作根本就是很简单的。插件这种东西只有gui才需要用。

说一个具体一点的例子吧。我现在要做一个视频解码的项目,同时还要对他进行
一些控制,还要进行字幕叠加啊什么的。
于是我选用mplayer作为解码器。因为这个播放器支持140种视频编码和50种音频编码,

支持n种视频输出(包括TV out支持,以及硬件解码支持),支持输出后的filter(比如
缩放,旋转,裁减,字幕叠加,色彩处理,噪声处理,插值处理......),支持后台指
令控制....

因此,我只需要自己写一个程序进行数据源的获取和缓冲,利用
管道机制传送给mplayer(不需要告诉mplayer这是什么编码方式,mplayer会自动
检测!),利用命名管道机制控制mplayer把我所需要的点阵叠加在
图象上。

于是,经过很简单的编程,mplayer被无缝的集成进我都系统,这个项目也就完成了。

这种集成方式,就是unix/linux的机制带来的好处。在这种设计理念下面,每个
功能模块被尽可能的分离,比如tar就是打包,gzip就是压缩。
对应于windows下面的winzip的功能,linux下面必须由tar和gzip合作才能完成。

然而,每个功能因为单一,因而格外强大(参考mplayer说明文档,你会发现这个看似
不起眼的播放器是世界最强的播放器,很多东西都是它唯一支持)。
此外,通过管道机制,这些不同的模块能够轻易的整合在一起,提供完整的功能。
这种模式,是windows下面根本没法设想的。

这样的例子比比皆是,比如我要写一个爬虫程序,从web页面抓取数据,然后进行某
种分析,我就可以让wget帮我完成这个功能。
比如我有一个串行设备,现在需要实现对该设备的远程控制,我就只需要把
cat /dev/ttyS0的结果重定向到远程计算机的/dev/ttyS0文件即可。而完成这个
任务,甚至程序都不需要写。
比如我的同学的毕业设计是写一个防火墙的流量监控系统(举个例子而已,具体是否
这么简单就不知道了,呵呵)。那只需要利用iptables的log模块,然后读取它的log
进行分析就行了。
在linux下面,几行脚本就成为一个挂站机。而在win下面,非得进行网络编程才行。
......

除了功能的尽可能单一化外,linux对整个系统采取尽可能的统一化。比如源于unix
的一切皆文件的设计思想,使得linux下面的很多操作都归为对文件的操作。

比如我看cpu信息,pci设备信息,进程信息,就可以看/proc/cpuinfo,/proc/pci等文件


比如我要录音,用dd if=/dev/sound of=wave就行。类似的,把of和if交换,就是放音


比如我要制作iso文件,用dd if=/dev/cdrom of=your.iso就行。
比如上面对串行设备的远程控制例子,其对串口设备的控制也是对/dev/ttyS0文件的读


比如我把linux配置成路由器,只需要往/proc/sys/net/ipv4/ip_forward文件中写1,
就能打开ip转发能力。
每个进程打开的一切输入输出设备,无论是文件,管道,socket,都会在proc下面有对


的文件。哪怕是我这个控制台,也会对应一个文件。cat这个文件,就能读取对方的信息


比如cat我这个tty文件,就能截获我在键盘上输入的内容,cat某个程序的socket文件,

能截获那个程序的网络输入......

一切都是文件的设计,配合管道重定向机制,再加上linux下面丰富多彩的功能模块,就


解决匪夷所思的问题。
所以说,看似不起眼的文本控制台是linux的精髓。
--

                           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                           $ 不想沽名,不想钓誉,只为办点实事; $
                           $ 不怕误解,不怕谩骂,只为多些沟通。$
                           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


※ 来源:·北极星BBS站 bjsing.net·[FROM: 鼠窝]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店