五千年(敝帚自珍)

主题:关于Linux的推广——普通用户篇 -- 万斤

共:💬381 🌺357
全看分页树展 · 主题 跟帖
家园 我来试着回答下...

谢谢你的回复,这样的讨论有意思。

Windows在服务器领域基本上是从2003才开始有竞争力的。2000也不错,但更像是个过渡产品,2003则不但稳固了中小企业的市场,而且开始向大型的应用进军。

“在科学计算领域,基本上是这样,我很少听说哪个学校专门去搞一个大规模的windows集群,或者专门培养人去做相关的工作。一个最简单的例子,我上次要跑一个仿真的特大型程序(那个程序可以直接模拟一个核电站,或者卫星之类的设计)。那个程序,我花了半天时间就在Linux装上了,因为它的安装程序本来就是cshell的。但是我有个朋友的同事试图在windows下面安装,搞了1个多月还没有下文。”

- 这个领域Windows确实不是好的选择,我基本同意。

“我听说现在有很多大型系统都在用windows,比如伦敦证券交易所就在用。不过这个例子太特殊了,我猜想 LSE主要看中的是微软提供的服务。这个就完全是另外一个问题了。”

- Windows 2003虽然有cluster的功能,但的确不是为大型的服务器群的环境设计的,但从cost和服务的角度来讲,确实有些地方开始使用2003来代替原有的main frame或者unix系统。真正的转折点我看在于2008,2008的server core edition把能去掉的瓶瓶罐罐都去掉了,而且有了自己的hyper visor。再一两年应该就能看出点眉目了。

“我自己的程序在64位方式下要比32位快大概10%。10%对我们意味着某些计算可以至少节约一天的时间。对于我的领域来说,64位有几个好处,第个是 64位的整数所表达的数的范围在很多时候可以取代单精浮点数。第二是寄存器数量比以前多,这样可以把更多的变量放到寄存器内部,核心循环可以减少交换和寻址操作。

顺便,我认为即便是64位系统对于一般的信息处理没有太大的优势,但是既然现代的CPU都已经加上了这个扩展,Windows平台下面,以及第三方程序就应该利用它。而Linux这方面优点就非常突出。1-2年时间大部分的软件全部都成为64位的了(也和它以前就支持64位系统有关系)。而Windows 平台方面反应太迟钝了。

- 同意,但Windows世界面对的问题是32上投入的太多,而且floating operation intensive的程序的比重并不大,所以大家没动力。微软自己从2000开始就有64位操作系统了,2003的64位更是和32位在patch和tool各方面都是同步的,但用的还是不多。2008的64位系统是微软在主推的,他们明确建议用户优先选用64位。所以,我的看法是64位是大家都想做到的,Linux由于商业应用少,包袱少,而且很多程序的源代码公开,只要重新compile一下就好了,但Windows方面的情况很不一样,不是微软不做或者做不出来,而是包袱太多,走不动。

“我认为windows下面也是有可能的,问题在于,现实生活中,几年长期不重启不关机,不重装系统是Linux用户的常态,而经常重启,关机重装系统是 windows用户的常态。windows至少有50%以上的补丁,是需要你重新启动计算机的。而windows 几年运行,没有一个service pack供你下载?很多新的程序要求你运行service pack。当然如果你把windows机器独立出来就干一些简单的事情,不理会外界任何改动,那没有问题。但是像我学校的机器,我在上面写程序,玩游戏,升级显卡驱动等等等等一堆事情。windows 要做这些事情,我想还是要重启吧:”

- 我不清楚Debian系统去年一年的patch的数量,没法评论。我管理的Windows servers我确实是基本上每个月有没有patch都要重启一遍,成习惯了,而且因为本身在设计的时候就没有single point of failure,重启并不影响用户的使用。他们基本上都不知道服务器啥时候重启了。对于客户端,说关机重装系统是windows用户的常态,我看还是因人而异,别忘了Windows的用户大多数是电脑盲的。我自己的laptop倒是很久没有重启或者重装过了。

“第一就是要做好足够的备份工作。这一点Linux下面有很多强大的工具,可以支持非常复杂的备份策略,不多说。而且像Debian这样的系统可以在远程进行瞬间克隆。第二就是可以采用jail方式,或者虚拟机方式运行浏览器。和乱七八糟的小东西。”

- Windows下一样可以。

“其实从我的角度,即便是一个工作站被感染了也不用担心太多问题。我这里提出一个方法,起到抛砖引玉的作用(我猜那些杀毒软件也是采用类似的机制)...”

- 木马的目的在于获利。只要它能运行上10秒钟,扫描用户的邮件,通讯录,文件(特别是open format的文件:)),找到有价值的信息,再传送到外面去,目的就达到了。不需要改动系统文件,也不需要常驻。Windows下的病毒和流氓软件现在绝大多数都是这种类型的,病毒制作者本人也不会期望木马能长期存活。像CIH那样损人不利己的病毒已经很少有人搞了。

“Linux也可以很轻松地把客户管理集中到一台或者几台机器上,这个功能很早就有了。而且这个管理功能的整合性我不会认为比windows差。像我现在家里,公司的网络(学校有Novell),就是用OpenLDAP集中进行管理。而且这些管理程序,可以按照树型结构用subversion进行版本管理,机器和机器软件包配置的异同。具体什么配置不一样,什么地方一样。用diff就出来了。计算机管理,大部分情况我是用vim和emacs。”

我不清楚Linux下如何达到以下的目的:

- 我想强制在每台客户机上安装某一固定版本的软件,如果被用户移除则自动重装,Linux下怎么确保?

- 我想保证有root权限的用户也不能把管理员用来集中管理账户删除,并更改防火墙来拒绝我从远程的控制。

- 我想拒绝任何用户运行某一版本的某程序,不管是在本地硬盘上,网络上还是USB drive上。怎么办?

- 我想强制同一间教室的电脑都使用同样的墙纸,不同的教室的墙纸不同。怎么办?

- 我想把公司所有机器的硬件型号,操作系统,安装的软件等等信息全部收录到一个数据库中,方便查询,并且这些信息要随时动态更新。如何确保?

- 希望你能说明一下Linux如何对付这些问题。这些都是规模大起来以后常见的问题。

“windows到目前为止,没有一个统一的软件包安装,升级系统。和apt/dpkg这样的完全不是一个量级的。这个不多说,给一个例子。比如我现在要让远端计算机安装和我目前计算机上一样的软件,只要远端计算机下载一个最最基本的安装包,然后同步source.list,用dpkg把我这里安装的文件 dump出来直接在那里用apt就可以全部复制。这个软件包列表本身,也是可以采用subversion,或者其他程序进行管理。如果我要知道两台机器哪些软件,哪些配置不一样,一个diff就出来了。(当然我不包括 /usr/local这个目录)

- 早就有了,叫MSI。这东西的历史很可能比apt/rpm还要长。

“在这种管理方式下,比如要配置一台新的/已知的客户机,不用从头安装,只要拷贝一套最小化的Debian(100M左右),然后直接从 subversion的树下下载所有相关的配置文件,和相关软件包。(这里可以专门为此机器起一个分支)。远程安装就可以了。windows 这方面,还有很长的路要走。”

- 你应该先看看active directory的功能再下结论,你说的这些功能在AD里面都能实现,而且这还只是Windows自带的,要是算上第三方的工具,那更是只有想不到,没有做不到(买不到?)Windows下超过几百台规模的系统基本上都会用imaging了,一台客户机也就是10分钟,而且甚至不需要有人在机器面前操作。

这个也顺便回答你,"类似于rsync的功能Windows下面一样有。关于tar和subversion我没太明白你具体指的是什么。"具体是什么含义。

- DFS-R是Windows自带的和rsync功能相似的工具。

6.

“很神秘,关键是很难修改。Linux下面定制开机什么程序运行,什么程序不运行,什么程序在本地硬盘运行,哪些在远程系统上下载运行,如何自己定义变量。都很方便。比如,开机的时候,根据分配的IP地址不同定义不同的防火墙设置,这一点不知道windows下面怎么运作的。当然windows可以叫嚣说有工具可以实现这一点。那我可以把这个任务稍微改改:根据GPS给出的地理数据,自动应用相关的防火墙设置。这个对linux来说,实现这一步需要花费的时间很少。而windows就很难说了。”

- Windows下的开机过程有全套的documentation,没什么神秘的。还是举个具体的例子才好比较。自动登录并运行程序等都是基本功能。根据ip不同更改防火墙设置用site policy就好了。根据GPS来更改firewall设置的问题是两步,第一步是获取GPS数据并分析,跟操作系统本身无关;第二部是根据第一步的输出来修改防火墙设置,在windows下也就是一个vbscript的事。

thanks!

全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河